linux_old1/drivers/net/bonding
Amerigo Wang 9e2e61fbf8 bonding: fix potential deadlock in bond_uninit()
bond_uninit() is invoked with rtnl_lock held, when it does destroy_workqueue()
which will potentially flush all works in this workqueue, if we hold rtnl_lock
again in the work function, it will deadlock.

So move destroy_workqueue() to destructor where rtnl_lock is not held any more,
suggested by Eric.

Signed-off-by: WANG Cong <amwang@redhat.com>
Cc: Jay Vosburgh <fubar@us.ibm.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Stephen Hemminger <shemminger@vyatta.com>
Cc: Jiri Pirko <jpirko@redhat.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2010-04-01 17:26:01 -07:00
..
Makefile bonding: send IPv6 neighbor advertisement on failover 2008-11-06 00:49:37 -05:00
bond_3ad.c bond_3ad.c avoid possible null deref 2009-12-26 20:24:46 -08:00
bond_3ad.h Remove duplicate slow protocol define in bond_3ad.h 2009-05-09 13:15:49 -07:00
bond_alb.c drivers/net/bonding/: : use pr_fmt 2009-12-13 20:06:07 -08:00
bond_alb.h Convert bonding timers to workqueues 2007-10-23 20:32:00 -04:00
bond_ipv6.c drivers/net/bonding/: : use pr_fmt 2009-12-13 20:06:07 -08:00
bond_main.c bonding: fix potential deadlock in bond_uninit() 2010-04-01 17:26:01 -07:00
bond_sysfs.c driver-core: Add attribute argument to class_attribute show/store 2010-03-07 17:04:48 -08:00
bonding.h bonding: Remove net_device_stats from bonding struct 2010-02-03 20:32:27 -08:00