Does drivers/scsi/qlogicfas408.c have a maintainer? Begin forwarded message: Date: Wed, 6 Dec 2006 16:14:31 -0800 From: bugme-daemon@xxxxxxxxxxxxxxxxxxx To: bugme-new@xxxxxxxxxxxxxx Subject: [Bugme-new] [Bug 7644] New: Race: host lock is not acquired before calling ql_icmd http://bugzilla.kernel.org/show_bug.cgi?id=7644 Summary: Race: host lock is not acquired before calling ql_icmd Kernel Version: 2.6.19 Status: NEW Severity: normal Owner: drivers_parallel@xxxxxxxxxxxxxxxxxxxx Submitter: tammy000@xxxxxxxxx The caller of ql_icmd() should hold the host lock (from the head comments of ql_icmd() shown below). But, the lock is not acquired in function qlogicfas408_queuecommand(). All of these code is in file drivers/scsi/qlogicfas408.c /* * Initiate scsi command - queueing handler * caller must hold host lock */ static void ql_icmd(struct scsi_cmnd *cmd) { struct qlogicfas408_priv *priv = get_priv_by_cmd(cmd); int qbase = priv->qbase; int int_type = priv->int_type; unsigned int i; priv->qabort = 0; REG0; /* clearing of interrupts and the fifo is needed */ ... ------------------------------------------------------ int qlogicfas408_queuecommand(struct scsi_cmnd *cmd, void (*done) (struct scsi_cmnd *)) { struct qlogicfas408_priv *priv = get_priv_by_cmd(cmd); if (scmd_id(cmd) == priv->qinitid) { cmd->result = DID_BAD_TARGET << 16; done(cmd); return 0; } cmd->scsi_done = done; /* wait for the last command's interrupt to finish */ while (priv->qlcmd != NULL) { barrier(); cpu_relax(); } ql_icmd(cmd); return 0; } ------- You are receiving this mail because: ------- You are on the CC list for the bug, or are watching someone who is. - 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