diff options
author | Lalit Chandivade <lalit.chandivade@qlogic.com> | 2010-12-03 01:12:27 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-12-21 13:24:38 -0500 |
commit | e6b07df8b0f1530a8ed606f6f464487520d74ad9 (patch) | |
tree | 67383d39e70f8a16f92256b93f37ba0934433ab1 /drivers/scsi/qla4xxx | |
parent | 6790d4fecf4373016e2983f913bcc0f1cdfa8ca0 (diff) |
[SCSI] qla4xxx: do not process interrupt unconditionally
in mailbox command do not process interrupt unconditionally,
process interrupt only in polling mode
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Signed-off-by: Lalit Chandivade <lalit.chandivade@qlogic.com>
Signed-off-by: Ravi Anand <ravi.anand@qlogic.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/qla4xxx')
-rw-r--r-- | drivers/scsi/qla4xxx/ql4_mbx.c | 18 |
1 files changed, 1 insertions, 17 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_mbx.c b/drivers/scsi/qla4xxx/ql4_mbx.c index 8961d4c03e3b..b7e43b1d2a70 100644 --- a/drivers/scsi/qla4xxx/ql4_mbx.c +++ b/drivers/scsi/qla4xxx/ql4_mbx.c | |||
@@ -81,23 +81,7 @@ int qla4xxx_mailbox_command(struct scsi_qla_host *ha, uint8_t inCount, | |||
81 | */ | 81 | */ |
82 | spin_lock_irqsave(&ha->hardware_lock, flags); | 82 | spin_lock_irqsave(&ha->hardware_lock, flags); |
83 | 83 | ||
84 | if (is_qla8022(ha)) { | 84 | if (!is_qla8022(ha)) { |
85 | intr_status = readl(&ha->qla4_8xxx_reg->host_int); | ||
86 | if (intr_status & ISRX_82XX_RISC_INT) { | ||
87 | /* Service existing interrupt */ | ||
88 | DEBUG2(printk("scsi%ld: %s: " | ||
89 | "servicing existing interrupt\n", | ||
90 | ha->host_no, __func__)); | ||
91 | intr_status = readl(&ha->qla4_8xxx_reg->host_status); | ||
92 | ha->isp_ops->interrupt_service_routine(ha, intr_status); | ||
93 | clear_bit(AF_MBOX_COMMAND_DONE, &ha->flags); | ||
94 | if (test_bit(AF_INTERRUPTS_ON, &ha->flags) && | ||
95 | test_bit(AF_INTx_ENABLED, &ha->flags)) | ||
96 | qla4_8xxx_wr_32(ha, | ||
97 | ha->nx_legacy_intr.tgt_mask_reg, | ||
98 | 0xfbff); | ||
99 | } | ||
100 | } else { | ||
101 | intr_status = readl(&ha->reg->ctrl_status); | 85 | intr_status = readl(&ha->reg->ctrl_status); |
102 | if (intr_status & CSR_SCSI_PROCESSOR_INTR) { | 86 | if (intr_status & CSR_SCSI_PROCESSOR_INTR) { |
103 | /* Service existing interrupt */ | 87 | /* Service existing interrupt */ |