diff options
author | Eric Dumazet <edumazet@google.com> | 2015-02-05 17:58:14 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-02-08 01:43:52 -0500 |
commit | 91e83133e70ebe1572746d1ad858b4eb28ab9b53 (patch) | |
tree | 686afc903f349584ed97d89d407cc9ad92c5aca9 /net/core | |
parent | 364d5716a7adb91b731a35765d369602d68d2881 (diff) |
net: use netif_rx_ni() from process context
Hotpluging a cpu might be rare, yet we have to use proper
handlers when taking over packets found in backlog queues.
dev_cpu_callback() runs from process context, thus we should
call netif_rx_ni() to properly invoke softirq handler.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
-rw-r--r-- | net/core/dev.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 7fe82929f509..6c1556aeec29 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -7064,11 +7064,11 @@ static int dev_cpu_callback(struct notifier_block *nfb, | |||
7064 | 7064 | ||
7065 | /* Process offline CPU's input_pkt_queue */ | 7065 | /* Process offline CPU's input_pkt_queue */ |
7066 | while ((skb = __skb_dequeue(&oldsd->process_queue))) { | 7066 | while ((skb = __skb_dequeue(&oldsd->process_queue))) { |
7067 | netif_rx_internal(skb); | 7067 | netif_rx_ni(skb); |
7068 | input_queue_head_incr(oldsd); | 7068 | input_queue_head_incr(oldsd); |
7069 | } | 7069 | } |
7070 | while ((skb = skb_dequeue(&oldsd->input_pkt_queue))) { | 7070 | while ((skb = skb_dequeue(&oldsd->input_pkt_queue))) { |
7071 | netif_rx_internal(skb); | 7071 | netif_rx_ni(skb); |
7072 | input_queue_head_incr(oldsd); | 7072 | input_queue_head_incr(oldsd); |
7073 | } | 7073 | } |
7074 | 7074 | ||