kernel-ark/drivers/infiniband/ulp
Roland Dreier cbbe1efa49 IPoIB: Fix deadlock between ipoib_open() and child interface create
Fix a deadlock between child interface creation/deletion and ipoib
start/stop.  The former takes vlan_mutex, and then might take RTNL via
register_netdev()/unregister_netdev().  The latter is executed with
RTNL held, and tries to take vlan_mutex, which can lead to an AB-BA
deadlock.

Fix this by having the child interface creation/deletion code take the
RTNL first so vlan_mutex always nests inside RTNL.  We can use
register_netdevice() for child interfaces because we form the
interface name from the parent interface and hence don't need the '%'
expansion of register_netdev().

Reported-by: Yossi Etigin <yosefe@voltaire.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2009-01-14 21:44:39 -08:00
..
ipoib IPoIB: Fix deadlock between ipoib_open() and child interface create 2009-01-14 21:44:39 -08:00
iser IB/iser: Add dependency on INFINIBAND_ADDR_TRANS 2009-01-12 19:30:41 -08:00
srp infiniband: struct device - replace bus_id with dev_name(), dev_set_name() 2009-01-06 10:44:39 -08:00