spi: spi-nxp-fspi: fix fspi panic by unexpected interrupts
authorRan Wang <ran.wang_1@nxp.com>
Mon, 23 Nov 2020 02:57:15 +0000 (10:57 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 16 Dec 2020 09:58:32 +0000 (10:58 +0100)
commit6acb0cf4bf048312ee320270acb2f698a35e9469
tree6f582737f8dc7688f2b3503c5f329362afa786d1
parent3067d221bcd215e53d7332d59c669caf55da96c4
spi: spi-nxp-fspi: fix fspi panic by unexpected interrupts

[ Upstream commit 71d80563b0760a411cd90a3680536f5d887fff6b ]

Given the case that bootloader(such as UEFI)'s FSPI driver might not
handle all interrupts before loading kernel, those legacy interrupts
would assert immidiately once kernel's FSPI driver enable them. Further,
if it was FSPI_INTR_IPCMDDONE, the irq handler nxp_fspi_irq_handler()
would call complete(&f->c) to notify others. However, f->c might not be
initialized yet at that time, then cause kernel panic.

Of cause, we should fix this issue within bootloader. But it would be
better to have this pacth to make dirver more robust (by clearing all
interrupt status bits before enabling interrupts).

Suggested-by: Han Xu <han.xu@nxp.com>
Signed-off-by: Ran Wang <ran.wang_1@nxp.com>
Link: https://lore.kernel.org/r/20201123025715.14635-1-ran.wang_1@nxp.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/spi/spi-nxp-fspi.c