]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
gpio: shared: fix a race condition
authorBartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Tue, 6 Jan 2026 09:34:22 +0000 (10:34 +0100)
committerBartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Wed, 7 Jan 2026 08:31:14 +0000 (09:31 +0100)
commit476e44d06fc107f8cd99695d8e4f1c792dfc3379
tree96ce3f37267ec6c30cacf099c80645d39f70b95f
parent0fe50631791bd3504dc7f32af6421bd4041f14aa
gpio: shared: fix a race condition

When matching the reset-gpio reference with the actual firmware node
consuming the GPIO, we also need to lock the structure associated with
the latter as it can change while we're doing it.

Due to triggering lockdep false-positives, we need to use a per-reference
lockdep class but accidentally, this also allows us to remove the
previous lockdep workaround for cleaner code.

Fixes: 49416483a953 ("gpio: shared: allow sharing a reset-gpios pin between reset-gpio and gpiolib")
Reported-by: Marek Szyprowski <m.szyprowski@samsung.com>
Closes: https://lore.kernel.org/all/00107523-7737-4b92-a785-14ce4e93b8cb@samsung.com/
Tested-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20260106-gpio-shared-fixes-v2-2-c7091d2f7581@oss.qualcomm.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
drivers/gpio/gpiolib-shared.c