Re: [PATCH] gpio: swnode: restore the swnode-name-against-chip-label matching
From: Dan Carpenter
Date: Tue Feb 10 2026 - 14:10:58 EST
Hi Bartosz,
kernel test robot noticed the following build warnings:
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Bartosz-Golaszewski/gpio-swnode-restore-the-swnode-name-against-chip-label-matching/20260210-175012
base: https://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git gpio/for-next
patch link: https://lore.kernel.org/r/20260210094806.38146-1-bartosz.golaszewski%40oss.qualcomm.com
patch subject: [PATCH] gpio: swnode: restore the swnode-name-against-chip-label matching
config: nios2-randconfig-r071-20260210 (https://download.01.org/0day-ci/archive/20260211/202602110128.BInRI9un-lkp@xxxxxxxxx/config)
compiler: nios2-linux-gcc (GCC) 8.5.0
smatch version: v0.5.0-8994-gd50c5a4c
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
| Closes: https://lore.kernel.org/r/202602110128.BInRI9un-lkp@xxxxxxxxx/
smatch warnings:
drivers/gpio/gpiolib-swnode.c:62 swnode_get_gpio_device() error: we previously assumed 'gdev_node' could be null (see line 32)
vim +/gdev_node +62 drivers/gpio/gpiolib-swnode.c
b7b56e64a345e7 Bartosz Golaszewski 2023-09-27 26 static struct gpio_device *swnode_get_gpio_device(struct fwnode_handle *fwnode)
e7f9ff5dc90c38 Dmitry Torokhov 2022-11-11 27 {
b7b56e64a345e7 Bartosz Golaszewski 2023-09-27 28 const struct software_node *gdev_node;
b7b56e64a345e7 Bartosz Golaszewski 2023-09-27 29 struct gpio_device *gdev;
e7f9ff5dc90c38 Dmitry Torokhov 2022-11-11 30
b7b56e64a345e7 Bartosz Golaszewski 2023-09-27 31 gdev_node = to_software_node(fwnode);
6774a66d0e103d Bartosz Golaszewski 2025-12-15 @32 if (!gdev_node)
216c1204757190 Bartosz Golaszewski 2025-11-20 33 goto fwnode_lookup;
gdev_node is NULL
e7f9ff5dc90c38 Dmitry Torokhov 2022-11-11 34
9d50f95bc0d5df Charles Keepax 2024-04-16 35 /*
9d50f95bc0d5df Charles Keepax 2024-04-16 36 * Check for a special node that identifies undefined GPIOs, this is
9d50f95bc0d5df Charles Keepax 2024-04-16 37 * primarily used as a key for internal chip selects in SPI bindings.
9d50f95bc0d5df Charles Keepax 2024-04-16 38 */
9d50f95bc0d5df Charles Keepax 2024-04-16 39 if (IS_ENABLED(CONFIG_GPIO_SWNODE_UNDEFINED) &&
6774a66d0e103d Bartosz Golaszewski 2025-12-15 40 gdev_node == &swnode_gpio_undefined)
9d50f95bc0d5df Charles Keepax 2024-04-16 41 return ERR_PTR(-ENOENT);
9d50f95bc0d5df Charles Keepax 2024-04-16 42
216c1204757190 Bartosz Golaszewski 2025-11-20 43 fwnode_lookup:
e5d527be7e6984 Bartosz Golaszewski 2025-11-03 44 gdev = gpio_device_find_by_fwnode(fwnode);
4a61b0b6de0480 Bartosz Golaszewski 2026-02-10 45 if (!gdev)
4a61b0b6de0480 Bartosz Golaszewski 2026-02-10 46 /*
4a61b0b6de0480 Bartosz Golaszewski 2026-02-10 47 * FIXME: We shouldn't need to compare the GPIO controller's
4a61b0b6de0480 Bartosz Golaszewski 2026-02-10 48 * label against the software node that is supposedly attached
4a61b0b6de0480 Bartosz Golaszewski 2026-02-10 49 * to it. However there are currently GPIO users that - knowing
4a61b0b6de0480 Bartosz Golaszewski 2026-02-10 50 * the expected label of the GPIO chip whose pins they want to
4a61b0b6de0480 Bartosz Golaszewski 2026-02-10 51 * control - set up dummy software nodes named after those GPIO
4a61b0b6de0480 Bartosz Golaszewski 2026-02-10 52 * controllers, which aren't actually attached to them. In this
4a61b0b6de0480 Bartosz Golaszewski 2026-02-10 53 * case gpio_device_find_by_fwnode() will fail as no device on
4a61b0b6de0480 Bartosz Golaszewski 2026-02-10 54 * the GPIO bus is actually associated with the fwnode we're
4a61b0b6de0480 Bartosz Golaszewski 2026-02-10 55 * looking for.
4a61b0b6de0480 Bartosz Golaszewski 2026-02-10 56 *
4a61b0b6de0480 Bartosz Golaszewski 2026-02-10 57 * As a fallback: continue checking the label if we have no
4a61b0b6de0480 Bartosz Golaszewski 2026-02-10 58 * match. However, the situation described above is an abuse
4a61b0b6de0480 Bartosz Golaszewski 2026-02-10 59 * of the software node API and should be phased out and the
4a61b0b6de0480 Bartosz Golaszewski 2026-02-10 60 * following line - eventually removed.
4a61b0b6de0480 Bartosz Golaszewski 2026-02-10 61 */
4a61b0b6de0480 Bartosz Golaszewski 2026-02-10 @62 gdev = gpio_device_find_by_label(gdev_node->name);
^^^^^^^^^^^^^^^
Unchecked dereference
4a61b0b6de0480 Bartosz Golaszewski 2026-02-10 63
b7b56e64a345e7 Bartosz Golaszewski 2023-09-27 64 return gdev ?: ERR_PTR(-EPROBE_DEFER);
e7f9ff5dc90c38 Dmitry Torokhov 2022-11-11 65 }
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki