diff options
author | Bruce Allan <bruce.w.allan@intel.com> | 2011-02-10 03:17:21 -0500 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2011-03-11 04:51:58 -0500 |
commit | ef5ab89cf7edc2e2cb996d62201a2b356d5e9286 (patch) | |
tree | f61fe87f93fd32c03a2f53a78a41f68aff5df49b /drivers/net/e1000e | |
parent | 23633b13ff7e1e1380bd2e11c49eb5ddbdf37ea9 (diff) |
e1000e: use dev_kfree_skb_irq() instead of dev_kfree_skb()
Based on a report and patch originally submitted by Prasanna Panchamukhi.
Use dev_kfree_skb_irq() in e1000_clean_jumbo_rx_irq() since this latter
function is called only in interrupt context. This avoids "Warning:
kfree_skb on hard IRQ" messages.
Cc: "Prasanna S. Panchamukhi" <prasanna.panchamukhi@riverbed.com>
Signed-off-by: Bruce Allan <bruce.w.allan@intel.com>
Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/e1000e')
-rw-r--r-- | drivers/net/e1000e/netdev.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c index 455d5a1101ed..c43cdfee6b1b 100644 --- a/drivers/net/e1000e/netdev.c +++ b/drivers/net/e1000e/netdev.c | |||
@@ -1322,7 +1322,7 @@ static bool e1000_clean_jumbo_rx_irq(struct e1000_adapter *adapter, | |||
1322 | /* an error means any chain goes out the window | 1322 | /* an error means any chain goes out the window |
1323 | * too */ | 1323 | * too */ |
1324 | if (rx_ring->rx_skb_top) | 1324 | if (rx_ring->rx_skb_top) |
1325 | dev_kfree_skb(rx_ring->rx_skb_top); | 1325 | dev_kfree_skb_irq(rx_ring->rx_skb_top); |
1326 | rx_ring->rx_skb_top = NULL; | 1326 | rx_ring->rx_skb_top = NULL; |
1327 | goto next_desc; | 1327 | goto next_desc; |
1328 | } | 1328 | } |
@@ -1395,7 +1395,7 @@ static bool e1000_clean_jumbo_rx_irq(struct e1000_adapter *adapter, | |||
1395 | /* eth type trans needs skb->data to point to something */ | 1395 | /* eth type trans needs skb->data to point to something */ |
1396 | if (!pskb_may_pull(skb, ETH_HLEN)) { | 1396 | if (!pskb_may_pull(skb, ETH_HLEN)) { |
1397 | e_err("pskb_may_pull failed.\n"); | 1397 | e_err("pskb_may_pull failed.\n"); |
1398 | dev_kfree_skb(skb); | 1398 | dev_kfree_skb_irq(skb); |
1399 | goto next_desc; | 1399 | goto next_desc; |
1400 | } | 1400 | } |
1401 | 1401 | ||