Loading net/core/dev.c +11 −3 Original line number Diff line number Diff line Loading @@ -2343,7 +2343,7 @@ static int get_rps_cpu(struct net_device *dev, struct sk_buff *skb, struct rps_dev_flow **rflowp) { struct netdev_rx_queue *rxqueue; struct rps_map *map; struct rps_map *map = NULL; struct rps_dev_flow_table *flow_table; struct rps_sock_flow_table *sock_flow_table; int cpu = -1; Loading @@ -2361,8 +2361,17 @@ static int get_rps_cpu(struct net_device *dev, struct sk_buff *skb, } else rxqueue = dev->_rx; if (!rxqueue->rps_map && !rxqueue->rps_flow_table) if (rxqueue->rps_map) { map = rcu_dereference(rxqueue->rps_map); if (map && map->len == 1) { tcpu = map->cpus[0]; if (cpu_online(tcpu)) cpu = tcpu; goto done; } } else if (!rxqueue->rps_flow_table) { goto done; } skb_reset_network_header(skb); if (!skb_get_rxhash(skb)) Loading Loading @@ -2407,7 +2416,6 @@ static int get_rps_cpu(struct net_device *dev, struct sk_buff *skb, } } map = rcu_dereference(rxqueue->rps_map); if (map) { tcpu = map->cpus[((u64) skb->rxhash * map->len) >> 32]; Loading Loading
net/core/dev.c +11 −3 Original line number Diff line number Diff line Loading @@ -2343,7 +2343,7 @@ static int get_rps_cpu(struct net_device *dev, struct sk_buff *skb, struct rps_dev_flow **rflowp) { struct netdev_rx_queue *rxqueue; struct rps_map *map; struct rps_map *map = NULL; struct rps_dev_flow_table *flow_table; struct rps_sock_flow_table *sock_flow_table; int cpu = -1; Loading @@ -2361,8 +2361,17 @@ static int get_rps_cpu(struct net_device *dev, struct sk_buff *skb, } else rxqueue = dev->_rx; if (!rxqueue->rps_map && !rxqueue->rps_flow_table) if (rxqueue->rps_map) { map = rcu_dereference(rxqueue->rps_map); if (map && map->len == 1) { tcpu = map->cpus[0]; if (cpu_online(tcpu)) cpu = tcpu; goto done; } } else if (!rxqueue->rps_flow_table) { goto done; } skb_reset_network_header(skb); if (!skb_get_rxhash(skb)) Loading Loading @@ -2407,7 +2416,6 @@ static int get_rps_cpu(struct net_device *dev, struct sk_buff *skb, } } map = rcu_dereference(rxqueue->rps_map); if (map) { tcpu = map->cpus[((u64) skb->rxhash * map->len) >> 32]; Loading