[Linux-kernel-mentees] [PATCH] PCI: Change return type of pci_find_capability()

Puranjay Mohan puranjay12 at gmail.com
Tue Nov 17 19:17:18 UTC 2020

PCI Capabilities are linked in a list that must appear in the first 256 bytes of config space.
The Capabilities Pointer register at 0x34 contains the address of the first Capability in the list.
Each Capability contains an 8 bit "Next Capability Pointer" that is set to 0x00 in the last item of the list.

Change the return type of pci_find_capability() from int to u8 to match the specification.

Signed-off-by: Puranjay Mohan <puranjay12 at gmail.com>
 drivers/pci/pci.c   | 4 ++--
 include/linux/pci.h | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 6d4d5a2f923d..05ac8a493e6b 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -477,9 +477,9 @@ static int __pci_bus_find_cap_start(struct pci_bus *bus,
  *  %PCI_CAP_ID_PCIX         PCI-X
  *  %PCI_CAP_ID_EXP          PCI Express
-int pci_find_capability(struct pci_dev *dev, int cap)
+u8 pci_find_capability(struct pci_dev *dev, int cap)
-	int pos;
+	u8 pos;
 	pos = __pci_bus_find_cap_start(dev->bus, dev->devfn, dev->hdr_type);
 	if (pos)
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 22207a79762c..19a817702ea9 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -1063,7 +1063,7 @@ void pci_sort_breadthfirst(void);
 /* Generic PCI functions exported to card drivers */
-int pci_find_capability(struct pci_dev *dev, int cap);
+u8 pci_find_capability(struct pci_dev *dev, int cap);
 int pci_find_next_capability(struct pci_dev *dev, u8 pos, int cap);
 int pci_find_ext_capability(struct pci_dev *dev, int cap);
 int pci_find_next_ext_capability(struct pci_dev *dev, int pos, int cap);
@@ -1719,7 +1719,7 @@ static inline int __pci_register_driver(struct pci_driver *drv,
 static inline int pci_register_driver(struct pci_driver *drv)
 { return 0; }
 static inline void pci_unregister_driver(struct pci_driver *drv) { }
-static inline int pci_find_capability(struct pci_dev *dev, int cap)
+static inline u8 pci_find_capability(struct pci_dev *dev, int cap)
 { return 0; }
 static inline int pci_find_next_capability(struct pci_dev *dev, u8 post,
 					   int cap)

More information about the Linux-kernel-mentees mailing list