net: cxgb3: Fix an error code when probing the driver
authorZheyu Ma <zheyuma97@gmail.com>
Sun, 6 Mar 2022 05:56:32 +0000 (05:56 +0000)
committerJakub Kicinski <kuba@kernel.org>
Tue, 8 Mar 2022 06:18:52 +0000 (22:18 -0800)
During the process of driver probing, probe function should return < 0
for failure, otherwise kernel will treat value >= 0 as success.

Therefore, the driver should set 'err' to -ENODEV when
'adapter->registered_device_map' is NULL. Otherwise kernel will assume
that the driver has been successfully probed and will cause unexpected
errors.

Signed-off-by: Zheyu Ma <zheyuma97@gmail.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/1646546192-32737-1-git-send-email-zheyuma97@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/chelsio/cxgb3/cxgb3_main.c

index 63521312cb90f1fb013f6125e4e964a56480e884..174b1e156669e58d59f3071d99a1b6d7fb14e9ee 100644 (file)
@@ -3349,6 +3349,7 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
        }
        if (!adapter->registered_device_map) {
                dev_err(&pdev->dev, "could not register any net devices\n");
+               err = -ENODEV;
                goto out_free_dev;
        }