aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/qla4xxx
diff options
context:
space:
mode:
authorLalit Chandivade <lalit.chandivade@qlogic.com>2010-12-03 01:12:27 -0500
committerJames Bottomley <James.Bottomley@suse.de>2010-12-21 13:24:38 -0500
commite6b07df8b0f1530a8ed606f6f464487520d74ad9 (patch)
tree67383d39e70f8a16f92256b93f37ba0934433ab1 /drivers/scsi/qla4xxx
parent6790d4fecf4373016e2983f913bcc0f1cdfa8ca0 (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.c18
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 */