diff options
author | stephen hemminger <shemminger@vyatta.com> | 2011-10-06 11:19:41 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-10-18 23:24:16 -0400 |
commit | 1ce5cce895309862d2c35d922816adebe094fe4a (patch) | |
tree | 15e92f7f8f7a78843ec797bcd4b432979be111a7 /net/bridge/br_netlink.c | |
parent | ae2a4583154a5b985ed4a81c6259c55bafe6d810 (diff) | |
download | op-kernel-dev-1ce5cce895309862d2c35d922816adebe094fe4a.zip op-kernel-dev-1ce5cce895309862d2c35d922816adebe094fe4a.tar.gz |
bridge: fix hang on removal of bridge via netlink
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>
Diffstat (limited to 'net/bridge/br_netlink.c')
-rw-r--r-- | net/bridge/br_netlink.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c index 5b1ed1b..e5f9ece3 100644 --- a/net/bridge/br_netlink.c +++ b/net/bridge/br_netlink.c @@ -210,6 +210,7 @@ static struct rtnl_link_ops br_link_ops __read_mostly = { .priv_size = sizeof(struct net_bridge), .setup = br_dev_setup, .validate = br_validate, + .dellink = br_dev_delete, }; int __init br_netlink_init(void) |