summaryrefslogtreecommitdiff
path: root/drivers/net/amd8111e.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2008-10-30 23:50:18 -0700
committerDavid S. Miller <davem@davemloft.net>2008-10-30 23:50:18 -0700
commit194dcdba5a11a0238aef7ed91f32df77cb31505b (patch)
treead9b2e763d702ab59d176f3acc57dbb200afdad1 /drivers/net/amd8111e.c
parent19b8cba2e8539e3b8022316f94837d8f242b8f80 (diff)
parentbdb59f949d663b7e943fb5f40b2557af4314abf9 (diff)
Merge branch 'davem-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
Diffstat (limited to 'drivers/net/amd8111e.c')
-rw-r--r--drivers/net/amd8111e.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/net/amd8111e.c b/drivers/net/amd8111e.c
index ba1be0b3a8c8..07a6697e3635 100644
--- a/drivers/net/amd8111e.c
+++ b/drivers/net/amd8111e.c
@@ -644,10 +644,6 @@ This function frees the transmiter and receiver descriptor rings.
*/
static void amd8111e_free_ring(struct amd8111e_priv* lp)
{
-
- /* Free transmit and receive skbs */
- amd8111e_free_skbs(lp->amd8111e_net_dev);
-
/* Free transmit and receive descriptor rings */
if(lp->rx_ring){
pci_free_consistent(lp->pci_dev,
@@ -1233,7 +1229,9 @@ static int amd8111e_close(struct net_device * dev)
amd8111e_disable_interrupt(lp);
amd8111e_stop_chip(lp);
- amd8111e_free_ring(lp);
+
+ /* Free transmit and receive skbs */
+ amd8111e_free_skbs(lp->amd8111e_net_dev);
netif_carrier_off(lp->amd8111e_net_dev);
@@ -1243,6 +1241,7 @@ static int amd8111e_close(struct net_device * dev)
spin_unlock_irq(&lp->lock);
free_irq(dev->irq, dev);
+ amd8111e_free_ring(lp);
/* Update the statistics before closing */
amd8111e_get_stats(dev);