aboutsummaryrefslogtreecommitdiff
path: root/drivers/scsi/mpt2sas/mpi/mpi2_raid.h
diff options
context:
space:
mode:
authorJiri Kosina <[email protected]>2012-10-08 09:23:54 +0200
committerJames Bottomley <[email protected]>2012-10-09 12:27:25 +0100
commitf24b5cb818c6789e5d42d4881f34238a5fa0b40c (patch)
tree7806309da7faaff1c867de531a07ce111df0777f /drivers/scsi/mpt2sas/mpi/mpi2_raid.h
parentbc977749e967daa56de1922cf4cb38525631c51c (diff)
[SCSI] qla2xxx: fix potential deadlock on ha->hardware_lock
Lockdep reports: === [ cut here ] === ========================================================= [ INFO: possible irq lock inversion dependency detected ] 3.6.0-0.0.0.28.36b5ec9-default #1 Not tainted --------------------------------------------------------- qla2xxx_1_dpc/368 just changed the state of lock: (&(&ha->vport_slock)->rlock){+.....}, at: [<ffffffffa009b377>] qla2x00_configure_hba+0x197/0x3c0 [qla2xxx] but this lock was taken by another, HARDIRQ-safe lock in the past: (&(&ha->hardware_lock)->rlock){-.....} and interrupts could create inverse lock ordering between them. other info that might help us debug this: Possible interrupt unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&(&ha->vport_slock)->rlock); local_irq_disable(); lock(&(&ha->hardware_lock)->rlock); lock(&(&ha->vport_slock)->rlock); <Interrupt> lock(&(&ha->hardware_lock)->rlock); === [ cut here ] === Fix the potential deadlock by disabling IRQs while holding ha->vport_slock. Reported-and-tested-by: Srivatsa S. Bhat <[email protected]> Signed-off-by: Jiri Kosina <[email protected]> Acked-by: Saurav Kashyap <[email protected]> Signed-off-by: James Bottomley <[email protected]>
Diffstat (limited to 'drivers/scsi/mpt2sas/mpi/mpi2_raid.h')
0 files changed, 0 insertions, 0 deletions