---
id: CVE-2026-98740
title: 'EDAC/altera: Drop __init from ECC setup paths for re-probe safety'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  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
  memor…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 788586efd116d6d7d05985881eda503333e702b4 <
    9846b85c2eb8b749c3f14bdcc31b1070f6aabba8
  - >-
    Linux >= 788586efd116d6d7d05985881eda503333e702b4 <
    4ec26cb7984740941892ad21fa974963c198bfaa
  - >-
    Linux >= 788586efd116d6d7d05985881eda503333e702b4 <
    b62a264163ca51bee04785c581344751812395df
  - Linux 5.2
published: '2026-10-18'
updated: '2026-10-18'
sourceUpdated: '2026-10-18T15:47:24.602Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-98740'
references:
  - url: 'https://git.kernel.org/stable/c/9846b85c2eb8b749c3f14bdcc31b1070f6aabba8'
  - url: 'https://git.kernel.org/stable/c/4ec26cb7984740941892ad21fa974963c198bfaa'
  - url: 'https://git.kernel.org/stable/c/b62a264163ca51bee04785c581344751812395df'
tags:
  - cve.org
ingestedAt: '2026-10-18T16:47:32.503Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

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.

## Affected

- `Linux >= 788586efd116d6d7d05985881eda503333e702b4 < 9846b85c2eb8b749c3f14bdcc31b1070f6aabba8`
- `Linux >= 788586efd116d6d7d05985881eda503333e702b4 < 4ec26cb7984740941892ad21fa974963c198bfaa`
- `Linux >= 788586efd116d6d7d05985881eda503333e702b4 < b62a264163ca51bee04785c581344751812395df`
- `Linux 5.2`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
