scsi: ipr: Fix runaway IRQs when falling back from MSI to LSI
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Wed, 30 Nov 2016 21:28:55 +0000 (15:28 -0600)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 1 Dec 2016 00:58:04 +0000 (19:58 -0500)
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>
drivers/scsi/ipr.c

index 534dc3c877dac17603ae5544c0418698e419b108..835c59c777f20a506731fea77300f3f305e8ff9a 100644 (file)
@@ -10157,6 +10157,7 @@ static int ipr_probe_ioa(struct pci_dev *pdev,
                        pci_free_irq_vectors(pdev);
 
                        ioa_cfg->nvectors = 1;
+                       ioa_cfg->clear_isr = 1;
                        break;
                default:
                        goto out_msi_disable;