[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] linux/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 <jbeulich@xxxxxxxxxx>

--- sle10sp3-2009-11-27.orig/drivers/pci/msi-xen.c      2009-11-27 
09:36:21.000000000 +0100
+++ sle10sp3-2009-11-27/drivers/pci/msi-xen.c   2009-11-27 09:40:40.000000000 
+0100
@@ -728,6 +741,7 @@ int pci_enable_msix(struct pci_dev* dev,
                        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++) {
@@ -805,6 +819,11 @@ void pci_disable_msix(struct pci_dev* de
                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()) {
@@ -822,6 +841,7 @@ void pci_disable_msix(struct pci_dev* de
                }
 
                dev->irq = msi_dev_entry->default_irq;
+               dev->msix_enabled = 0;
                return;
        }
 #endif




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.