summaryrefslogtreecommitdiff
path: root/drivers/gpio/gpiolib-shared.c
diff options
context:
space:
mode:
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>2025-11-18 21:04:59 +0100
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>2025-11-19 08:32:38 +0100
commit01be9047988d15850ca15d146c5f4aeb5de2f569 (patch)
tree8ea3d803aa889d8eabfaad3efa01bb4ce3df0ca2 /drivers/gpio/gpiolib-shared.c
parentbb7c963d0008f6d652ca7c7aa1aedae3d03425c7 (diff)
gpio: shared: fix a NULL-pointer dereference
The fact that CONFIG_OF is enabled does not mean that the device tree is populated and that of_root points to a valid device node. Check if it's NULL before trying to traverse the tree. Fixes: a060b8c511ab ("gpiolib: implement low-level, shared GPIO support") Reported-by: Mark Brown <broonie@kernel.org> Closes: https://lore.kernel.org/all/dbe20642-9662-40af-a593-c1263baea73b@sirena.org.uk/ Tested-by: Mark Brown <broonie@kernel.org> Link: https://lore.kernel.org/r/20251118200459.13969-1-brgl@bgdev.pl Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Diffstat (limited to 'drivers/gpio/gpiolib-shared.c')
-rw-r--r--drivers/gpio/gpiolib-shared.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/gpio/gpiolib-shared.c b/drivers/gpio/gpiolib-shared.c
index c22eaf05eef2..4ce574a21850 100644
--- a/drivers/gpio/gpiolib-shared.c
+++ b/drivers/gpio/gpiolib-shared.c
@@ -205,7 +205,10 @@ static int gpio_shared_of_traverse(struct device_node *curr)
static int gpio_shared_of_scan(void)
{
- return gpio_shared_of_traverse(of_root);
+ if (of_root)
+ return gpio_shared_of_traverse(of_root);
+
+ return 0;
}
#else
static int gpio_shared_of_scan(void)