Hello, In this driver, work is activated at the end of the Interrupt handler. It is not clear if it is possible to have another interrupt while the work is executing. Since both spi_sh_work() and spi_sh_irq() are accessing ss->cr1, if it is possible to have a race between these two then lock should be held in the interrupt handler as well as spi_sh_send() which is called from spi_sh_work(). Please let me know if this race is possible. Thank you, Madhuparna