[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [linux-2.6.18-xen] pciback: disable MSI/MSI-X when resetting device
# HG changeset patch # User Jan Beulich <jbeulich@xxxxxxxxxx> # Date 1297346342 0 # Node ID 2994d2997f9d035092f6cc3544ebe66d797b983a # Parent 1128f2a18acfd4e8d0a7aad38afd107894399822 pciback: disable MSI/MSI-X when resetting device In cases where the guest is abruptly killed and has not disabled MSI/MSI-X interrupts we want to do that. Otherwise when the guest is started up and enables MSI, we would get a WARN() that the device already had been enabled. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx> --- drivers/xen/pciback/pciback_ops.c | 8 ++++++++ 1 files changed, 8 insertions(+) diff -r 1128f2a18acf -r 2994d2997f9d drivers/xen/pciback/pciback_ops.c --- a/drivers/xen/pciback/pciback_ops.c Thu Feb 10 09:06:04 2011 +0000 +++ b/drivers/xen/pciback/pciback_ops.c Thu Feb 10 13:59:02 2011 +0000 @@ -22,6 +22,14 @@ void pciback_reset_device(struct pci_dev /* Disable devices (but not bridges) */ if (dev->hdr_type == PCI_HEADER_TYPE_NORMAL) { +#ifdef CONFIG_PCI_MSI + /* The guest could have been abruptly killed without + * disabling MSI/MSI-X interrupts.*/ + if (dev->msix_enabled) + pci_disable_msix(dev); + if (dev->msi_enabled) + pci_disable_msi(dev); +#endif pci_disable_device(dev); pci_write_config_word(dev, PCI_COMMAND, 0); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |