net: vrf: Switch dst dev to loopback on device delete
authorDavid Ahern <dsa@cumulusnetworks.com>
Tue, 14 Jun 2016 18:37:21 +0000 (11:37 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 16 Jun 2016 04:39:59 +0000 (21:39 -0700)
commit810e530bfa1116079bf94b8c93b99b0208959261
tree2c7d8cc68e98a05e5fd841f20ba241b51051dc3f
parent042ce7223095fc8950e769decc55f39fe85f87b1
net: vrf: Switch dst dev to loopback on device delete

Attempting to delete a VRF device with a socket bound to it can stall:

  unregister_netdevice: waiting for red to become free. Usage count = 1

The unregister is waiting for the dst to be released and with it
references to the vrf device. Similar to dst_ifdown switch the dst
dev to loopback on delete for all of the dst's for the vrf device
and release the references to the vrf device.

Fixes: 193125dbd8eb2 ("net: Introduce VRF device driver")
Fixes: 35402e3136634 ("net: Add IPv6 support to VRF device")
Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vrf.c