lib82596: Fix IRQ check in sni_82596_probe
authorMiaoqian Lin <linmq006@gmail.com>
Fri, 14 Jan 2022 06:57:24 +0000 (06:57 +0000)
committerDavid S. Miller <davem@davemloft.net>
Fri, 14 Jan 2022 11:24:03 +0000 (11:24 +0000)
platform_get_irq() returns negative error number instead 0 on failure.
And the doc of platform_get_irq() provides a usage example:

    int irq = platform_get_irq(pdev, 0);
    if (irq < 0)
        return irq;

Fix the check of return value to catch errors correctly.

Fixes: 115978859272 ("i825xx: Move the Intel 82586/82593/82596 based drivers")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/i825xx/sni_82596.c

index 27937c5d795673a53d79aee82a91898732102d52..daec9ce04531be2531a24d5b44bc83ad5dae3a2c 100644 (file)
@@ -117,9 +117,10 @@ static int sni_82596_probe(struct platform_device *dev)
        netdevice->dev_addr[5] = readb(eth_addr + 0x06);
        iounmap(eth_addr);
 
-       if (!netdevice->irq) {
+       if (netdevice->irq < 0) {
                printk(KERN_ERR "%s: IRQ not found for i82596 at 0x%lx\n",
                        __FILE__, netdevice->base_addr);
+               retval = netdevice->irq;
                goto probe_failed;
        }