aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pci/msi.c
diff options
context:
space:
mode:
authorAlexander Gordeev <agordeev@redhat.com>2014-09-23 12:45:58 -0600
committerBjorn Helgaas <bhelgaas@google.com>2014-10-01 12:21:14 -0600
commita06cd74cefe754341f747ddc4cf7b0058fa9bff8 (patch)
treeccac2544277779a5515d93a81350b97164a8cba4 /drivers/pci/msi.c
parentPCI/MSI: Move D0 check into pci_msi_check_device() (diff)
downloadlinux-dev-a06cd74cefe754341f747ddc4cf7b0058fa9bff8.tar.xz
linux-dev-a06cd74cefe754341f747ddc4cf7b0058fa9bff8.zip
PCI/MSI: Rename pci_msi_check_device() to pci_msi_supported()
Rename pci_msi_check_device() to pci_msi_supported() for clarity. Note that pci_msi_supported() returns true if MSI/MSI-X is supported, so code like: if (pci_msi_supported(...)) reads naturally. [bhelgaas: changelog, split to separate patch, reverse sense] Signed-off-by: Alexander Gordeev <agordeev@redhat.com> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'drivers/pci/msi.c')
-rw-r--r--drivers/pci/msi.c27
1 files changed, 12 insertions, 15 deletions
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 338b027ea65f..5f1e5dc994cf 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -796,25 +796,24 @@ out_free:
}
/**
- * pci_msi_check_device - check whether MSI may be enabled on a device
+ * pci_msi_supported - check whether MSI may be enabled on a device
* @dev: pointer to the pci_dev data structure of MSI device function
* @nvec: how many MSIs have been requested ?
- * @type: are we checking for MSI or MSI-X ?
*
* Look at global flags, the device itself, and its parent buses
* to determine if MSI/-X are supported for the device. If MSI/-X is
- * supported return 0, else return an error code.
+ * supported return 1, else return 0.
**/
-static int pci_msi_check_device(struct pci_dev *dev, int nvec)
+static int pci_msi_supported(struct pci_dev *dev, int nvec)
{
struct pci_bus *bus;
/* MSI must be globally enabled and supported by the device */
if (!pci_msi_enable)
- return -EINVAL;
+ return 0;
if (!dev || dev->no_msi || dev->current_state != PCI_D0)
- return -EINVAL;
+ return 0;
/*
* You can't ask to have 0 or less MSIs configured.
@@ -822,7 +821,7 @@ static int pci_msi_check_device(struct pci_dev *dev, int nvec)
* b) the list manipulation code assumes nvec >= 1.
*/
if (nvec < 1)
- return -ERANGE;
+ return 0;
/*
* Any bridge which does NOT route MSI transactions from its
@@ -833,9 +832,9 @@ static int pci_msi_check_device(struct pci_dev *dev, int nvec)
*/
for (bus = dev->bus; bus; bus = bus->parent)
if (bus->bus_flags & PCI_BUS_FLAGS_NO_MSI)
- return -EINVAL;
+ return 0;
- return 0;
+ return 1;
}
/**
@@ -937,9 +936,8 @@ int pci_enable_msix(struct pci_dev *dev, struct msix_entry *entries, int nvec)
int status, nr_entries;
int i, j;
- status = pci_msi_check_device(dev, nvec);
- if (status)
- return status;
+ if (!pci_msi_supported(dev, nvec))
+ return -EINVAL;
if (!entries)
return -EINVAL;
@@ -1050,9 +1048,8 @@ int pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec)
int nvec;
int rc;
- rc = pci_msi_check_device(dev, minvec);
- if (rc)
- return rc;
+ if (!pci_msi_supported(dev, minvec))
+ return -EINVAL;
WARN_ON(!!dev->msi_enabled);