lkml.org 
[lkml]   [2021]   [Apr]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 16/37] pcnet32: Use pci_resource_len to validate PCI resource
    Date
    From: Guenter Roeck <linux@roeck-us.net>

    [ Upstream commit 66c3f05ddc538ee796321210c906b6ae6fc0792a ]

    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>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/amd/pcnet32.c | 5 +++--
    1 file changed, 3 insertions(+), 2 deletions(-)

    --- a/drivers/net/ethernet/amd/pcnet32.c
    +++ b/drivers/net/ethernet/amd/pcnet32.c
    @@ -1493,8 +1493,7 @@ pcnet32_probe_pci(struct pci_dev *pdev,
    }
    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");
    return -ENODEV;
    @@ -1506,6 +1505,8 @@ pcnet32_probe_pci(struct pci_dev *pdev,
    pr_err("architecture does not support 32bit PCI busmaster DMA\n");
    return err;
    }
    +
    + 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");

    \
     
     \ /
      Last update: 2021-04-26 09:33    [W:2.778 / U:0.980 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site