bridge: fix hang on removal of bridge via netlink
authorstephen hemminger <shemminger@vyatta.com>
Thu, 6 Oct 2011 11:19:41 +0000 (11:19 +0000)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 11 Nov 2011 17:36:24 +0000 (09:36 -0800)
commit99dfac8ab234555a54f7fa6e4b7bb08bb355158b
tree13e533ddb167623485a1eed2cf505f7ae8b30cca
parente8c492bd9cbc8dd1002bf4bc316f21f0a002b10f
bridge: fix hang on removal of bridge via netlink

[ Upstream commit 1ce5cce895309862d2c35d922816adebe094fe4a ]

Need to cleanup bridge device timers and ports when being bridge
device is being removed via netlink.

This fixes the problem of observed when doing:
 ip link add br0 type bridge
 ip link set dev eth1 master br0
 ip link set br0 up
 ip link del br0

which would cause br0 to hang in unregister_netdev because
of leftover reference count.

Reported-by: Sridhar Samudrala <sri@us.ibm.com>
Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Acked-by: Sridhar Samudrala <sri@us.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
net/bridge/br_if.c
net/bridge/br_netlink.c
net/bridge/br_private.h