On 7/6/17 6:24 AM, Nikolay Aleksandrov wrote: > 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. ...
> Fixes: 193125dbd8eb ("net: Introduce VRF device driver") > Reported-by: Chris Cormier <chriscorm...@cumulusnetworks.com> > Signed-off-by: Nikolay Aleksandrov <niko...@cumulusnetworks.com> > --- > drivers/net/vrf.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > Thanks for the fix. Acked-by: David Ahern <dsah...@gmail.com>