summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/realtek/r8169.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2014-03-13 00:22:20 +0400
committerDavid S. Miller <davem@davemloft.net>2014-03-13 00:22:20 +0400
commit8a83d9396a4945dcaa129b14a725311e5846b2d5 (patch)
treea7217a3be0171a0b78a474e0dbb2401675882f2a /drivers/net/ethernet/realtek/r8169.c
parentd52afde96ffda8c9d3f0e32ffe87b6cc3290580e (diff)
parentc9974ad4aeb36003860100221a594f3c0ccc3f78 (diff)
downloadlinux-8a83d9396a4945dcaa129b14a725311e5846b2d5.tar.xz
Merge branch 'dev_kfree_skb_any'
Eric W. Biederman says: ==================== Using dev_kfree_skb_any for functions called in multiple contexts This patchset should be an uncontroversial set of changes to change dev_kfree_skb to dev_kfree_skb_any for code paths that are called in hard irq contexts in addition to other contexts. netpoll is the reason this code gets called in multiple contexts. There is more coming but these changes are a good starting place, and stand on their own. Since the last round changes to the rx path have been removed netpoll will changed to avoid that. ==================== Signed-off-by: David S. Miller <davem@davemloft.net> Acked-by: Eric Dumazet <edumazet@google.com>
Diffstat (limited to 'drivers/net/ethernet/realtek/r8169.c')
-rw-r--r--drivers/net/ethernet/realtek/r8169.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index e9779653cd4c..cf947337e0d6 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -5834,7 +5834,7 @@ static void rtl8169_tx_clear_range(struct rtl8169_private *tp, u32 start,
tp->TxDescArray + entry);
if (skb) {
tp->dev->stats.tx_dropped++;
- dev_kfree_skb(skb);
+ dev_kfree_skb_any(skb);
tx_skb->skb = NULL;
}
}
@@ -6059,7 +6059,7 @@ static netdev_tx_t rtl8169_start_xmit(struct sk_buff *skb,
err_dma_1:
rtl8169_unmap_tx_skb(d, tp->tx_skb + entry, txd);
err_dma_0:
- dev_kfree_skb(skb);
+ dev_kfree_skb_any(skb);
err_update_stats:
dev->stats.tx_dropped++;
return NETDEV_TX_OK;
@@ -6142,7 +6142,7 @@ static void rtl_tx(struct net_device *dev, struct rtl8169_private *tp)
tp->tx_stats.packets++;
tp->tx_stats.bytes += tx_skb->skb->len;
u64_stats_update_end(&tp->tx_stats.syncp);
- dev_kfree_skb(tx_skb->skb);
+ dev_kfree_skb_any(tx_skb->skb);
tx_skb->skb = NULL;
}
dirty_tx++;