From a09681b1fb6cf4bf851189057dda6ead41a822f4 Mon Sep 17 00:00:00 2001 From: Vladislav Bolkhovitin Date: Wed, 21 Oct 2009 16:51:48 +0000 Subject: [PATCH] qla2x00_schedule_rport_del() must used _irq[save,restore] spinlocks, because it can be called on the IRQ. git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@1230 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- qla2x00t/qla_os.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/qla2x00t/qla_os.c b/qla2x00t/qla_os.c index b02f4236b..c9c41a231 100644 --- a/qla2x00t/qla_os.c +++ b/qla2x00t/qla_os.c @@ -1962,15 +1962,16 @@ qla2x00_schedule_rport_del(struct scsi_qla_host *ha, fc_port_t *fcport, int defer) { struct fc_rport *rport; + unsigned long flags; if (!fcport->rport) return; rport = fcport->rport; if (defer) { - spin_lock_irq(ha->host->host_lock); + 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, &ha->dpc_flags); qla2xxx_wake_dpc(ha); } else {