[PATCH net 0/2] bridge/vxlan: fix reading neigh ha without synchronization
Nikolay Aleksandrov <[email protected]>
| Newsgroups | dev.linux.lists.bridge,org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
Hi, Neigh ha address must be read using the seqlock to get a stable snapshot. Both the bridge and vxlan read it directly and can see partial updates. I reproduced both issues with running neigh updates and exercising these paths in parallel and saw partial addresses, e.g. updating between neigh A: 02:00:00:00:00:00 neigh B: fe:ff:ff:ff:ff:ff was able to observe 02:00:ff:ff:ff:ff and fe:ff:00:00:00:00 in packets. Noticed this initially in the bridge, then checked vxlan and its arp/neigh_reduce functions have the same bug, route_shortcircuit is doing the right thing already. Cheers, Nik Nikolay Aleksandrov (2): net: bridge: arp/nd proxy: fix reading neigh ha vxlan: fix reading neigh ha drivers/net/vxlan/vxlan_core.c | 20 +++++++++++++------- net/bridge/br_arp_nd_proxy.c | 24 ++++++++++++++---------- 2 files changed, 27 insertions(+), 17 deletions(-) -- 2.47.3