Re: [PATCH v5 04/10] pci: don't disable msi/msix at shutdown

From: Fam Zheng
Date: Wed Apr 01 2015 - 23:55:06 EST


On Sun, 03/29 17:04, Michael S. Tsirkin wrote:
> This partially reverts commit d52877c7b1afb8c37ebe17e2005040b79cb618b0:
> "pci/irq: let pci_device_shutdown to call pci_msi_shutdown v2"
>
> It's un-necessary now that we disable msi at start, and it actually
> turns out to cause problems: some device drivers don't register a level
> interrupt handler when they detect msi/msix capability, switching off
> msi while device is going causes device to assert a level interrupt
> which is never de-asserted, causing a kernel hang.
>
> In particular, this was observed with virtio.
>
> Cc: Yinghai Lu <yhlu.kernel.send@xxxxxxxxx>
> Cc: Ulrich Obergfell <uobergfe@xxxxxxxxxx>
> Cc: Rusty Russell <rusty@xxxxxxxxxxxxxxx>
> Reported-by: Fam Zheng <famz@xxxxxxxxxx>
> Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>

Reviewed-by: Fam Zheng <famz@xxxxxxxxxx>
Tested-by: Fam Zheng <famz@xxxxxxxxxx>

> ---
> drivers/pci/pci-driver.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
> index 3cb2210..38a602c 100644
> --- a/drivers/pci/pci-driver.c
> +++ b/drivers/pci/pci-driver.c
> @@ -450,8 +450,6 @@ static void pci_device_shutdown(struct device *dev)
>
> if (drv && drv->shutdown)
> drv->shutdown(pci_dev);
> - pci_msi_shutdown(pci_dev);
> - pci_msix_shutdown(pci_dev);
>
> #ifdef CONFIG_KEXEC
> /*
> --
> MST
>
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/