diff options
author | Mark Bloch | 2016-06-04 15:15:22 +0300 |
---|---|---|
committer | Doug Ledford | 2016-06-07 09:50:54 -0400 |
commit | 9b29953bf8ca23944c5e00dcc15ad7bd9fecdd4e (patch) | |
tree | d6f45a244de0dfe32726d5ccafaf19077e4e30ac /drivers/infiniband/core | |
parent | 8e787646fbce895c20c4433973e90af90e1c6a28 (diff) |
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: 492a7e67ff83 ("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>
Diffstat (limited to 'drivers/infiniband/core')
0 files changed, 0 insertions, 0 deletions