From: Chad Dupuis <cdupuis@redhat.com> Date: Tue, 30 Nov 2010 20:00:20 -0500 Subject: [scsi] qla4xxx: do not process interrupts unconditionally Message-id: <20101130200020.10450.94559.sendpatchset@localhost.localdomain> Patchwork-id: 29707 O-Subject: [RHEL 5.6 PATCH 16/28] qla4xxx: In mailbox command function do not process interrupts un-conditionally. Bugzilla: 656999 Bugzilla -------- Bug 656999 (https://bugzilla.redhat.com/show_bug.cgi?id=656999) Upstream Status --------------- To be sent upstream. Description ----------- >From dde8c2c22404130a041870feb1cd965f0c9fc6e6 Mon Sep 17 00:00:00 2001 From: Lalit Chandivade <lalit.chandivade@qlogic.com> Date: Sat, 20 Nov 2010 14:54:39 -0800 Subject: [PATCH 17/29] qla4xxx: In mailbox command function do not process interrupts un-conditionally. Signed-off-by: Lalit Chandivade <lalit.chandivade@qlogic.com> Signed-off-by: Prasanna Mumbai <prasanna.mumbai@qlogic.com> diff --git a/drivers/scsi/qla4xxx/ql4_mbx.c b/drivers/scsi/qla4xxx/ql4_mbx.c index a0531ea..dd8e66a 100644 --- a/drivers/scsi/qla4xxx/ql4_mbx.c +++ b/drivers/scsi/qla4xxx/ql4_mbx.c @@ -84,22 +84,8 @@ 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 */