[PATCH v2 0/4] gpio: fix SRCU bugs

From: Bartosz Golaszewski
Date: Wed Feb 14 2024 - 03:44:46 EST


From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx>

Here are four fixes to some bugs in recent SRCU changes. The first one fixes
an actual race condition. The other three just make lockdep happy.

v1 -> v2:
- use srcu_dereference() instead of rcu_dereference_protected() as
advised by Paul
- add a patch using rcu_dereference_check(..., 1) in deprecated
interfaces that return the address of the RCU-protected chip structure
to external users (who shouldn't use it anyway but well...)
- pick up review tags for patches 1/4 and 2/4

Bartosz Golaszewski (4):
gpio: take the SRCU read lock in gpiod_hog()
gpio: cdev: use correct pointer accessors with SRCU
gpio: use srcu_dereference() with SRCU-protected pointers
gpio: don't let lockdep complain about inherently dangerous RCU usage

drivers/gpio/gpiolib-cdev.c | 25 ++++++++++++-------------
drivers/gpio/gpiolib-sysfs.c | 5 +++--
drivers/gpio/gpiolib.c | 32 ++++++++++++++++++--------------
drivers/gpio/gpiolib.h | 3 ++-
4 files changed, 35 insertions(+), 30 deletions(-)

--
2.40.1