CVE-2026-98740: EDAC/altera: Drop __init from ECC setup paths for re-probe safety
EDAC/altera: Drop init from ECC setup paths for re-probe safety
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Configuration
Remove __init from the A10 EDAC setup callbacks (sdmmc, ethernet, nand, dma, usb, qspi) and their helpers altr_init_a10_ecc_device_type and altr_init_a10_ecc_block so they remain valid for deferred probe and runtime re-probe after __init memory is freed.
Linux kernel EDAC/altera A10 ECC setup paths __init annotations = removed
Event History
Frequently Asked Questions
Which systems are exposed to this issue?
Systems using the Linux kernel's Altera Arria 10 EDAC driver are exposed when one of its ECC device setup paths is probed after kernel init memory has been freed. The affected setup callbacks cover SDMMC, Ethernet, NAND, DMA, USB, and QSPI ECC devices.
What condition triggers the vulnerability?
The affected driver must execute its probe path late, after init memory has been released. This can occur when a required dependency causes -EPROBE_DEFER and the probe succeeds later, or when a device is manually unbound and rebound.
What is the impact of a late or repeated probe?
The probe path can call functions marked __init after their memory has been freed, resulting in dereferencing freed memory. This can cause kernel instability or failure during device probing.
Is preventing sysfs unbinding sufficient mitigation?
No. Suppressing sysfs unbinding does not address deferred probing, which can also cause the affected setup code to run after init memory has been freed.
What change resolves the issue?
The fix removes the __init annotation from the Arria 10 ECC setup callbacks and their helpers so that the code remains available for runtime probes and re-probes.