qla2xxx: Fix for incorrect unconditionally interrupts enabling on IRQ context
Subsystems (2)
PATCH 1/1 qla2xxx: Fix for incorrect unconditionally interrupts enabling on IRQ context
A rather trivial patch. Function qla2x00_schedule_rport_del() can be called on IRQ context, so it can't unconditionally enable interrupts. Spotted by lockdep.
This patch is against 2.6.27.2, but applies also on 2.6.28-rc7.
Signed-off-by Vladislav Bolkhovitin <[email protected]>
qla_os.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
drivers/scsi/qla2xxx/qla_os.c +3 -2
@@ -1862,9 +1885,10 @@ qla2x00_schedule_rport_del(struct scsi_q rport = fcport->rport;if (defer) { -spin_lock_irq (ha->host->host_lock); +unsigned long flags; +spin_lock_irqsave (ha->host->host_lock, flags); fcport->drport = rport; -spin_unlock_irq (ha->host->host_lock); +spin_unlock_irqrestore (ha->host->host_lock, flags);set_bit (FCPORT_UPDATE_NEEDED , &pha->dpc_flags);qla2xxx_wake_dpc (pha); }else