Several drivers use the following sequence for a single BAR: rc = pcim_iomap_regions(pdev, BIT(bar), name); if (rc) error; addr = pcim_iomap_table(pdev)[bar]; Let's create a simpler (from implementation and usage perspective) pcim_iomap_region() for this use case. Note: The check for !pci_resource_len() is included in pcim_iomap(), so we don't have to duplicate it. Make r8169 the first user of the new function. I'd prefer to handle this via the PCI tree. Heiner Kallweit (2): PCI: Add pcim_iomap_region r8169: use new function pcim_iomap_region() drivers/net/ethernet/realtek/r8169_main.c | 8 +++---- drivers/pci/devres.c | 28 +++++++++++++++++++++++ include/linux/pci.h | 2 ++ 3 files changed, 33 insertions(+), 5 deletions(-) -- 2.44.0