Dan, Thanks. We'll test this patch. Patch-reviewed-by: Giridhar Malavali <giridhar.malavali@xxxxxxxxxx> Acked-by: Madhu Iyengar <madhu.iyengar@xxxxxxxxxx> Cheers, Madhu -----Original Message----- From: linux-scsi-owner@xxxxxxxxxxxxxxx [mailto:linux-scsi-owner@xxxxxxxxxxxxxxx] 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-scsi@xxxxxxxxxxxxxxx; devicetree-discuss@xxxxxxxxxxxxxxxx; kernel-janitors@xxxxxxxxxxxxxxx; 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 <error27@xxxxxxxxx> --- 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html