PCI/MSI: Return -ENOSPC if pci_enable_msi_range() can't get enough vectors
authorDennis Chen <dennis.chen@arm.com>
Thu, 1 Dec 2016 02:15:04 +0000 (10:15 +0800)
committerBjorn Helgaas <bhelgaas@google.com>
Fri, 10 Feb 2017 22:15:08 +0000 (16:15 -0600)
If device doesn't support as many MSI vectors as the driver requested, we
previously returned -EINVAL from __pci_enable_msi_range() and
pci_enable_msi_range().  In other similar situations in both
__pci_enable_msi_range() and __pci_enable_msix_range(), we returned
-ENOSPC.

Return -ENOSPC from __pci_enable_msi_range() so we do it consistently.

[bhelgaas: changelog]
Signed-off-by: Dennis Chen <dennis.chen@arm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
CC: Tejun Heo <tj@kernel.org>
CC: Christoph Hellwig <hch@lst.de>
CC: Tom Long Nguyen <tom.l.nguyen@intel.com>
CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
CC: Marc Zyngier <marc.zyngier@arm.com>
CC: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
CC: Steve Capper <steve.capper@arm.com>
drivers/pci/msi.c

index 52ac675..93cc268 100644 (file)
@@ -1065,7 +1065,7 @@ static int __pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec,
        if (nvec < 0)
                return nvec;
        if (nvec < minvec)
-               return -EINVAL;
+               return -ENOSPC;
 
        if (nvec > maxvec)
                nvec = maxvec;