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

[Xen-changelog] [linux-2.6.18-xen] xen/PCI/MSI-X: Don't disable when it was never enabled



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1259577465 0
# Node ID 7ee9b1483445b05a2bab9466d1632f00f868f3c3
# Parent  c25b2e4870ca6897ea8754e9c6ba5b1ab11c8f83
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 <jbeulich@xxxxxxxxxx>
---
 drivers/pci/msi-xen.c |    7 +++++++
 1 files changed, 7 insertions(+)

diff -r c25b2e4870ca -r 7ee9b1483445 drivers/pci/msi-xen.c
--- a/drivers/pci/msi-xen.c     Tue Nov 24 17:27:38 2009 +0000
+++ b/drivers/pci/msi-xen.c     Mon Nov 30 10:37:45 2009 +0000
@@ -741,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++) {
@@ -818,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()) {
@@ -835,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-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

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