diff options
-rw-r--r-- | net/core/dev.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/net/core/dev.c b/net/core/dev.c index 7f4486e127e9..70ecb86439ca 100644 --- a/net/core/dev.c +++ b/net/core/dev.c | |||
@@ -2670,10 +2670,7 @@ static struct rps_dev_flow * | |||
2670 | set_rps_cpu(struct net_device *dev, struct sk_buff *skb, | 2670 | set_rps_cpu(struct net_device *dev, struct sk_buff *skb, |
2671 | struct rps_dev_flow *rflow, u16 next_cpu) | 2671 | struct rps_dev_flow *rflow, u16 next_cpu) |
2672 | { | 2672 | { |
2673 | u16 tcpu; | 2673 | if (next_cpu != RPS_NO_CPU) { |
2674 | |||
2675 | tcpu = rflow->cpu = next_cpu; | ||
2676 | if (tcpu != RPS_NO_CPU) { | ||
2677 | #ifdef CONFIG_RFS_ACCEL | 2674 | #ifdef CONFIG_RFS_ACCEL |
2678 | struct netdev_rx_queue *rxqueue; | 2675 | struct netdev_rx_queue *rxqueue; |
2679 | struct rps_dev_flow_table *flow_table; | 2676 | struct rps_dev_flow_table *flow_table; |
@@ -2701,16 +2698,16 @@ set_rps_cpu(struct net_device *dev, struct sk_buff *skb, | |||
2701 | goto out; | 2698 | goto out; |
2702 | old_rflow = rflow; | 2699 | old_rflow = rflow; |
2703 | rflow = &flow_table->flows[flow_id]; | 2700 | rflow = &flow_table->flows[flow_id]; |
2704 | rflow->cpu = next_cpu; | ||
2705 | rflow->filter = rc; | 2701 | rflow->filter = rc; |
2706 | if (old_rflow->filter == rflow->filter) | 2702 | if (old_rflow->filter == rflow->filter) |
2707 | old_rflow->filter = RPS_NO_FILTER; | 2703 | old_rflow->filter = RPS_NO_FILTER; |
2708 | out: | 2704 | out: |
2709 | #endif | 2705 | #endif |
2710 | rflow->last_qtail = | 2706 | rflow->last_qtail = |
2711 | per_cpu(softnet_data, tcpu).input_queue_head; | 2707 | per_cpu(softnet_data, next_cpu).input_queue_head; |
2712 | } | 2708 | } |
2713 | 2709 | ||
2710 | rflow->cpu = next_cpu; | ||
2714 | return rflow; | 2711 | return rflow; |
2715 | } | 2712 | } |
2716 | 2713 | ||