CVE-2025-68203 (GCVE-0-2025-68203)
Vulnerability from cvelistv5 – Published: 2025-12-16 13:48 – Updated: 2025-12-16 13:48
VLAI?
Title
drm/amdgpu: fix lock warning in amdgpu_userq_fence_driver_process
Summary
In the Linux kernel, the following vulnerability has been resolved:
drm/amdgpu: fix lock warning in amdgpu_userq_fence_driver_process
Fix a potential deadlock caused by inconsistent spinlock usage
between interrupt and process contexts in the userq fence driver.
The issue occurs when amdgpu_userq_fence_driver_process() is called
from both:
- Interrupt context: gfx_v11_0_eop_irq() -> amdgpu_userq_fence_driver_process()
- Process context: amdgpu_eviction_fence_suspend_worker() ->
amdgpu_userq_fence_driver_force_completion() -> amdgpu_userq_fence_driver_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.310804] kworker/7:2/409 [HC0[0]:SC0[0]:HE1:SE1] takes:
[ 4039.310818] ffff9284e1bed000 (&fence_drv->fence_list_lock){?...}-{3:3},
[ 4039.310993] {IN-HARDIRQ-W} state was registered at:
[ 4039.311004] lock_acquire+0xc6/0x300
[ 4039.311018] _raw_spin_lock+0x39/0x80
[ 4039.311031] amdgpu_userq_fence_driver_process.part.0+0x30/0x180 [amdgpu]
[ 4039.311146] amdgpu_userq_fence_driver_process+0x17/0x30 [amdgpu]
[ 4039.311257] gfx_v11_0_eop_irq+0x132/0x170 [amdgpu]
Fix by using spin_lock_irqsave()/spin_unlock_irqrestore() to properly
manage interrupt state regardless of calling context.
(cherry picked from commit ded3ad780cf97a04927773c4600823b84f7f3cc2)
Severity ?
No CVSS data available.
Assigner
References
Impacted products
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "1ad70a06d7e91c378b346a3718c81abb50a74b74",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
},
{
"lessThan": "6623c5f9fd877868fba133b4ae4dab0052e82dad",
"status": "affected",
"version": "1da177e4c3f41524e886b7f1b8a0c1fc7321cac2",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/gpu/drm/amd/amdgpu/amdgpu_userq_fence.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThanOrEqual": "6.17.*",
"status": "unaffected",
"version": "6.17.9",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.18",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.17.9",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndrm/amdgpu: fix lock warning in amdgpu_userq_fence_driver_process\n\nFix a potential deadlock caused by inconsistent spinlock usage\nbetween interrupt and process contexts in the userq fence driver.\n\nThe issue occurs when amdgpu_userq_fence_driver_process() is called\nfrom both:\n- Interrupt context: gfx_v11_0_eop_irq() -\u003e amdgpu_userq_fence_driver_process()\n- Process context: amdgpu_eviction_fence_suspend_worker() -\u003e\n amdgpu_userq_fence_driver_force_completion() -\u003e amdgpu_userq_fence_driver_process()\n\nIn interrupt context, the spinlock was acquired without disabling\ninterrupts, leaving it in {IN-HARDIRQ-W} state. When the same lock\nis acquired in process context, the kernel detects inconsistent\nlocking since the process context acquisition would enable interrupts\nwhile holding a lock previously acquired in interrupt context.\n\nKernel log shows:\n[ 4039.310790] inconsistent {IN-HARDIRQ-W} -\u003e {HARDIRQ-ON-W} usage.\n[ 4039.310804] kworker/7:2/409 [HC0[0]:SC0[0]:HE1:SE1] takes:\n[ 4039.310818] ffff9284e1bed000 (\u0026fence_drv-\u003efence_list_lock){?...}-{3:3},\n[ 4039.310993] {IN-HARDIRQ-W} state was registered at:\n[ 4039.311004] lock_acquire+0xc6/0x300\n[ 4039.311018] _raw_spin_lock+0x39/0x80\n[ 4039.311031] amdgpu_userq_fence_driver_process.part.0+0x30/0x180 [amdgpu]\n[ 4039.311146] amdgpu_userq_fence_driver_process+0x17/0x30 [amdgpu]\n[ 4039.311257] gfx_v11_0_eop_irq+0x132/0x170 [amdgpu]\n\nFix by using spin_lock_irqsave()/spin_unlock_irqrestore() to properly\nmanage interrupt state regardless of calling context.\n\n(cherry picked from commit ded3ad780cf97a04927773c4600823b84f7f3cc2)"
}
],
"providerMetadata": {
"dateUpdated": "2025-12-16T13:48:31.102Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/1ad70a06d7e91c378b346a3718c81abb50a74b74"
},
{
"url": "https://git.kernel.org/stable/c/6623c5f9fd877868fba133b4ae4dab0052e82dad"
}
],
"title": "drm/amdgpu: fix lock warning in amdgpu_userq_fence_driver_process",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2025-68203",
"datePublished": "2025-12-16T13:48:31.102Z",
"dateReserved": "2025-12-16T13:41:40.255Z",
"dateUpdated": "2025-12-16T13:48:31.102Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"nvd": "{\"cve\":{\"id\":\"CVE-2025-68203\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-12-16T14:15:53.143\",\"lastModified\":\"2025-12-18T15:08:25.907\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\ndrm/amdgpu: fix lock warning in amdgpu_userq_fence_driver_process\\n\\nFix a potential deadlock caused by inconsistent spinlock usage\\nbetween interrupt and process contexts in the userq fence driver.\\n\\nThe issue occurs when amdgpu_userq_fence_driver_process() is called\\nfrom both:\\n- Interrupt context: gfx_v11_0_eop_irq() -\u003e amdgpu_userq_fence_driver_process()\\n- Process context: amdgpu_eviction_fence_suspend_worker() -\u003e\\n amdgpu_userq_fence_driver_force_completion() -\u003e amdgpu_userq_fence_driver_process()\\n\\nIn interrupt context, the spinlock was acquired without disabling\\ninterrupts, leaving it in {IN-HARDIRQ-W} state. When the same lock\\nis acquired in process context, the kernel detects inconsistent\\nlocking since the process context acquisition would enable interrupts\\nwhile holding a lock previously acquired in interrupt context.\\n\\nKernel log shows:\\n[ 4039.310790] inconsistent {IN-HARDIRQ-W} -\u003e {HARDIRQ-ON-W} usage.\\n[ 4039.310804] kworker/7:2/409 [HC0[0]:SC0[0]:HE1:SE1] takes:\\n[ 4039.310818] ffff9284e1bed000 (\u0026fence_drv-\u003efence_list_lock){?...}-{3:3},\\n[ 4039.310993] {IN-HARDIRQ-W} state was registered at:\\n[ 4039.311004] lock_acquire+0xc6/0x300\\n[ 4039.311018] _raw_spin_lock+0x39/0x80\\n[ 4039.311031] amdgpu_userq_fence_driver_process.part.0+0x30/0x180 [amdgpu]\\n[ 4039.311146] amdgpu_userq_fence_driver_process+0x17/0x30 [amdgpu]\\n[ 4039.311257] gfx_v11_0_eop_irq+0x132/0x170 [amdgpu]\\n\\nFix by using spin_lock_irqsave()/spin_unlock_irqrestore() to properly\\nmanage interrupt state regardless of calling context.\\n\\n(cherry picked from commit ded3ad780cf97a04927773c4600823b84f7f3cc2)\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/1ad70a06d7e91c378b346a3718c81abb50a74b74\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/6623c5f9fd877868fba133b4ae4dab0052e82dad\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
}
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…