Bug 7644
Summary: | Race: host lock is not acquired before calling ql_icmd | ||
---|---|---|---|
Product: | SCSI Drivers | Reporter: | Lin Tan (tammy000) |
Component: | Other | Assignee: | scsi_drivers-other |
Status: | REJECTED INVALID | ||
Severity: | normal | CC: | bunk, protasnb |
Priority: | P2 | ||
Hardware: | i386 | ||
OS: | Linux | ||
Kernel Version: | 2.6.19 | Subsystem: | |
Regression: | --- | Bisected commit-id: |
Description
Lin Tan
2006-12-06 16:11:08 UTC
We do hold the lock in generic scsi code when call queuecommand. in scsi_dispatch_cmd: ... spin_lock_irqsave(host->host_lock, flags); scsi_cmd_get_serial(host, cmd); if (unlikely(host->shost_state == SHOST_DEL)) { cmd->result = (DID_NO_CONNECT << 16); scsi_done(cmd); } else { rtn = host->hostt->queuecommand(cmd, scsi_done); } spin_unlock_irqrestore(host->host_lock, flags); ... scsi_send)eh_command: ... spin_lock_irqsave(shost->host_lock, flags); scsi_log_send(scmd); shost->hostt->queuecommand(scmd, scsi_eh_done); spin_unlock_irqrestore(shost->host_lock, flags); ... So it looks like we are good. |