aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla2xxx/qla_isr.c
diff options
context:
space:
mode:
authorSeokmann Ju <seokmann.ju@qlogic.com>2007-01-09 11:37:52 -0800
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2007-01-13 13:59:10 -0600
commitbefede3dabd204e9c546cbfbe391b29286c57da2 (patch)
tree4ab7a6e5b16210fd930b722ab62d93c1cf868cc3 /drivers/scsi/qla2xxx/qla_isr.c
parent3424a65d717ca87ce11acfb03cfd2f713886bfb4 (diff)
downloadkernel_samsung_espresso10-befede3dabd204e9c546cbfbe391b29286c57da2.zip
kernel_samsung_espresso10-befede3dabd204e9c546cbfbe391b29286c57da2.tar.gz
kernel_samsung_espresso10-befede3dabd204e9c546cbfbe391b29286c57da2.tar.bz2
[SCSI] qla2xxx: correct locking while call starget_for_each_device()
Removed spin_unlock_irq()/spin_lock_irq() pairs surrounding starget_for_each_device() calls. As Matthew W. pointed out, starget_for_each_device() can be called under a spinlock being held. The change has been tested and verified on qla2xxx.ko module. Thanks Matthew W. and Hisashi H. for help. Signed-off-by: Andrew Vasquez <Andrew.vasquez@qlogic.com> Signed-off-by: Seokmann Ju <Seokmann.ju@qlogic.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/qla2xxx/qla_isr.c')
-rw-r--r--drivers/scsi/qla2xxx/qla_isr.c4
1 files changed, 0 insertions, 4 deletions
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c
index d3b6df4..b95fcb2 100644
--- a/drivers/scsi/qla2xxx/qla_isr.c
+++ b/drivers/scsi/qla2xxx/qla_isr.c
@@ -650,10 +650,8 @@ qla2x00_ramp_up_queue_depth(scsi_qla_host_t *ha, srb_t *sp)
fcport->last_queue_full + ql2xqfullrampup * HZ))
return;
- spin_unlock_irq(&ha->hardware_lock);
starget_for_each_device(sdev->sdev_target, fcport,
qla2x00_adjust_sdev_qdepth_up);
- spin_lock_irq(&ha->hardware_lock);
}
/**
@@ -923,10 +921,8 @@ qla2x00_status_entry(scsi_qla_host_t *ha, void *pkt)
/* Adjust queue depth for all luns on the port. */
fcport->last_queue_full = jiffies;
- spin_unlock_irq(&ha->hardware_lock);
starget_for_each_device(cp->device->sdev_target,
fcport, qla2x00_adjust_sdev_qdepth_down);
- spin_lock_irq(&ha->hardware_lock);
break;
}
if (lscsi_status != SS_CHECK_CONDITION)