Message ID | 20210406042922.210327-1-linux@roeck-us.net |
---|---|
State | New |
Headers | show |
Series | pcnet32: Use pci_resource_len to validate PCI resource | expand |
Hello: This patch was applied to netdev/net.git (refs/heads/master): On Mon, 5 Apr 2021 21:29:22 -0700 you wrote: > pci_resource_start() is not a good indicator to determine if a PCI > resource exists or not, since the resource may start at address 0. > This is seen when trying to instantiate the driver in qemu for riscv32 > or riscv64. > > pci 0000:00:01.0: reg 0x10: [io 0x0000-0x001f] > pci 0000:00:01.0: reg 0x14: [mem 0x00000000-0x0000001f] > ... > pcnet32: card has no PCI IO resources, aborting > > [...] Here is the summary with links: - pcnet32: Use pci_resource_len to validate PCI resource https://git.kernel.org/netdev/net/c/66c3f05ddc53 You are awesome, thank you! -- Deet-doot-dot, I am a bot. https://korg.docs.kernel.org/patchwork/pwbot.html
diff --git a/drivers/net/ethernet/amd/pcnet32.c b/drivers/net/ethernet/amd/pcnet32.c index 187b0b9a6e1d..f78daba60b35 100644 --- a/drivers/net/ethernet/amd/pcnet32.c +++ b/drivers/net/ethernet/amd/pcnet32.c @@ -1534,8 +1534,7 @@ pcnet32_probe_pci(struct pci_dev *pdev, const struct pci_device_id *ent) } pci_set_master(pdev); - ioaddr = pci_resource_start(pdev, 0); - if (!ioaddr) { + if (!pci_resource_len(pdev, 0)) { if (pcnet32_debug & NETIF_MSG_PROBE) pr_err("card has no PCI IO resources, aborting\n"); err = -ENODEV; @@ -1548,6 +1547,8 @@ pcnet32_probe_pci(struct pci_dev *pdev, const struct pci_device_id *ent) pr_err("architecture does not support 32bit PCI busmaster DMA\n"); goto err_disable_dev; } + + ioaddr = pci_resource_start(pdev, 0); if (!request_region(ioaddr, PCNET32_TOTAL_SIZE, "pcnet32_probe_pci")) { if (pcnet32_debug & NETIF_MSG_PROBE) pr_err("io address range already allocated\n");
pci_resource_start() is not a good indicator to determine if a PCI resource exists or not, since the resource may start at address 0. This is seen when trying to instantiate the driver in qemu for riscv32 or riscv64. pci 0000:00:01.0: reg 0x10: [io 0x0000-0x001f] pci 0000:00:01.0: reg 0x14: [mem 0x00000000-0x0000001f] ... pcnet32: card has no PCI IO resources, aborting Use pci_resouce_len() instead. Signed-off-by: Guenter Roeck <linux@roeck-us.net> --- drivers/net/ethernet/amd/pcnet32.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)