diff options
author | Dan Carpenter <error27@gmail.com> | 2010-10-15 11:27:38 -0700 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-10-25 15:54:55 -0500 |
commit | 542bce1f255673816e82eaebb422ead5ad3f5a17 (patch) | |
tree | 21eaecb8f1c983046d5bb828e6ab456a1a9c9a0b /drivers/scsi/qla2xxx | |
parent | b8479178901557dc323a69ee254c1c732e85e0e5 (diff) | |
download | linux-stable-542bce1f255673816e82eaebb422ead5ad3f5a17.tar.gz linux-stable-542bce1f255673816e82eaebb422ead5ad3f5a17.tar.bz2 linux-stable-542bce1f255673816e82eaebb422ead5ad3f5a17.zip |
[SCSI] qla2xxx: locking problem in qla2x00_init_rings()
IRQs are already disabled here so we don't need to disable them again.
But more importantly, the spin_lock_irqsave() overwrites "flags" and
that breaks things when we want to re-enable the IRQs when we call
spin_unlock_irqrestore(&ha->hardware_lock, flags);
Signed-off-by: Dan Carpenter <error27@gmail.com>
Signed-off-by: Madhuranath Iyengar <Madhu.Iyengar@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/qla2xxx')
-rw-r--r-- | drivers/scsi/qla2xxx/qla_init.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index 3cafbef40737..c8d0b121560d 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c @@ -1818,14 +1818,14 @@ qla2x00_init_rings(scsi_qla_host_t *vha) qla2x00_init_response_q_entries(rsp); } - spin_lock_irqsave(&ha->vport_slock, flags); + spin_lock(&ha->vport_slock); /* Clear RSCN queue. */ list_for_each_entry(vp, &ha->vp_list, list) { vp->rscn_in_ptr = 0; vp->rscn_out_ptr = 0; } - spin_unlock_irqrestore(&ha->vport_slock, flags); + spin_unlock(&ha->vport_slock); ha->isp_ops->config_rings(vha); |