aboutsummaryrefslogtreecommitdiffstats
path: root/fs/read_write.c
diff options
context:
space:
mode:
authorRoland Dreier <rolandd@cisco.com>2009-01-15 00:44:39 -0500
committerRoland Dreier <rolandd@cisco.com>2009-01-15 00:44:39 -0500
commitcbbe1efa4972350286b52cb48aefaa11e198c0fb (patch)
treeddcfdea04829b9d2f84b0e9d6a9adc6eb86a5f13 /fs/read_write.c
parentb8a1b1ce14252b59b2d5c89de25b54f9bfd4cc5e (diff)
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>
Diffstat (limited to 'fs/read_write.c')
0 files changed, 0 insertions, 0 deletions