linux/drivers/mtd/nand/raw
Runyu Xiao 21f027016b mtd: rawnand: cadence: Initialize IRQ state before requesting IRQ
The Cadence NAND interrupt handler uses both the IRQ lock and completion
object. Registering the IRQ before initializing them leaves a window in
which a pending interrupt can access uninitialized synchronization state.

Initialize them before registering the handler.

Fixes: ec4ba01e89 ("mtd: rawnand: Add new Cadence NAND driver to MTD subsystem")
Cc: stable@vger.kernel.org
Assisted-by: Codex:GPT-5
Signed-off-by: Runyu Xiao <runyu.xiao@seu.edu.cn>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
2026-09-04 20:32:21 +02:00
..
atmel mtd: rawnand: atmel: use struct_size 2026-07-03 15:48:01 +02:00
bcm47xxnflash mtd: bcm47xxnflash: Add error handling for bcm47xxnflash_ops_bcm4706_ctl_cmd() 2025-04-29 11:05:35 +02:00
brcmnand Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
gpmi-nand mtd: rawnand: gpmi: add debugfs entry for BCH geometry 2026-08-07 15:59:37 +02:00
ingenic mtd: rawnand: ingenic: handle ECC clock enable failures 2026-06-29 16:39:14 +02:00
ams-delta.c mtd: Switch back to struct platform_driver::remove() 2024-10-21 11:58:07 +02:00
arasan-nand-controller.c mtd: rawnand: arasan: Fix missing de-registration of NAND 2024-12-05 11:13:52 +01:00
au1550nd.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
cadence-nand-controller.c mtd: rawnand: cadence: Initialize IRQ state before requesting IRQ 2026-09-04 20:32:21 +02:00
cafe_nand.c mtd: Consistently define pci_device_ids 2026-05-27 11:11:04 +02:00
cs553x_nand.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
davinci_nand.c mtd: rawnand: davinci: add ROM supported OOB layout 2025-01-15 19:07:19 +01:00
denali_dt.c mtd: rawnand: denali: Simplify with scoped for each OF child loop 2026-01-19 11:13:43 +01:00
denali_pci.c mtd: Consistently define pci_device_ids 2026-05-27 11:11:04 +02:00
denali.c mtd: rawnand: Use the new ECC engine type enumeration 2020-09-28 15:59:42 +02:00
denali.h mtd: rawnand: denali: Annotate struct denali_chip with __counted_by 2023-09-22 16:33:26 +02:00
diskonchip.c treewide: Update email address 2026-01-11 06:09:11 -10:00
fsl_elbc_nand.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
fsl_ifc_nand.c mtd: rawnand: fsl_ifc: return errors for failed page reads 2026-07-03 15:46:05 +02:00
fsl_upm.c mtd: Switch back to struct platform_driver::remove() 2024-10-21 11:58:07 +02:00
fsmc_nand.c mtd: rawnand: fsmc: Default to autodetect buswidth 2025-09-18 10:32:02 +02:00
gpio.c mtd: Switch back to struct platform_driver::remove() 2024-10-21 11:58:07 +02:00
hisi504_nand.c mtd: Switch back to struct platform_driver::remove() 2024-10-21 11:58:07 +02:00
intel-nand-controller.c MTD device changes: Aside from the platform_driver::remove() switch, two 2024-11-22 17:06:59 -08:00
internals.h mtd: rawnand: remove 'nand_exit_status_op()' prototype 2023-09-11 17:49:58 +02:00
Kconfig mtd: rawnand: ndfc: add CONFIG_OF dependency 2026-06-29 16:41:21 +02:00
loongson-nand-controller.c mtd: rawnand: loongson: Add Loongson-2K1000 NAND controller support 2025-09-10 10:56:09 +02:00
lpc32xx_mlc.c mtd: rawnand: lpc32xx_mlc: fail DMA transfers on timeout 2026-07-03 15:45:49 +02:00
lpc32xx_slc.c mtd: rawnand: lpc32xx_slc: fail DMA transfer on completion timeout 2026-07-03 15:45:55 +02:00
Makefile mtd: rawnand: loongson1: Rename the prefix from ls1x to loongson 2025-09-10 10:56:09 +02:00
marvell_nand.c Revert "mtd: rawnand: marvell: fix layouts" 2025-10-28 17:04:34 +01:00
meson_nand.c mtd: Switch back to struct platform_driver::remove() 2024-10-21 11:58:07 +02:00
mpc5121_nfc.c mtd: mpc5121_nfc: use platform for irq and ioremap 2026-07-17 17:49:31 +02:00
mtk_nand.c mtd: Switch back to struct platform_driver::remove() 2024-10-21 11:58:07 +02:00
mxc_nand.c mtd: rawnand: mxc: set chip->of_node to nand@0 child node if present 2026-03-11 16:34:22 +01:00
mxic_nand.c mtd: Switch back to struct platform_driver::remove() 2024-10-21 11:58:07 +02:00
nand_amd.c
nand_base.c mtd: rawnand: Pause continuous reads at block boundaries 2026-05-27 11:10:08 +02:00
nand_bbt.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
nand_esmt.c mtd: rawnand: Use nanddev_get/set_ecc_requirements() when relevant 2020-09-28 15:59:48 +02:00
nand_hynix.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
nand_ids.c mtd: rawnand: add Toshiba TC58NVG1S3H 2026-07-17 17:48:14 +02:00
nand_jedec.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
nand_legacy.c treewide: Update email address 2026-01-11 06:09:11 -10:00
nand_macronix.c mtd: rawnand: Correct multiple typos in comments 2024-10-21 11:24:26 +02:00
nand_micron.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
nand_onfi.c mtd: rawnand: validate ONFI extended parameter page sections 2026-08-07 15:59:22 +02:00
nand_samsung.c mtd: rawnand: Use nanddev_get/set_ecc_requirements() when relevant 2020-09-28 15:59:48 +02:00
nand_sandisk.c mtd: rawnand: add basic sandisk manufacturer ops 2023-06-19 10:20:55 +02:00
nand_timings.c mtd: rawnand: Add a helper to find the closest ONFI NV-DDR mode 2021-05-26 10:43:59 +02:00
nand_toshiba.c mtd: rawnand: add Toshiba TC58NVG1S3H 2026-07-17 17:48:14 +02:00
nandsim.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ndfc.c mtd: rawnand: ndfc: fix gcc uninitialized var 2026-06-29 16:38:38 +02:00
nuvoton-ma35d1-nand-controller.c mtd: rawnand: nuvoton: Fix an error handling path in ma35_nand_chips_init() 2025-08-28 14:23:05 +02:00
omap_elm.c mtd: Switch back to struct platform_driver::remove() 2024-10-21 11:58:07 +02:00
omap2.c mtd: nand-omap2: Move omap_nand_ids[] to raw nand driver 2026-07-17 17:48:25 +02:00
orion_nand.c mtd: Switch back to struct platform_driver::remove() 2024-10-21 11:58:07 +02:00
pasemi_nand.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
pl35x-nand-controller.c mtd: rawnand: pl353: Fix debug prints 2026-06-29 16:47:22 +02:00
plat_nand.c MIPS/mtd: Handle READY GPIO in generic NAND platform data 2026-04-13 15:41:56 +02:00
qcom_nandc.c mtd: rawnand: qcom: Add MDM9607 compatible 2026-07-17 17:47:42 +02:00
r852.c mtd: Consistently define pci_device_ids 2026-05-27 11:11:04 +02:00
r852.h mtd: rawnand: r852: Move the ECC initialization to ->attach_chip() 2020-11-20 12:30:53 +01:00
renesas-nand-controller.c mtd: rawnand: renesas: Handle devm_pm_runtime_enable() errors 2025-11-28 09:11:59 +01:00
rockchip-nand-controller.c mtd: rawnand: rockchip: drop unused module alias 2025-09-29 18:02:31 +02:00
sh_flctl.c mtd: Switch back to struct platform_driver::remove() 2024-10-21 11:58:07 +02:00
sharpsl.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
sm_common.c mtd: rawnand: Correct multiple typos in comments 2024-10-21 11:24:26 +02:00
sm_common.h
socrates_nand.c mtd: Switch back to struct platform_driver::remove() 2024-10-21 11:58:07 +02:00
stm32_fmc2_nand.c MTD core: 2025-10-04 15:50:37 -07:00
sunxi_nand.c mtd: rawnand: sunxi: fix H6/H616 controller timings 2026-08-10 16:24:26 +02:00
technologic-nand-controller.c mtd: Switch back to struct platform_driver::remove() 2024-10-21 11:58:07 +02:00
tegra_nand.c mtd: Switch back to struct platform_driver::remove() 2024-10-21 11:58:07 +02:00
txx9ndfmc.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
vf610_nfc.c mtd: rawnand: vf610_nfc: fix false bitflips on reads of erased pages 2026-09-04 20:32:21 +02:00
xway_nand.c mtd: Switch back to struct platform_driver::remove() 2024-10-21 11:58:07 +02:00