]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
net: ethernet: adi: adin1110: Check return value of devm_gpiod_get_optional() in...
authorChen Ni <nichen@iscas.ac.cn>
Mon, 2 Feb 2026 04:02:28 +0000 (12:02 +0800)
committerJakub Kicinski <kuba@kernel.org>
Wed, 4 Feb 2026 03:11:58 +0000 (19:11 -0800)
The devm_gpiod_get_optional() function may return an ERR_PTR in case of
genuine GPIO acquisition errors, not just NULL which indicates the
legitimate absence of an optional GPIO.

Add an IS_ERR() check after the call in adin1110_check_spi(). On error,
return the error code to ensure proper failure handling rather than
proceeding with invalid pointers.

Fixes: 36934cac7aaf ("net: ethernet: adi: adin1110: add reset GPIO")
Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
Reviewed-by: Nuno Sá <nuno.sa@analog.com>
Link: https://patch.msgid.link/20260202040228.4129097-1-nichen@iscas.ac.cn
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/adi/adin1110.c

index 30f9d271e59531c08321460a0539c5f1f5e88ac1..71a2397edf2bbf2dd15ca73637b22dc85b731a73 100644 (file)
@@ -1089,6 +1089,9 @@ static int adin1110_check_spi(struct adin1110_priv *priv)
 
        reset_gpio = devm_gpiod_get_optional(&priv->spidev->dev, "reset",
                                             GPIOD_OUT_LOW);
+       if (IS_ERR(reset_gpio))
+               return dev_err_probe(&priv->spidev->dev, PTR_ERR(reset_gpio),
+                                    "failed to get reset gpio\n");
        if (reset_gpio) {
                /* MISO pin is used for internal configuration, can't have
                 * anyone else disturbing the SDO line.