diff options
author | stephen hemminger <stephen@networkplumber.org> | 2013-06-17 15:09:57 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-06-17 18:55:46 -0400 |
commit | 3bf74b1aecdce719f1445200d5db7dfee2297bba (patch) | |
tree | 3c219f5bbe142d0e5c096caf9169b546d7d669e1 /drivers/net/tun.c | |
parent | 8177a9d79c0e942dcac3312f15585d0344d505a5 (diff) |
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 'drivers/net/tun.c')
0 files changed, 0 insertions, 0 deletions