]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/vfio/pci/vfio_pci_intrs.c
Merge tag 'pwm/for-3.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry...
[karo-tx-linux.git] / drivers / vfio / pci / vfio_pci_intrs.c
index 210357691dc0a06e65b522e5847321e62c43541c..9dd49c9839ac6de24496d37e0f4020e424415a1d 100644 (file)
@@ -482,15 +482,19 @@ static int vfio_msi_enable(struct vfio_pci_device *vdev, int nvec, bool msix)
                for (i = 0; i < nvec; i++)
                        vdev->msix[i].entry = i;
 
-               ret = pci_enable_msix(pdev, vdev->msix, nvec);
-               if (ret) {
+               ret = pci_enable_msix_range(pdev, vdev->msix, 1, nvec);
+               if (ret < nvec) {
+                       if (ret > 0)
+                               pci_disable_msix(pdev);
                        kfree(vdev->msix);
                        kfree(vdev->ctx);
                        return ret;
                }
        } else {
-               ret = pci_enable_msi_block(pdev, nvec);
-               if (ret) {
+               ret = pci_enable_msi_range(pdev, 1, nvec);
+               if (ret < nvec) {
+                       if (ret > 0)
+                               pci_disable_msi(pdev);
                        kfree(vdev->ctx);
                        return ret;
                }