diff options
author | David S. Miller <davem@davemloft.net> | 2015-01-27 19:59:56 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-01-27 19:59:56 -0500 |
commit | 95f873f2fff96c592c5d863e2a39825bd8bf0500 (patch) | |
tree | 0d2dd664964ba2c701aefea5b4d1e85b481045e1 /net/core/dev.c | |
parent | 8ea65f4a2dfaaf494ef42a16cbf2fea39b07450f (diff) | |
parent | 59343cd7c4809cf7598789e1cd14563780ae4239 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Conflicts:
arch/arm/boot/dts/imx6sx-sdb.dts
net/sched/cls_bpf.c
Two simple sets of overlapping changes.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/dev.c')
-rw-r--r-- | net/core/dev.c | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 1e325adc4367..7f028d441e98 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -7075,10 +7075,20 @@ static int dev_cpu_callback(struct notifier_block *nfb, | |||
7075 | oldsd->output_queue = NULL; | 7075 | oldsd->output_queue = NULL; |
7076 | oldsd->output_queue_tailp = &oldsd->output_queue; | 7076 | oldsd->output_queue_tailp = &oldsd->output_queue; |
7077 | } | 7077 | } |
7078 | /* Append NAPI poll list from offline CPU. */ | 7078 | /* Append NAPI poll list from offline CPU, with one exception : |
7079 | if (!list_empty(&oldsd->poll_list)) { | 7079 | * process_backlog() must be called by cpu owning percpu backlog. |
7080 | list_splice_init(&oldsd->poll_list, &sd->poll_list); | 7080 | * We properly handle process_queue & input_pkt_queue later. |
7081 | raise_softirq_irqoff(NET_RX_SOFTIRQ); | 7081 | */ |
7082 | while (!list_empty(&oldsd->poll_list)) { | ||
7083 | struct napi_struct *napi = list_first_entry(&oldsd->poll_list, | ||
7084 | struct napi_struct, | ||
7085 | poll_list); | ||
7086 | |||
7087 | list_del_init(&napi->poll_list); | ||
7088 | if (napi->poll == process_backlog) | ||
7089 | napi->state = 0; | ||
7090 | else | ||
7091 | ____napi_schedule(sd, napi); | ||
7082 | } | 7092 | } |
7083 | 7093 | ||
7084 | raise_softirq_irqoff(NET_TX_SOFTIRQ); | 7094 | raise_softirq_irqoff(NET_TX_SOFTIRQ); |
@@ -7089,7 +7099,7 @@ static int dev_cpu_callback(struct notifier_block *nfb, | |||
7089 | netif_rx_internal(skb); | 7099 | netif_rx_internal(skb); |
7090 | input_queue_head_incr(oldsd); | 7100 | input_queue_head_incr(oldsd); |
7091 | } | 7101 | } |
7092 | while ((skb = __skb_dequeue(&oldsd->input_pkt_queue))) { | 7102 | while ((skb = skb_dequeue(&oldsd->input_pkt_queue))) { |
7093 | netif_rx_internal(skb); | 7103 | netif_rx_internal(skb); |
7094 | input_queue_head_incr(oldsd); | 7104 | input_queue_head_incr(oldsd); |
7095 | } | 7105 | } |