]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
gpio: qixis-fpga: Fix error handling for devm_regmap_init_mmio()
authorFelix Gu <ustc.gu@gmail.com>
Fri, 20 Mar 2026 14:56:38 +0000 (22:56 +0800)
committerBartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Mon, 23 Mar 2026 10:06:38 +0000 (11:06 +0100)
devm_regmap_init_mmio() returns an ERR_PTR() on failure, not NULL.
The original code checked for NULL which would never trigger on error,
potentially leading to an invalid pointer dereference.
Use IS_ERR() and PTR_ERR() to properly handle the error case.

Fixes: e88500247dc3 ("gpio: add QIXIS FPGA GPIO controller")
Signed-off-by: Felix Gu <ustc.gu@gmail.com>
Link: https://patch.msgid.link/20260320-qixis-v1-1-a8efc22e8945@gmail.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
drivers/gpio/gpio-qixis-fpga.c

index 6e67f43ac0bdd49559e06a2f9988364dca886021..3ced47db1521c8aaeb67470a8ffaefcf4f3e62a3 100644 (file)
@@ -60,8 +60,8 @@ static int qixis_cpld_gpio_probe(struct platform_device *pdev)
                        return PTR_ERR(reg);
 
                regmap = devm_regmap_init_mmio(&pdev->dev, reg, &regmap_config_8r_8v);
-               if (!regmap)
-                       return -ENODEV;
+               if (IS_ERR(regmap))
+                       return PTR_ERR(regmap);
 
                /* In this case, the offset of our register is 0 inside the
                 * regmap area that we just created.