[SCSI] qla4xxx: do not process interrupt unconditionally
Lalit Chandivade [Fri, 3 Dec 2010 06:12:27 +0000 (22:12 -0800)]
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>

drivers/scsi/qla4xxx/ql4_mbx.c

index 8961d4c..b7e43b1 100644 (file)
@@ -81,23 +81,7 @@ int qla4xxx_mailbox_command(struct scsi_qla_host *ha, uint8_t inCount,
         */
        spin_lock_irqsave(&ha->hardware_lock, flags);
 
-       if (is_qla8022(ha)) {
-               intr_status = readl(&ha->qla4_8xxx_reg->host_int);
-               if (intr_status & ISRX_82XX_RISC_INT) {
-                       /* Service existing interrupt */
-                       DEBUG2(printk("scsi%ld: %s: "
-                           "servicing existing interrupt\n",
-                           ha->host_no, __func__));
-                       intr_status = readl(&ha->qla4_8xxx_reg->host_status);
-                       ha->isp_ops->interrupt_service_routine(ha, intr_status);
-                       clear_bit(AF_MBOX_COMMAND_DONE, &ha->flags);
-                       if (test_bit(AF_INTERRUPTS_ON, &ha->flags) &&
-                           test_bit(AF_INTx_ENABLED, &ha->flags))
-                               qla4_8xxx_wr_32(ha,
-                                   ha->nx_legacy_intr.tgt_mask_reg,
-                                   0xfbff);
-               }
-       } else {
+       if (!is_qla8022(ha)) {
                intr_status = readl(&ha->reg->ctrl_status);
                if (intr_status & CSR_SCSI_PROCESSOR_INTR) {
                        /* Service existing interrupt */