Hi, In the course of verifying my PCIe link training failure workaround (cf. <https://lore.kernel.org/r/alpine.DEB.2.21.2305310024400.59226@xxxxxxxxxxxxxxxxx/>) in the context of secondary bus reset handling I found a piece of code in the InfiniBand HFI1 driver that duplicates what we already have as private code in PCI core. This patch series removes this duplication by exporting said private code and than making use of it in the HFI1 driver. As I have no means to run-time verify InfiniBand code I have only build these patches, for x86-64, with the HFI1 driver both built in and modular. Please see individual change descriptions for further details. Please consider. Maciej