> +int pci_find_next_ht_capability(struct pci_dev *dev, int pos, int
> ht_cap)
> +{
> + int rc;
> + u8 cap, mask;
> +
> + if (ht_cap == HT_CAPTYPE_SLAVE || ht_cap == HT_CAPTYPE_HOST)
> + mask = HT_3BIT_CAP_MASK;
> + else
> + mask = HT_5BIT_CAP_MASK;
> +
+ pos = pci_find_next_capability(dev, pos, PCI_CAP_ID_HT);
or the caller will loop forever if a second same type HT cap is found.
> + while (pos) {
> + rc = pci_read_config_byte(dev, pos + 3, &cap);
> + if (rc != PCIBIOS_SUCCESSFUL)
> + return 0;
> +
> + if ((cap & mask) == ht_cap)
> + return pos;
> +
> + pos = pci_find_next_capability(dev, pos, PCI_CAP_ID_HT);
> + }
> +
> + return 0;
> +}
Segher
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general
To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general