Commit 5a21f15b authored by Oliver Neukum's avatar Oliver Neukum Committed by Greg Kroah-Hartman

[PATCH] USB: kaweth freeing skbs

this is the 2.5 version of the 2.4 fix
  - proper freeing of skbs
parent 2428df6f
...@@ -703,7 +703,7 @@ static void kaweth_usb_transmit_complete(struct urb *urb, struct pt_regs *regs) ...@@ -703,7 +703,7 @@ static void kaweth_usb_transmit_complete(struct urb *urb, struct pt_regs *regs)
kaweth_dbg("%s: TX status %d.", kaweth->net->name, urb->status); kaweth_dbg("%s: TX status %d.", kaweth->net->name, urb->status);
netif_wake_queue(kaweth->net); netif_wake_queue(kaweth->net);
dev_kfree_skb(skb); dev_kfree_skb_irq(skb);
} }
/**************************************************************** /****************************************************************
...@@ -721,7 +721,7 @@ static int kaweth_start_xmit(struct sk_buff *skb, struct net_device *net) ...@@ -721,7 +721,7 @@ static int kaweth_start_xmit(struct sk_buff *skb, struct net_device *net)
if (kaweth->removed) { if (kaweth->removed) {
/* our device is undergoing disconnection - we bail out */ /* our device is undergoing disconnection - we bail out */
spin_unlock(&kaweth->device_lock); spin_unlock(&kaweth->device_lock);
dev_kfree_skb(skb); dev_kfree_skb_irq(skb);
return 0; return 0;
} }
...@@ -733,7 +733,7 @@ static int kaweth_start_xmit(struct sk_buff *skb, struct net_device *net) ...@@ -733,7 +733,7 @@ static int kaweth_start_xmit(struct sk_buff *skb, struct net_device *net)
/* no such luck - we make our own */ /* no such luck - we make our own */
struct sk_buff *copied_skb; struct sk_buff *copied_skb;
copied_skb = skb_copy_expand(skb, 2, 0, GFP_ATOMIC); copied_skb = skb_copy_expand(skb, 2, 0, GFP_ATOMIC);
dev_kfree_skb_any(skb); dev_kfree_skb_irq(skb);
skb = copied_skb; skb = copied_skb;
if (!copied_skb) { if (!copied_skb) {
kaweth->stats.tx_errors++; kaweth->stats.tx_errors++;
...@@ -763,7 +763,7 @@ static int kaweth_start_xmit(struct sk_buff *skb, struct net_device *net) ...@@ -763,7 +763,7 @@ static int kaweth_start_xmit(struct sk_buff *skb, struct net_device *net)
kaweth->stats.tx_errors++; kaweth->stats.tx_errors++;
netif_start_queue(net); netif_start_queue(net);
dev_kfree_skb(skb); dev_kfree_skb_irq(skb);
} }
else else
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment