linux/drivers/infiniband/hw
Parvi Kaustubhi c0ce3a4076 IB/usnic: Fix potential deadlock
[ Upstream commit 8036e90f92 ]

Acquiring the rtnl lock while holding usdev_lock could result in a
deadlock.

For example:

usnic_ib_query_port()
| mutex_lock(&us_ibdev->usdev_lock)
 | ib_get_eth_speed()
  | rtnl_lock()

rtnl_lock()
| usnic_ib_netdevice_event()
 | mutex_lock(&us_ibdev->usdev_lock)

This commit moves the usdev_lock acquisition after the rtnl lock has been
released.

This is safe to do because usdev_lock is not protecting anything being
accessed in ib_get_eth_speed(). Hence, the correct order of holding locks
(rtnl -> usdev_lock) is not violated.

Signed-off-by: Parvi Kaustubhi <pkaustub@cisco.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2019-01-26 09:20:49 +01:00
..
bnxt_re RDMA/bnxt_re: Avoid accessing the device structure after it is freed 2018-11-21 14:12:21 -07:00
cxgb3 RDMA/drivers: Use core provided API for registering device attributes 2018-10-17 03:45:01 -06:00
cxgb4 First merge window pull request 2018-10-26 07:38:19 -07:00
hfi1 IB/hfi1: Incorrect sizing of sge for PIO will OOPs 2019-01-09 17:45:51 +01:00
hns RDMA/hns: Bugfix pbl configuration for rereg mr 2018-11-23 13:11:47 -07:00
i40iw RDMA/drivers: Use core provided API for registering device attributes 2018-10-17 03:45:01 -06:00
mlx4 RDMA/drivers: Use core provided API for registering device attributes 2018-10-17 03:45:01 -06:00
mlx5 IB/mlx5: Block DEVX umem from the non applicable cases 2018-12-06 11:38:14 -05:00
mthca RDMA/drivers: Use core provided API for registering device attributes 2018-10-17 03:45:01 -06:00
nes First merge window pull request 2018-10-26 07:38:19 -07:00
ocrdma RDMA/drivers: Use core provided API for registering device attributes 2018-10-17 03:45:01 -06:00
qedr RDMA/drivers: Use core provided API for registering device attributes 2018-10-17 03:45:01 -06:00
qib First merge window pull request 2018-10-26 07:38:19 -07:00
usnic IB/usnic: Fix potential deadlock 2019-01-26 09:20:49 +01:00
vmw_pvrdma RDMA/vmw_pvrdma: Return the correct opcode when creating WR 2019-01-22 21:09:53 +01:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00