UBUNTU-CVE-2026-97900: Medium severity ubuntu/linux-hwe-edge vulnerability
In the Linux kernel, the following vulnerability has been resolved: drm/drmexec: fix up contended obj when numobjects is 0 drmexecpreparearray() silently returns success without calling drmexeclockcontended() when numobjects is zero. This breaks the invariant upheld by drmexeclockobj(), where every entry point into the locking sequence must first attempt to lock any previously contended object before proceeding. Drivers that chain multiple drmexecpreparearray() calls per drmexecuntilalllocked() iteration (e.g. amdgpu's userq signal/wait ioctls, which prepare separate read and write BO arrays) can pass an empty array for one of the two calls. If contention is hit while preparing the non-empty array, exec->contended is set and the loop retries; on retry, the empty-array call preceding it is a no-op that never clears exec->contended, so drmexecretryoncontention() immediately jumps back to the top of the loop without ever reaching the call that would resolve the contention. This spins forever. Fix it by having drmexecpreparearray() call drmexeclockcontended() directly when numobjects is zero, so a pending contended object dont loop infinitely.