Browse Source

[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>
Linas Vepstas 18 years ago
parent
commit
c3fee4c559
1 changed files with 4 additions and 1 deletions
  1. 4 1
      drivers/net/spider_net.c

+ 4 - 1
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);
 	}