xen/pciback: Return error on XEN_PCI_OP_enable_msi when device has MSI or MSI-X enabled
[pandora-kernel.git] / drivers / xen / xen-pciback / pciback_ops.c
index be58382..04c5666 100644 (file)
@@ -142,7 +142,12 @@ int xen_pcibk_enable_msi(struct xen_pcibk_device *pdev,
        if (unlikely(verbose_request))
                printk(KERN_DEBUG DRV_NAME ": %s: enable MSI\n", pci_name(dev));
 
-       status = pci_enable_msi(dev);
+       if (dev->msi_enabled)
+               status = -EALREADY;
+       else if (dev->msix_enabled)
+               status = -ENXIO;
+       else
+               status = pci_enable_msi(dev);
 
        if (status) {
                pr_warn_ratelimited(DRV_NAME ": %s: error enabling MSI for guest %u: err %d\n",