summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/ipr.c
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2016-11-30 16:28:55 -0500
committerMartin K. Petersen <martin.petersen@oracle.com>2016-11-30 19:58:04 -0500
commit9dadfb973f0d9396ef18f7ee0867fe9a165c03f4 (patch)
tree769a3c0f66a3ce447f1bb94163c1cddf4c2d8ac0 /drivers/scsi/ipr.c
parentaf25756de972d0f05246f9e6869f395ee0302c02 (diff)
scsi: ipr: Fix runaway IRQs when falling back from MSI to LSI
LSIs must be ack'ed with an MMIO otherwise they remain asserted forever. This is controlled by the "clear_isr" flag. While we set that flag properly when deciding initially whether to use LSIs or MSIs, we fail to set it if we first chose MSIs, the test fails, then fallback to LSIs. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Brian King <brking@linux.vnet.ibm.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/ipr.c')
-rw-r--r--drivers/scsi/ipr.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c
index 534dc3c877da..835c59c777f2 100644
--- a/drivers/scsi/ipr.c
+++ b/drivers/scsi/ipr.c
@@ -10157,6 +10157,7 @@ static int ipr_probe_ioa(struct pci_dev *pdev,
10157 pci_free_irq_vectors(pdev); 10157 pci_free_irq_vectors(pdev);
10158 10158
10159 ioa_cfg->nvectors = 1; 10159 ioa_cfg->nvectors = 1;
10160 ioa_cfg->clear_isr = 1;
10160 break; 10161 break;
10161 default: 10162 default:
10162 goto out_msi_disable; 10163 goto out_msi_disable;