CVE-2026-80903: drm/xe/oa: Fix sync entry leak on OA config emit failure
In the Linux kernel, the following vulnerability has been resolved:
drm/xe/oa: Fix sync entry leak on OA config emit failure
xeoaemitoaconfig() releases the sync entries and the syncs array only on its success path. When it fails before the point of no return (fence allocation, config buffer allocation or batch submission), it returns without touching stream->syncs.
The stream open path handles such failures in the caller, but xeoaconfiglocked() propagates the error without any cleanup, so the syncs array and the fence references held by the parsed entries are leaked. The next config ioctl overwrites stream->syncs, making the memory unreachable for good.
Clean up the parsed syncs when xeoaemitoaconfig() fails, matching the cleanup done by the stream open error path.
(cherry picked from commit 8af97b3da2cfce04e6b457c6eb17ed3c1daf912b)
Affected Software
Event History
Frequently Asked Questions
What condition triggers the resource leak?
The leak occurs when xe_oa_emit_oa_config() fails before its point of no return, such as during fence allocation, configuration-buffer allocation, or batch submission. The failure is propagated from xe_oa_config_locked() without cleaning up the parsed synchronization entries.
What happens after a failed configuration request?
The stream's syncs array and fence references held by its parsed entries remain allocated. A subsequent configuration ioctl can overwrite stream->syncs, leaving the previously allocated memory unreachable.