From: Linas Vepstas Date: Tue, 10 Oct 2006 21:00:04 +0000 (-0500) Subject: [PATCH] powerpc/cell spidernet force-end fix X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=c3fee4c55915c42b3278b65c91f9be8cee13426e;p=mv-sheeva.git [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 Cc: James K Lewis Cc: Arnd Bergmann Signed-off-by: Jeff Garzik --- 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); }