diff options
author | Linas Vepstas <linas@austin.ibm.com> | 2006-10-10 16:00:04 -0500 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-10-11 04:04:25 -0400 |
commit | c3fee4c55915c42b3278b65c91f9be8cee13426e (patch) | |
tree | 171c86bbbed7af79d373aeda531052b0a64e4190 /drivers/net/spider_net.c | |
parent | e2874f2e8c3695953b9ec26d396d678a7128ee64 (diff) |
[PATCH] powerpc/cell spidernet force-end fix
Bugfix: when cleaning up the transmit queue upon device close,
be sure to walk the entire queue.
Signed-off-by: Linas Vepstas <linas@austin.ibm.com>
Cc: James K Lewis <jklewis@us.ibm.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/net/spider_net.c')
-rw-r--r-- | drivers/net/spider_net.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/spider_net.c b/drivers/net/spider_net.c index ff409a10274..52bf1b2968b 100644 --- a/drivers/net/spider_net.c +++ b/drivers/net/spider_net.c @@ -699,6 +699,8 @@ spider_net_release_tx_descr(struct spider_net_card *card) /* unmap the skb */ skb = descr->skb; + if (!skb) + return; pci_unmap_single(card->pdev, descr->buf_addr, skb->len, PCI_DMA_TODEVICE); dev_kfree_skb_any(skb); @@ -751,7 +753,8 @@ spider_net_release_tx_chain(struct spider_net_card *card, int brutal) default: card->netdev_stats.tx_dropped++; - return 1; + if (!brutal) + return 1; } spider_net_release_tx_descr(card); } |