linux_dsm_epyc7002/drivers/infiniband/ulp/ipoib
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: cbbe1efa49 ("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
..
ipoib_cm.c Updates for 4.10 kernel merge window 2016-12-15 12:03:32 -08:00
ipoib_ethtool.c IB/ipoib: Use new device FW version string 2016-06-23 12:08:34 -04:00
ipoib_fs.c IPoIB: Remove unnecessary test for NULL before debugfs_remove() 2014-08-12 21:59:54 -07:00
ipoib_ib.c Updates for 4.10 kernel merge window 2016-12-15 12:03:32 -08:00
ipoib_main.c IB/ipoib: Set device connection mode only when needed 2017-01-12 14:01:02 -05:00
ipoib_multicast.c Updates for 4.10 kernel merge window 2016-12-15 12:03:32 -08:00
ipoib_netlink.c infiniband: make sure the src net is infiniband when create new link 2014-01-03 20:38:56 -05:00
ipoib_verbs.c IB/ipoib_verbs: Remove deprecated create_singlethread_workqueue 2016-10-07 16:54:32 -04:00
ipoib_vlan.c IB/ipoib: Fix deadlock over vlan_mutex 2017-01-12 14:01:02 -05:00
ipoib.h IB/ipoib: move back IB LL address into the hard header 2016-10-14 10:54:53 -04:00
Kconfig kconfig: rename CONFIG_EMBEDDED to CONFIG_EXPERT 2011-01-20 17:02:05 -08:00
Makefile IB/ipoib: Add rtnl_link_ops support 2012-09-20 16:49:17 -04:00