diff options
author | 2013-06-17 12:09:57 -0700 | |
---|---|---|
committer | 2013-06-17 15:55:46 -0700 | |
commit | 3bf74b1aecdce719f1445200d5db7dfee2297bba (patch) | |
tree | 3c219f5bbe142d0e5c096caf9169b546d7d669e1 /net/core/ethtool.c | |
parent | lseek(fd, n, SEEK_END) does *not* go to eof - n (diff) | |
download | wireguard-linux-3bf74b1aecdce719f1445200d5db7dfee2297bba.tar.xz wireguard-linux-3bf74b1aecdce719f1445200d5db7dfee2297bba.zip |
vxlan: fix race between flush and incoming learning
It is possible for a packet to arrive during vxlan_stop(), and
have a dynamic entry created. Close this by checking if device
is up.
CPU1 CPU2
vxlan_stop
vxlan_flush
hash_lock acquired
vxlan_encap_recv
vxlan_snoop
waiting for hash_lock
hash_lock relased
vxlan_flush done
hash_lock acquired
vxlan_fdb_create
This is a day-one bug in vxlan goes back to 3.7.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core/ethtool.c')
0 files changed, 0 insertions, 0 deletions