On Mon, Jan 15, 2024 at 12:17 PM Bartosz Golaszewski <brgl@xxxxxxxx> wrote: > > From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > > This reverts commits 1979a2807547 ("gpiolib: replace the GPIO device > mutex with a read-write semaphore") and 65a828bab158 ("gpiolib: use > a mutex to protect the list of GPIO devices"). > > Unfortunately the legacy GPIO API that's still used in older code has to > translate numbers from the global GPIO numberspace to descriptors. This > results in a GPIO device lookup in every call to legacy functions. Some > of those functions - like gpio_set/get_value() - can be called from > atomic context so taking a sleeping lock that is an RW semaphore results > in an error. > > We'll probably have to protect this list with SRCU. > > Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > Closes: https://lore.kernel.org/linux-wireless/f7b5ff1e-8f34-4d98-a7be-b826cb897dc8@moroto.mountain/ > Fixes: 1979a2807547 ("gpiolib: replace the GPIO device mutex with a read-write semaphore") > Fixes: 65a828bab158 ("gpiolib: use a mutex to protect the list of GPIO devices") > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > --- Patch queued for fixes for this merge window. Bart