In the Linux kernel, the following vulnerability has been resolved:
drm/amdgpu: fix aperture mapping leak
amdgpupciremove() calls drmdevunplug() before invoking the driver fini routines. This causes drmdeventer() in amdgputtmfini() to always return false, so iounmap(aperbasekaddr) never runs on normal driver unload, leaving an orphaned entry in the x86 PAT interval tree.
On connectedtocpu hardware, the aperture is mapped write-back (WB) via ioremapcache(). On reload, IP discovery calls memremap(..., MEMREMAPWC) over the same range. The WC vs WB conflict causes:
ioremap error for 0x..., requested 0x1, got 0x0 amdgpu: discovery failed: -2
Fix by switching to devres-managed mappings so cleanup is guaranteed regardless of drmdeventer() state:
connectedtocpu path: devmmemremap(MEMREMAPWB). For IORESOURCESYSTEMRAM ranges this takes the tryramremap() shortcut, returning __va(offset) from the existing kernel direct map. No new ioremap VA or PAT entry is created, so there is nothing to orphan.
dGPU path: devmioremapwc() registers iounmap() as a devres action, guaranteeing cleanup at device_del() time.
Also remove iounmap(aperbasekaddr) from amdgpudeviceunmap_mmio() since the mapping is now devres-owned.
v2: Remove redundant x86_64 guard (Lijo)
(cherry picked from commit d871e99879cb5fd1fa798b006b4888887e63a17a)
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/68xxx/CVE-2026-68102.json",
"cna_assigner": "Linux"
}