[PATCH 2/2] spi: spl022: switch to use default spi_transfer_one_message()

Linus Walleij linus.walleij at linaro.org
Wed Nov 29 05:58:10 PST 2023


On Wed, Nov 29, 2023 at 2:32 PM Nam Cao <namcao at linutronix.de> wrote:

> Except for polling mode, this driver's transfer_one_message() makes use
> of interrupt handler and tasklet. This is problematic because
> spi_transfer_delay_exec(), who may sleep, is called in interrupt handler
> and tasklet. This causes the following warning:
> BUG: sleeping function called from invalid context at drivers/spi/spi.c:1428
>
> Switch to use the default spi_transfer_one_message() instead, which
> calls spi_transfer_delay_exec() appropriately.
>
> Signed-off-by: Nam Cao <namcao at linutronix.de>
> ---
> Tested with polling mode and interrupt mode, NOT with DMA mode.
> Support with testing very appreciated!

Oh this is great!

Because I think Mark started nagging me something like 10 years
ago to fix this in this driver...

I have a device using DMA mode, I will dig it out and make sure to
get this tested ASAP, in the meantime:

Reviewed-by: Linus Walleij <linus.walleij at linaro.org>

Yours,
Linus Walleij



More information about the linux-arm-kernel mailing list