ipvlan: ignore addresses from ipv6 autoconfiguration
Inet6addr notifier is atomic and runs in bh context without RTNL when ipv6 receives router advertisement packet and performs autoconfiguration. Proper fix still in discussion. Let's at least plug the bug. v1: http://lkml.kernel.org/r/20150514135618.14062.1969.stgit@buzz v2: http://lkml.kernel.org/r/20150703125840.24121.91556.stgit@buzz Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0fba37a3af
commit
23a5a49c83
|
@ -655,6 +655,10 @@ static int ipvlan_addr6_event(struct notifier_block *unused,
|
|||
struct net_device *dev = (struct net_device *)if6->idev->dev;
|
||||
struct ipvl_dev *ipvlan = netdev_priv(dev);
|
||||
|
||||
/* FIXME IPv6 autoconf calls us from bh without RTNL */
|
||||
if (in_softirq())
|
||||
return NOTIFY_DONE;
|
||||
|
||||
if (!netif_is_ipvlan(dev))
|
||||
return NOTIFY_DONE;
|
||||
|
||||
|
|
Loading…
Reference in New Issue