drm/amdgpu/ras: add ras_suspend callback and use it for cp_ecc_error_irq
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.160, 6.12.114, 6.18.53
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu/ras: add ras_suspend callback and use it for cp_ecc_error_irq cp_ecc_error_irq is acquired in amdgpu_gfx_ras_late_init() but released in gfx_v9_0_hw_fini(), so the put site has to query amdgpu_irq_enabled() because the get is skipped on SR-IOV VF. ras_late_init / ras_fini have no suspend counterpart, so move the put to amdgpu_gfx_ras_suspend() / amdgpu_gfx_ras_fini() and add a matching ras_suspend callback that is invoked from amdgpu_ras_suspend() before disable_all_features(). The get and put now sit in the same place and check the same condition (not VF, funcs registered), no refcount querying needed. An active flag gates ras_fini so the suspend-then-unload-without-resume path falls into amdgpu_ras_block_late_fini_default() instead of double-releasing what ras_suspend already cleaned up. Drop the cp_ecc_error_irq put from gfx_v9_0_hw_fini(). gfx_v8_0 manages cp_ecc_error_irq locally and is unaffected; no other GFX generation has this IRQ.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 760a1d55344d823287850466db893ed77e948803 · fixed in c1f2f34d681a0b354e1218b83245d1f2d2139a8d; From 760a1d55344d823287850466db893ed77e948803 · fixed in 5b761927dbb170df4716d9c0ef85e178a1856e64; From 760a1d55344d823287850466db893ed77e948803 · fixed in 001824103f2fe6ffd2380afddf81f43b446035b2; From 760a1d55344d823287850466db893ed77e948803 · fixed in e3829992dd9fa0a82511af4f01733fc854cd15a5
- Linux Linux
5.2
- KernelLinux
From 5.2.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.114; From 6.13.0 · fixed in 6.18.53