ChangeSet 1.893.2.24, 2003/01/06 10:59:57-08:00, oliver@oenone.homelinux.org [PATCH] USB kaweth bugfix - correct freeing of skbs diff -Nru a/drivers/usb/kaweth.c b/drivers/usb/kaweth.c --- a/drivers/usb/kaweth.c Mon Jan 6 11:29:39 2003 +++ b/drivers/usb/kaweth.c Mon Jan 6 11:29:39 2003 @@ -691,7 +691,7 @@ kaweth_dbg("%s: TX status %d.", kaweth->net->name, urb->status); netif_wake_queue(kaweth->net); - dev_kfree_skb(skb); + dev_kfree_skb_irq(skb); } /**************************************************************** @@ -709,7 +709,7 @@ if (kaweth->removed) { /* our device is undergoing disconnection - we bail out */ spin_unlock(&kaweth->device_lock); - dev_kfree_skb(skb); + dev_kfree_skb_irq(skb); return 0; } @@ -721,7 +721,7 @@ /* no such luck - we make our own */ struct sk_buff *copied_skb; copied_skb = skb_copy_expand(skb, 2, 0, GFP_ATOMIC); - dev_kfree_skb_any(skb); + dev_kfree_skb_irq(skb); skb = copied_skb; if (!copied_skb) { kaweth->stats.tx_errors++; @@ -751,7 +751,7 @@ kaweth->stats.tx_errors++; netif_start_queue(net); - dev_kfree_skb(skb); + dev_kfree_skb_irq(skb); } else {