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

[Xen-devel] [PATCH] Dont call msi_unmap_pirq() if did not enabled msi



Hi,

When device driver unload, it may call pci_disable_msi(), if msi did not 
enabled but do msi_unmap_pirq(), then later driver reload and without
msi, then will failed in request_irq() for irq_desc[irq]->chip valie is 
no_irq_chip. So when did not enable msi during driver initializing, then
unloaded driver will not try to disable it.

Signed-off-by: Joe Jin <joe.jin@xxxxxxxxxx>
---
 msi-xen.c |    6 ++++++
 1 file changed, 6 insertions(+)

--- a/drivers/pci/msi-xen.c     2009-11-16 10:48:26.000000000 +0800
+++ b/drivers/pci/msi-xen.c     2009-11-16 19:27:17.000000000 +0800
@@ -670,6 +670,12 @@ void pci_disable_msi(struct pci_dev* dev
        if (!pos)
                return;
 
+       if (!(dev->msi_enabled)) {
+               printk(KERN_INFO "PCI: %s: Device did not eanble MSI.\n",
+                      pci_name(dev));
+               return;
+       }
+       
        pirq = dev->irq;
        /* Restore dev->irq to its default pin-assertion vector */
        dev->irq = dev->irq_old;



_______________________________________________
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®.