Skip to content

Commit

Permalink
PCI: Move PCI_FIND_CAP_TTL to pci.h and use it in quirks
Browse files Browse the repository at this point in the history
Some quirks search for a HyperTransport capability and use a hard-coded TTL
value of 48 to avoid an infinite loop.

Move the definition of PCI_FIND_CAP_TTL to pci.h and use it instead of the
hard-coded TTL values.

[bhelgaas: changelog]
Signed-off-by: Wei Yang <weiyang@linux.vnet.ibm.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
  • Loading branch information
Wei Yang authored and Bjorn Helgaas committed Jul 15, 2015
1 parent ffb4d60 commit fff905f
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 5 deletions.
1 change: 0 additions & 1 deletion drivers/pci/pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,6 @@ void __iomem *pci_ioremap_bar(struct pci_dev *pdev, int bar)
EXPORT_SYMBOL_GPL(pci_ioremap_bar);
#endif

#define PCI_FIND_CAP_TTL 48

static int __pci_find_next_cap_ttl(struct pci_bus *bus, unsigned int devfn,
u8 pos, int cap, int *ttl)
Expand Down
2 changes: 2 additions & 0 deletions drivers/pci/pci.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
#define PCI_CFG_SPACE_SIZE 256
#define PCI_CFG_SPACE_EXP_SIZE 4096

#define PCI_FIND_CAP_TTL 48

extern const unsigned char pcie_link_speed[];

bool pcie_cap_has_lnkctl(const struct pci_dev *dev);
Expand Down
8 changes: 4 additions & 4 deletions drivers/pci/quirks.c
Original file line number Diff line number Diff line change
Expand Up @@ -2247,7 +2247,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_AMD, 0x9601, quirk_amd_780_apc_msi);
* return 1 if a HT MSI capability is found and enabled */
static int msi_ht_cap_enabled(struct pci_dev *dev)
{
int pos, ttl = 48;
int pos, ttl = PCI_FIND_CAP_TTL;

pos = pci_find_ht_capability(dev, HT_CAPTYPE_MSI_MAPPING);
while (pos && ttl--) {
Expand Down Expand Up @@ -2306,7 +2306,7 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_CK804_PCIE,
/* Force enable MSI mapping capability on HT bridges */
static void ht_enable_msi_mapping(struct pci_dev *dev)
{
int pos, ttl = 48;
int pos, ttl = PCI_FIND_CAP_TTL;

pos = pci_find_ht_capability(dev, HT_CAPTYPE_MSI_MAPPING);
while (pos && ttl--) {
Expand Down Expand Up @@ -2385,7 +2385,7 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_NVIDIA,

static int ht_check_msi_mapping(struct pci_dev *dev)
{
int pos, ttl = 48;
int pos, ttl = PCI_FIND_CAP_TTL;
int found = 0;

/* check if there is HT MSI cap or enabled on this device */
Expand Down Expand Up @@ -2510,7 +2510,7 @@ static void nv_ht_enable_msi_mapping(struct pci_dev *dev)

static void ht_disable_msi_mapping(struct pci_dev *dev)
{
int pos, ttl = 48;
int pos, ttl = PCI_FIND_CAP_TTL;

pos = pci_find_ht_capability(dev, HT_CAPTYPE_MSI_MAPPING);
while (pos && ttl--) {
Expand Down

0 comments on commit fff905f

Please sign in to comment.