Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b1e2303dba021ee417c65a89e467a2b145ff9217
Commit:     b1e2303dba021ee417c65a89e467a2b145ff9217
Parent:     3e916c0503a34ba32202a69df1cfeb82f2c5749d
Author:     Michael Ellerman <[EMAIL PROTECTED]>
AuthorDate: Thu Mar 22 21:51:39 2007 +1100
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Wed May 2 19:02:36 2007 -0700

    MSI: Expand pci_msi_supported()
    
    pci_enable_msi() and pci_enable_msix() both search for the MSI/MSI-X
    capability, we can fold this into pci_msi_supported() by passing the
    type in.
    
    Update the code to match the comment for pci_msi_supported(). That is
    it returns 0 on success, and anything else indicates an error.
    
    Signed-off-by: Michael Ellerman <[EMAIL PROTECTED]>
    Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
---
 drivers/pci/msi.c |   19 ++++++++-----------
 1 files changed, 8 insertions(+), 11 deletions(-)

diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 762bff1..d5b9b94 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -459,12 +459,13 @@ static int msix_capability_init(struct pci_dev *dev,
 /**
  * pci_msi_supported - check whether MSI may be enabled on device
  * @dev: pointer to the pci_dev data structure of MSI device function
+ * @type: are we checking for MSI or MSI-X ?
  *
  * Look at global flags, the device itself, and its parent busses
  * to return 0 if MSI are supported for the device.
  **/
 static
-int pci_msi_supported(struct pci_dev * dev)
+int pci_msi_supported(struct pci_dev * dev, int type)
 {
        struct pci_bus *bus;
 
@@ -482,6 +483,9 @@ int pci_msi_supported(struct pci_dev * dev)
                if (bus->bus_flags & PCI_BUS_FLAGS_NO_MSI)
                        return -EINVAL;
 
+       if (!pci_find_capability(dev, type))
+               return -EINVAL;
+
        return 0;
 }
 
@@ -497,13 +501,9 @@ int pci_msi_supported(struct pci_dev * dev)
  **/
 int pci_enable_msi(struct pci_dev* dev)
 {
-       int pos, status;
+       int status;
 
-       if (pci_msi_supported(dev) < 0)
-               return -EINVAL;
-
-       pos = pci_find_capability(dev, PCI_CAP_ID_MSI);
-       if (!pos)
+       if (pci_msi_supported(dev, PCI_CAP_ID_MSI))
                return -EINVAL;
 
        WARN_ON(!!dev->msi_enabled);
@@ -606,13 +606,10 @@ int pci_enable_msix(struct pci_dev* dev, struct 
msix_entry *entries, int nvec)
        int i, j;
        u16 control;
 
-       if (!entries || pci_msi_supported(dev) < 0)
+       if (!entries || pci_msi_supported(dev, PCI_CAP_ID_MSIX))
                return -EINVAL;
 
        pos = pci_find_capability(dev, PCI_CAP_ID_MSIX);
-       if (!pos)
-               return -EINVAL;
-
        pci_read_config_word(dev, msi_control_reg(pos), &control);
        nr_entries = multi_msix_capable(control);
        if (nvec > nr_entries)
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to