mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-13 14:14:37 +00:00
[SCSI] qla4xxx: Don't process mbx interrupt unconditionally
Do not process interrupt unconditionally during mailbox processing which can lead to spurious interrupt. Mailbox completion are now polled if interrupt are disabled or wait for interrupt to come in if its enabled Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com> Reviewed-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <jbottomley@parallels.com>
This commit is contained in:
parent
6d78bd56be
commit
0160ef1269
1 changed files with 0 additions and 14 deletions
|
@ -86,22 +86,8 @@ int qla4xxx_mailbox_command(struct scsi_qla_host *ha, uint8_t inCount,
|
|||
msleep(10);
|
||||
}
|
||||
|
||||
/* To prevent overwriting mailbox registers for a command that has
|
||||
* not yet been serviced, check to see if an active command
|
||||
* (AEN, IOCB, etc.) is interrupting, then service it.
|
||||
* -----------------------------------------------------------------
|
||||
*/
|
||||
spin_lock_irqsave(&ha->hardware_lock, flags);
|
||||
|
||||
if (!is_qla8022(ha)) {
|
||||
intr_status = readl(&ha->reg->ctrl_status);
|
||||
if (intr_status & CSR_SCSI_PROCESSOR_INTR) {
|
||||
/* Service existing interrupt */
|
||||
ha->isp_ops->interrupt_service_routine(ha, intr_status);
|
||||
clear_bit(AF_MBOX_COMMAND_DONE, &ha->flags);
|
||||
}
|
||||
}
|
||||
|
||||
ha->mbox_status_count = outCount;
|
||||
for (i = 0; i < outCount; i++)
|
||||
ha->mbox_status[i] = 0;
|
||||
|
|
Loading…
Reference in a new issue