[SCSI] qla2xxx: Correct inadvertent clearing of RISC_INTR status.
authorAndrew Vasquez <andrew.vasquez@qlogic.com>
Wed, 26 Oct 2011 21:20:13 +0000 (14:20 -0700)
committerJames Bottomley <JBottomley@Parallels.com>
Sun, 30 Oct 2011 10:08:15 +0000 (14:08 +0400)
During heavy I/O (CPU-affinity mode enabled) and CLI/Agent
interactions, the driver would report periodic mailbox command
timeout statuses.  Within the CPU-affinity ISR handler, the
driver should check the 'disable-msix-handshake' flag in deciding
whether or not to clear HCCRX_CLR_RISC_INT.  The mode is not
specific to a dedicated queue, instead, applies to the current
'ha' context.

Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/qla2xxx/qla_isr.c

index 3474e86e98ab65177ee02358585e4310f81dd61f..2516adf1aeeaa946372ac137da595d37466418c7 100644 (file)
@@ -2279,7 +2279,7 @@ qla25xx_msix_rsp_q(int irq, void *dev_id)
        ha = rsp->hw;
 
        /* Clear the interrupt, if enabled, for this response queue */
-       if (rsp->options & ~BIT_6) {
+       if (!ha->flags.disable_msix_handshake) {
                reg = &ha->iobase->isp24;
                spin_lock_irqsave(&ha->hardware_lock, flags);
                WRT_REG_DWORD(&reg->hccr, HCCRX_CLR_RISC_INT);