* [PATCH 1/1] ipr: fix possible false positive detection of stuck interrupt
[not found] <20110517161648.403401807@linux.vnet.ibm.com>
@ 2011-05-17 16:18 ` Wayne Boyer
2011-05-17 17:59 ` Brian King
0 siblings, 1 reply; 2+ messages in thread
From: Wayne Boyer @ 2011-05-17 16:18 UTC (permalink / raw)
To: James Bottomley; +Cc: linux-scsi, Brian King, Kleber Sacilotto de Souza
If the driver is getting flooded with interrupts, there's a possibility
that the interrupt service routine could falsely detect a stuck interrupt
condition and reset the adapter.
This patch changes the logic such that the routine will loop back into
the command processing code one more time after detecting the stuck
interrupt signature. If there are no commands to process after that pass,
and the interrupt is still not cleared, then the driver will print the
"Error clearing HRRQ" message and reset the adapter.
Signed-off-by: Wayne Boyer <wayneb@linux.vnet.ibm.com>
---
drivers/scsi/ipr.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
Index: b/drivers/scsi/ipr.c
===================================================================
--- a/drivers/scsi/ipr.c 2011-05-03 09:09:53.389771489 -0700
+++ b/drivers/scsi/ipr.c 2011-05-04 11:50:18.855071813 -0700
@@ -5149,21 +5149,21 @@ static irqreturn_t ipr_isr(int irq, void
if (ipr_cmd != NULL) {
/* Clear the PCI interrupt */
+ num_hrrq = 0;
do {
writel(IPR_PCII_HRRQ_UPDATED, ioa_cfg->regs.clr_interrupt_reg32);
int_reg = readl(ioa_cfg->regs.sense_interrupt_reg32);
} while (int_reg & IPR_PCII_HRRQ_UPDATED &&
num_hrrq++ < IPR_MAX_HRRQ_RETRIES);
- if (int_reg & IPR_PCII_HRRQ_UPDATED) {
- ipr_isr_eh(ioa_cfg, "Error clearing HRRQ");
- spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags);
- return IRQ_HANDLED;
- }
-
} else if (rc == IRQ_NONE && irq_none == 0) {
int_reg = readl(ioa_cfg->regs.sense_interrupt_reg32);
irq_none++;
+ } else if (num_hrrq == IPR_MAX_HRRQ_RETRIES &&
+ int_reg & IPR_PCII_HRRQ_UPDATED) {
+ ipr_isr_eh(ioa_cfg, "Error clearing HRRQ");
+ spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags);
+ return IRQ_HANDLED;
} else
break;
}
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH 1/1] ipr: fix possible false positive detection of stuck interrupt
2011-05-17 16:18 ` [PATCH 1/1] ipr: fix possible false positive detection of stuck interrupt Wayne Boyer
@ 2011-05-17 17:59 ` Brian King
0 siblings, 0 replies; 2+ messages in thread
From: Brian King @ 2011-05-17 17:59 UTC (permalink / raw)
To: Wayne Boyer; +Cc: James Bottomley, linux-scsi, Kleber Sacilotto de Souza
Acked-by: Brian King <brking@linux.vnet.ibm.com>
--
Brian King
Linux on Power Virtualization
IBM Linux Technology Center
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-05-17 17:59 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <20110517161648.403401807@linux.vnet.ibm.com>
2011-05-17 16:18 ` [PATCH 1/1] ipr: fix possible false positive detection of stuck interrupt Wayne Boyer
2011-05-17 17:59 ` Brian King
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.