Skip to content
Commit f981fc3d authored by Eelco Chaudron's avatar Eelco Chaudron Committed by Jakub Kicinski
Browse files

net: openvswitch: fix to make sure flow_lookup() is not preempted



The flow_lookup() function uses per CPU variables, which must be called
with BH disabled. However, this is fine in the general NAPI use case
where the local BH is disabled. But, it's also called from the netlink
context. The below patch makes sure that even in the netlink path, the
BH is disabled.

In addition, u64_stats_update_begin() requires a lock to ensure one writer
which is not ensured here. Making it per-CPU and disabling NAPI (softirq)
ensures that there is always only one writer.

Fixes: eac87c41 ("net: openvswitch: reorder masks array based on usage")
Reported-by: default avatarJuri Lelli <jlelli@redhat.com>
Signed-off-by: default avatarEelco Chaudron <echaudro@redhat.com>
Link: https://lore.kernel.org/r/160295903253.7789.826736662555102345.stgit@ebuild


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent f355a55f
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment