From: Keir Fraser Date: Mon, 30 Nov 2009 10:37:45 +0000 (+0000) Subject: xen/PCI/MSI-X: Don't disable when it was never enabled X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=55550b09945997c1b39d46a1f912a31a44ef1508;p=legacy%2Flinux-2.6.18-xen.git xen/PCI/MSI-X: Don't disable when it was never enabled This is the MSI-X counterpart for c/s 945. Signed-off-by: Jan Beulich --- diff --git a/drivers/pci/msi-xen.c b/drivers/pci/msi-xen.c index 30fcaa94..077dc113 100644 --- a/drivers/pci/msi-xen.c +++ b/drivers/pci/msi-xen.c @@ -741,6 +741,7 @@ int pci_enable_msix(struct pci_dev* dev, struct msix_entry *entries, int nvec) printk("get %x from pci_frontend_enable_msix\n", ret); return ret; } + dev->msix_enabled = 1; msi_dev_entry->default_irq = temp; for (i = 0; i < nvec; i++) { @@ -818,6 +819,11 @@ void pci_disable_msix(struct pci_dev* dev) return; if (!dev) return; + if (!dev->msix_enabled) { + printk(KERN_INFO "PCI: %s: Device did not enabled MSI-X.\n", + pci_name(dev)); + return; + } #ifdef CONFIG_XEN_PCIDEV_FRONTEND if (!is_initial_xendomain()) { @@ -835,6 +841,7 @@ void pci_disable_msix(struct pci_dev* dev) } dev->irq = msi_dev_entry->default_irq; + dev->msix_enabled = 0; return; } #endif