Feras Daoud 1c3098cdb0 IB/ipoib: Fix deadlock over vlan_mutex
This patch fixes Deadlock while executing ipoib_vlan_delete.

The function takes the vlan_rwsem semaphore and calls
unregister_netdevice. The later function calls
ipoib_mcast_stop_thread that cause workqueue flush.

When the queue has one of the ipoib_ib_dev_flush_xxx events,
a deadlock occur because these events also tries to catch the
same vlan_rwsem semaphore.

To fix, unregister_netdevice should be called after releasing
the semaphore.

Fixes: cbbe1efa4972 ("IPoIB: Fix deadlock between ipoib_open() and child interface create")
Signed-off-by: Feras Daoud <ferasda@mellanox.com>
Signed-off-by: Erez Shitrit <erezsh@mellanox.com>
Reviewed-by: Alex Vesker <valex@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2017-01-12 14:01:02 -05:00
..
2016-11-29 17:35:14 +02:00
2016-12-25 17:21:22 +01:00
2016-12-25 10:47:44 +01:00
2017-01-06 14:34:52 +01:00
2016-12-18 15:49:10 -08:00
2016-12-25 17:21:22 +01:00
2016-12-14 11:14:28 -08:00
2017-01-04 16:38:39 +01:00
2016-12-19 08:16:26 -08:00
2017-01-06 11:19:03 -08:00
2016-12-25 17:21:22 +01:00
2017-01-06 10:49:36 -08:00
2016-12-25 10:47:44 +01:00
2016-12-25 17:21:22 +01:00
2016-12-25 17:21:22 +01:00
2016-12-19 08:16:26 -08:00
2016-12-18 15:49:10 -08:00
2016-12-15 12:46:48 -08:00
2016-12-25 17:21:22 +01:00
2016-12-25 10:47:44 +01:00
2016-12-14 10:49:33 -08:00
2016-12-25 17:21:22 +01:00
2016-12-15 11:45:13 -08:00
2016-12-19 08:16:26 -08:00
2016-12-15 16:03:25 -08:00
2016-12-13 08:52:45 -08:00
2016-12-25 17:21:22 +01:00
2016-12-25 17:21:22 +01:00
2016-12-16 09:26:42 -08:00
2016-12-14 20:42:45 -08:00
2016-12-24 11:27:45 -08:00