CVE-2026-90239: media: amd: isp4: release partial allocations in isp4if_alloc_fw_gpumem()
In the Linux kernel, the following vulnerability has been resolved:
media: amd: isp4: release partial allocations in isp4ifallocfwgpumem()
isp4ifallocfwgpumem() allocates several GPU memory pools in sequence. If one of them fails, it jumps to errornomemory and returns -ENOMEM without releasing the pools that were already allocated, leaking them.
Release the already-allocated pools before returning. isp4ifgpumemfree() is a no-op on pools that were not allocated, so calling isp4ifdeallocfwgpumem() here safely frees exactly the pools that succeeded.
isp4ifgpumemfree() previously logged an error for a NULL entry, which is a normal case during partial-allocation cleanup, so make it silent.
Affected Software
Event History
Frequently Asked Questions
Under what condition does the leak occur?
It occurs when isp4if_alloc_fw_gpumem() has successfully allocated one or more GPU memory pools and a later pool allocation fails. The function then returns -ENOMEM without releasing the pools allocated earlier.
What is the operational impact of triggering the issue?
Previously allocated GPU memory pools remain allocated after the failed allocation sequence, causing a memory-resource leak. Repeated failed allocation attempts could accumulate unreleased GPU memory.
Is partial-allocation cleanup safe when some pools were never allocated?
Yes. isp4if_dealloc_fw_gpumem() can be called during partial-allocation cleanup because isp4if_gpu_mem_free() is a no-op for pools that were not allocated. The related change also makes NULL entries silent rather than logging an error.