vxlan: fix igmp races
authorstephen hemminger <stephen@networkplumber.org>
Thu, 18 Jul 2013 15:40:15 +0000 (08:40 -0700)
committerDavid S. Miller <davem@davemloft.net>
Sat, 20 Jul 2013 00:07:25 +0000 (17:07 -0700)
commit3fc2de2faba387218bdf9dbc6b13f513ac3b060a
tree5f87a0e7419248212efa433802b3a5cc39583dcb
parent372675a4a9ac0a0af962d44dadeea69926ce45e0
vxlan: fix igmp races

There are two race conditions in existing code for doing IGMP
management in workqueue in vxlan. First, the vxlan_group_used
function checks the list of vxlan's without any protection, and
it is possible for open followed by close to occur before the
igmp work queue runs.

To solve these move the check into vxlan_open/stop so it is
protected by RTNL. And split into two work structures so that
there is no racy reference to underlying device state.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vxlan.c