]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mfd: vexpress-sysreg: Check the return value of devm_gpiochip_add_data()
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Tue, 14 Oct 2025 00:20:00 +0000 (20:20 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Oct 2025 12:59:54 +0000 (13:59 +0100)
[ Upstream commit 1efbee6852f1ff698a9981bd731308dd027189fb ]

Commit 974cc7b93441 ("mfd: vexpress: Define the device as MFD cells")
removed the return value check from the call to gpiochip_add_data() (or
rather gpiochip_add() back then and later converted to devres) with no
explanation. This function however can still fail, so check the return
value and bail-out if it does.

Cc: stable@vger.kernel.org
Fixes: 974cc7b93441 ("mfd: vexpress: Define the device as MFD cells")
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20250811-gpio-mmio-mfd-conv-v1-1-68c5c958cf80@linaro.org
Signed-off-by: Lee Jones <lee@kernel.org>
[ Use non-devm variants ]
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mfd/vexpress-sysreg.c

index c68ff56dbdb12300b8aecdd07c179bc52ba08cfe..1463cf43687df70228552211569460a2cb85fca5 100644 (file)
@@ -160,6 +160,7 @@ static int vexpress_sysreg_probe(struct platform_device *pdev)
        struct gpio_chip *mmc_gpio_chip;
        int master;
        u32 dt_hbi;
+       int ret;
 
        mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        if (!mem)
@@ -195,7 +196,10 @@ static int vexpress_sysreg_probe(struct platform_device *pdev)
        bgpio_init(mmc_gpio_chip, &pdev->dev, 0x4, base + SYS_MCI,
                        NULL, NULL, NULL, NULL, 0);
        mmc_gpio_chip->ngpio = 2;
-       gpiochip_add_data(mmc_gpio_chip, NULL);
+
+       ret = gpiochip_add_data(mmc_gpio_chip, NULL);
+       if (ret)
+               return ret;
 
        return mfd_add_devices(&pdev->dev, PLATFORM_DEVID_AUTO,
                        vexpress_sysreg_cells,