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

Nam Cao namcao at linutronix.de
Wed Dec 13 23:49:55 PST 2023


On Thu, 14 Dec 2023 01:19:04 +0100 Linus Walleij <linus.walleij at linaro.org> wrote:
> On Wed, Nov 29, 2023 at 5: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>
> > Reviewed-by: Linus Walleij <linus.walleij at linaro.org>
> > ---
> > Tested with polling mode and interrupt mode, NOT with DMA mode.
> > Support with testing very appreciated!  
> 
> FWIW I tested this now on a device using DMA for the transfers
> and everything works fine like before.

Thanks for spending time reviewing and testing!

Best regards,
Nam




More information about the linux-arm-kernel mailing list