xen/pciback: Return error on XEN_PCI_OP_enable_msix when device has MSI or MSI-X...
[sfrench/cifs-2.6.git] / drivers / xen / xen-pciback / pciback_ops.c
index 8bfb87c1a9f3851c1c28935853e7e4218a4ec909..029f33ddb8bfc33239e35f1cbb20feee10f4dd92 100644 (file)
@@ -206,9 +206,16 @@ int xen_pcibk_enable_msix(struct xen_pcibk_device *pdev,
        if (unlikely(verbose_request))
                printk(KERN_DEBUG DRV_NAME ": %s: enable MSI-X\n",
                       pci_name(dev));
+
        if (op->value > SH_INFO_MAX_VEC)
                return -EINVAL;
 
+       if (dev->msix_enabled)
+               return -EALREADY;
+
+       if (dev->msi_enabled)
+               return -ENXIO;
+
        entries = kmalloc(op->value * sizeof(*entries), GFP_KERNEL);
        if (entries == NULL)
                return -ENOMEM;