If interrupt fires early, the dspi_interrupt() could complete (dspi->xfer_done) before its initialization happens.
Fixes: 4f5ee75ea171 ("spi: spi-fsl-dspi: Replace interruptible wait queue with a simple completion") Cc: stable@vger.kernel.org Signed-off-by: Krzysztof Kozlowski krzk@kernel.org
Why would an interrupt fire before spi_register_controller, therefore before dspi_transfer_one_message could get called?
I don't know this HW, but the generic answer usually is: Bootloader used SPI and didn't clean up properly.