Messages in this thread | | | From | Linus Walleij <> | Date | Wed, 14 Feb 2024 17:16:28 +0100 | Subject | Re: [PATCH] serial: st-asc: don't get/put GPIOs in atomic context |
| |
On Wed, Feb 14, 2024 at 10:24 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
> From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org> > > Since commit 1f2bcb8c8ccd ("gpio: protect the descriptor label with > SRCU") gpiod_set_consumer_name() calls synchronize_srcu() which led to > a "sleeping in atomic context" smatch warning. > > This function (along with gpiod_get/put() and all other GPIO APIs apart > from gpiod_get/set_value() and gpiod_direction_input/output()) should > have never been called with a spinlock taken. We're only fixing this now > as GPIOLIB has been rebuilt to use SRCU for access serialization which > uncovered this problem. > > Move the calls to gpiod_get/put() outside the spinlock critical section. > > Reported-by: Dan Carpenter <dan.carpenter@linaro.org> > Closes: https://lore.kernel.org/linux-gpio/deee1438-efc1-47c4-8d80-0ab2cf01d60a@moroto.mountain/ > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Good find! Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Yours, Linus Walleij
| |