Re: BUG: INTx is assered unexpectly when unload AHCI driver with MSIx support.

From: tj@xxxxxxxxxx
Date: Mon Jul 18 2016 - 18:28:24 EST


Hello, Pang.

On Fri, Jul 15, 2016 at 12:39:59PM +0000, Pang Raymond wrote:
> Hi Tejun,
>
>
> Yes! It only happens when the device is shutdown.
>
> I think you're right. It's more wiser to add clearing operation to driver
>
> clean up path.
>
> So we can add it to ahci_port_stop()
>
>
> libahci.c is got from Kernel 4.6.3 stable
>
> ============================================================
>
> --- drivers/ata/libahci.c.old 2016-07-15 13:33:47.489620405 +0800
> +++ drivers/ata/libahci.c 2016-07-15 14:01:33.081574586 +0800
> @@ -2392,12 +2392,18 @@
> static void ahci_port_stop(struct ata_port *ap)
> {
> const char *emsg = NULL;
> + struct ahci_host_priv *hpriv = ap->host->private_data;
> + void __iomem *host_mmio = hpriv->mmio;
> int rc;
>
> /* de-initialize port */
> rc = ahci_deinit_port(ap, &emsg);
> if (rc)
> ata_port_warn(ap, "%s (%d)\n", emsg, rc);
> +
> + /* Clear GHC.IS in case of asserting INTx after disable MSIx and re-enable INTx */
> + writel(1 << ap->port_no, host_mmio + HOST_IRQ_STAT);
> +
> }

Yeah, this looks good to me. Can you please format the patch
properly, add description and Signed-off-by?

https://www.kernel.org/doc/Documentation/SubmittingPatches

Thanks.

--
tejun