mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-30 08:02:30 +00:00
net: Check rps_flow_table when RPS map length is 1
In get_rps_cpu, add check that the rps_flow_table for the device is NULL when trying to take fast path when RPS map length is one. Without this, RFS is effectively disabled if map length is one which is not correct. Signed-off-by: Tom Herbert <therbert@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
cc09b5f646
commit
8587523640
1 changed files with 2 additions and 1 deletions
|
@ -2563,7 +2563,8 @@ static int get_rps_cpu(struct net_device *dev, struct sk_buff *skb,
|
||||||
|
|
||||||
map = rcu_dereference(rxqueue->rps_map);
|
map = rcu_dereference(rxqueue->rps_map);
|
||||||
if (map) {
|
if (map) {
|
||||||
if (map->len == 1) {
|
if (map->len == 1 &&
|
||||||
|
!rcu_dereference_raw(rxqueue->rps_flow_table)) {
|
||||||
tcpu = map->cpus[0];
|
tcpu = map->cpus[0];
|
||||||
if (cpu_online(tcpu))
|
if (cpu_online(tcpu))
|
||||||
cpu = tcpu;
|
cpu = tcpu;
|
||||||
|
|
Loading…
Reference in a new issue