|
@@ -177,8 +177,14 @@ qla2x00_mailbox_command(scsi_qla_host_t *vha, mbx_cmd_t *mcp)
|
|
|
WRT_REG_WORD(®->isp.hccr, HCCR_SET_HOST_INT);
|
|
|
spin_unlock_irqrestore(&ha->hardware_lock, flags);
|
|
|
|
|
|
- wait_for_completion_timeout(&ha->mbx_intr_comp, mcp->tov * HZ);
|
|
|
-
|
|
|
+ if (!wait_for_completion_timeout(&ha->mbx_intr_comp,
|
|
|
+ mcp->tov * HZ)) {
|
|
|
+ ql_dbg(ql_dbg_mbx, vha, 0x117a,
|
|
|
+ "cmd=%x Timeout.\n", command);
|
|
|
+ spin_lock_irqsave(&ha->hardware_lock, flags);
|
|
|
+ clear_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags);
|
|
|
+ spin_unlock_irqrestore(&ha->hardware_lock, flags);
|
|
|
+ }
|
|
|
} else {
|
|
|
ql_dbg(ql_dbg_mbx, vha, 0x1011,
|
|
|
"Cmd=%x Polling Mode.\n", command);
|