diff options
| author | Dinh Nguyen <dinguyen@kernel.org> | 2026-09-11 07:06:25 -0500 |
|---|---|---|
| committer | Borislav Petkov (AMD) <bp@alien8.de> | 2026-09-25 17:55:17 -0700 |
| commit | b62a264163ca51bee04785c581344751812395df (patch) | |
| tree | 789828f8e09c9a0ffa17d24dd70da6c8eb5221e3 /scripts/module-common.c | |
| parent | 19a4f1a6ed00286d70229f4fd5f690cc2fb033dc (diff) | |
| download | linux-stable-b62a264163ca51bee04785c581344751812395df.tar.gz linux-stable-b62a264163ca51bee04785c581344751812395df.zip | |
EDAC/altera: Drop __init from ECC setup paths for re-probe safety
Sashiko reports:
"Does suppressing sysfs unbinding fully prevent the execution of freed __init
memory? If altr_sysmgr_regmap_lookup_by_phandle() returns -EPROBE_DEFER, the
probe is deferred until after __init memory is freed."
The a10 EDAC .setup callbacks (sdmmc, ethernet, nand, dma, usb, qspi) and
their helpers (altr_init_a10_ecc_device_type, altr_init_a10_ecc_block) were
marked __init. These run from the probe path, which may execute after init
memory is freed -- e.g. a probe deferred via -EPROBE_DEFER that only succeeds
once a late/module dependency appears, or a manual unbind/rebind. Calling
__init code then dereferences freed memory. Remove __init so these functions
remain valid at runtime.
Fixes: 788586efd116 ("EDAC/altera: Initialize peripheral FIFOs in probe()")
Assisted-by: LLM
Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Cc: stable@vger.kernel.org # 6.18+
Link: https://patch.msgid.link/20260911120627.2634225-3-dinguyen@kernel.org
Diffstat (limited to 'scripts/module-common.c')
0 files changed, 0 insertions, 0 deletions
