From: Nikolay Aleksandrov <niko...@cumulusnetworks.com> Date: Thu, 6 Jul 2017 15:24:40 +0300
> When destroying a VRF device we cleanup the slaves in its ndo_uninit() > function, but that causes packets to be switched (skb->dev == vrf being > destroyed) even though we're pass the point where the VRF should be > receiving any packets while it is being dismantled. This causes a BUG_ON > to trigger if we have raw sockets (trace below). > The reason is that the inetdev of the VRF has been destroyed but we're > still sending packets up the stack with it, so let's free the slaves in > the dellink callback as David Ahern suggested. > > Note that this fix doesn't prevent packets from going up when the VRF > device is admin down. ... > Fixes: 193125dbd8eb ("net: Introduce VRF device driver") > Reported-by: Chris Cormier <chriscorm...@cumulusnetworks.com> > Signed-off-by: Nikolay Aleksandrov <niko...@cumulusnetworks.com> Applied and queued up for -stable, thanks!