diff options
| author | Abdurrahman Hussain <abdurrahman@nexthop.ai> | 2026-08-15 13:44:19 -0700 |
|---|---|---|
| committer | Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com> | 2026-09-01 17:56:58 +0200 |
| commit | 1f1d0812f6a8ab8e6f709c599f137c99646512cc (patch) | |
| tree | cf85748a8f60b856ef1806846d1f17d7d616f88d /scripts/Makefile.thinlto | |
| parent | 49bda4826843be0ef97a162009a29ea3a63f3935 (diff) | |
| download | linux-1f1d0812f6a8ab8e6f709c599f137c99646512cc.tar.gz linux-1f1d0812f6a8ab8e6f709c599f137c99646512cc.zip | |
gpiolib: of: don't mark hog nodes OF_POPULATED before a chip is found
When a gpio-hog node is attached by a device-tree overlay before its
parent GPIO chip has been registered, of_gpio_notify() sets
OF_POPULATED on the node via of_node_test_and_set_flag() and only then
discovers that there is no gpio_device for the parent, returning
NOTIFY_DONE without clearing the flag.
Since gpiochip_hog_lines() skips any hog child whose of_node carries
OF_POPULATED, the leaked flag makes the hog silently ignored when the
chip is registered later. Applying an overlay containing both a GPIO
controller node and its hog children - and populating devices only
after the overlay apply completes - hits this on every boot; the hog
is only applied if the chip driver is unbound (which clears the flag
in the remove path) and rebound.
Look up the parent gpio_device before claiming the node so that a hog
attached ahead of its chip stays unclaimed and is picked up normally
by gpiochip_hog_lines() at registration time.
Signed-off-by: Abdurrahman Hussain <abdurrahman@nexthop.ai>
Fixes: a23226b7c1f6 ("gpiolib: handle gpio-hogs only once")
Cc: stable@vger.kernel.org
Reviewed-by: Daniel Drake <dan@reactivated.net>
Link: https://patch.msgid.link/20260815-gpiolib-of-hog-flag-leak-v1-1-6126aac5f6f3@nexthop.ai
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions
