In the Linux kernel, the following vulnerability has been resolved:
drm/amdgpu: fix lock warning in amdgpuuserqfencedriverprocess
Fix a potential deadlock caused by inconsistent spinlock usage between interrupt and process contexts in the userq fence driver.
The issue occurs when amdgpuuserqfencedriverprocess() is called from both: - Interrupt context: gfxv110eopirq() -> amdgpuuserqfencedriverprocess() - Process context: amdgpuevictionfencesuspendworker() -> amdgpuuserqfencedriverforcecompletion() -> amdgpuuserqfencedriver_process()
In interrupt context, the spinlock was acquired without disabling interrupts, leaving it in {IN-HARDIRQ-W} state. When the same lock is acquired in process context, the kernel detects inconsistent locking since the process context acquisition would enable interrupts while holding a lock previously acquired in interrupt context.
Kernel log shows: [ 4039.310790] inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage. [ 4039.310818] ffff9284e1bed000 (&fencedrv->fencelistlock){?...}-{3:3}, [ 4039.310993] {IN-HARDIRQ-W} state was registered at: [ 4039.311004] lockacquire+0xc6/0x300 [ 4039.311018] rawspinlock+0x39/0x80 [ 4039.311031] amdgpuuserqfencedriverprocess.part.0+0x30/0x180 [amdgpu] [ 4039.311146] amdgpuuserqfencedriverprocess+0x17/0x30 [amdgpu] [ 4039.311257] gfxv110eop_irq+0x132/0x170 [amdgpu]
Fix by using spinlockirqsave()/spinunlockirqrestore() to properly manage interrupt state regardless of calling context.
(cherry picked from commit ded3ad780cf97a04927773c4600823b84f7f3cc2)
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/68xxx/CVE-2025-68203.json",
"cna_assigner": "Linux"
}