RE: [patch] qla2xxx: locking problem in qla2x00_init_rings()

2010-09-22 Thread Madhu Iyengar
Dan,

Thanks. We'll test this patch.

Patch-reviewed-by: Giridhar Malavali giridhar.malav...@qlogic.com
Acked-by: Madhu Iyengar madhu.iyen...@qlogic.com

Cheers,
Madhu

-Original Message-
From: linux-scsi-ow...@vger.kernel.org 
[mailto:linux-scsi-ow...@vger.kernel.org] On Behalf Of Dan Carpenter
Sent: Sunday, September 12, 2010 2:41 PM
To: Andrew Vasquez
Cc: Linux Driver; James E.J. Bottomley; Giridhar Malavali; Lalit Chandivade; 
Grant Likely; linux-s...@vger.kernel.org; devicetree-discuss@lists.ozlabs.org; 
kernel-janit...@vger.kernel.org; Arun Easi
Subject: [patch] 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 erro...@gmail.com
---
This seems like an important bug.  I don't have this hardware but could
someone from QLogic test this out and maybe queue it up for 2.6.36?

diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 9c383ba..9f4ba28 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -1787,14 +1787,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);
 
--
To unsubscribe from this list: send the line unsubscribe linux-scsi in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

___
devicetree-discuss mailing list
devicetree-discuss@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/devicetree-discuss


[patch] qla2xxx: locking problem in qla2x00_init_rings()

2010-09-12 Thread Dan Carpenter
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 erro...@gmail.com
---
This seems like an important bug.  I don't have this hardware but could
someone from QLogic test this out and maybe queue it up for 2.6.36?

diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c
index 9c383ba..9f4ba28 100644
--- a/drivers/scsi/qla2xxx/qla_init.c
+++ b/drivers/scsi/qla2xxx/qla_init.c
@@ -1787,14 +1787,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);
 
___
devicetree-discuss mailing list
devicetree-discuss@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/devicetree-discuss