linux_dsm_epyc7002/drivers/infiniband/ulp/ipoib
Mark Bloch 9b29953bf8 IB/IPoIB: Disable bottom half when dealing with device address
Align locking usage when touching device address with rest
of the kernel. Lock the bottom half when doing so using
netif_addr_lock_bh.

This also solves the following case as reported by lockdep:
	CPU0                    CPU1
	----                    ----
lock(_xmit_INFINIBAND);
				local_irq_disable();
				lock(&(&mc->mca_lock)->rlock);
				lock(_xmit_INFINIBAND);
<Interrupt>
lock(&(&mc->mca_lock)->rlock);

*** DEADLOCK ***

Fixes: 492a7e67ff ("IB/IPoIB: Allow setting the device address")
Signed-off-by: Mark Bloch <markb@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
2016-06-07 09:50:54 -04:00
..
ipoib_cm.c IB/IPoIB: Fix race between ipoib_remove_one to sysfs functions 2016-06-07 09:50:53 -04:00
ipoib_ethtool.c IB/ipoib: Add readout of statistics using ethtool 2016-05-13 19:39:43 -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 IB/IPoIB: Disable bottom half when dealing with device address 2016-06-07 09:50:54 -04:00
ipoib_main.c IB/IPoIB: Disable bottom half when dealing with device address 2016-06-07 09:50:54 -04:00
ipoib_multicast.c IB/IPoIB: Disable bottom half when dealing with device address 2016-06-07 09:50:54 -04: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: Allow setting the device address 2016-05-25 15:39:03 -04:00
ipoib_vlan.c IB/IPoIB: Fix race between ipoib_remove_one to sysfs functions 2016-06-07 09:50:53 -04:00
ipoib.h IB/IPoIB: Fix race between ipoib_remove_one to sysfs functions 2016-06-07 09:50: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