Description
In the Linux kernel, the following vulnerability has been resolved:
drm/amdgpu: Replace Mutex with Spinlock for RLCG register access to avoid Priority Inversion in SRIOV
RLCG Register Access is a way for virtual functions to safely access GPU
registers in a virtualized environment., including TLB flushes and
register reads. When multiple threads or VFs try to access the same
registers simultaneously, it can lead to race conditions. By using the
RLCG interface, the driver can serialize access to the registers. This
means that only one thread can access the registers at a time,
preventing conflicts and ensuring that operations are performed
correctly. Additionally, when a low-priority task holds a mutex that a
high-priority task needs, ie., If a thread holding a spinlock tries to
acquire a mutex, it can lead to priority inversion. register access in
amdgpu_virt_rlcg_reg_rw especially in a fast code path is critical.
The call stack shows that the function amdgpu_virt_rlcg_reg_rw is being
called, which attempts to acquire the mutex. This function is invoked
from amdgpu_sriov_wreg, which in turn is called from
gmc_v11_0_flush_gpu_tlb.
The [ BUG: Invalid wait context ] indicates that a thread is trying to
acquire a mutex while it is in a context that does not allow it to sleep
(like holding a spinlock).
Fixes the below:
[ 253.013423] =============================
[ 253.013434] [ BUG: Invalid wait context ]
[ 253.013446] 6.12.0-amdstaging-drm-next-lol-050225 #14 Tainted: G U OE
[ 253.013464] -----------------------------
[ 253.013475] kworker/0:1/10 is trying to lock:
[ 253.013487] ffff9f30542e3cf8 (&adev->virt.rlcg_reg_lock){+.+.}-{3:3}, at: amdgpu_virt_rlcg_reg_rw+0xf6/0x330 [amdgpu]
[ 253.013815] other info that might help us debug this:
[ 253.013827] context-{4:4}
[ 253.013835] 3 locks held by kworker/0:1/10:
[ 253.013847] #0: ffff9f3040050f58 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x3f5/0x680
[ 253.013877] #1: ffffb789c008be40 ((work_completion)(&wfc.work)){+.+.}-{0:0}, at: process_one_work+0x1d6/0x680
[ 253.013905] #2: ffff9f3054281838 (&adev->gmc.invalidate_lock){+.+.}-{2:2}, at: gmc_v11_0_flush_gpu_tlb+0x198/0x4f0 [amdgpu]
[ 253.014154] stack backtrace:
[ 253.014164] CPU: 0 UID: 0 PID: 10 Comm: kworker/0:1 Tainted: G U OE 6.12.0-amdstaging-drm-next-lol-050225 #14
[ 253.014189] Tainted: [U]=USER, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
[ 253.014203] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS Hyper-V UEFI Release v4.1 11/18/2024
[ 253.014224] Workqueue: events work_for_cpu_fn
[ 253.014241] Call Trace:
[ 253.014250] <TASK>
[ 253.014260] dump_stack_lvl+0x9b/0xf0
[ 253.014275] dump_stack+0x10/0x20
[ 253.014287] __lock_acquire+0xa47/0x2810
[ 253.014303] ? srso_alias_return_thunk+0x5/0xfbef5
[ 253.014321] lock_acquire+0xd1/0x300
[ 253.014333] ? amdgpu_virt_rlcg_reg_rw+0xf6/0x330 [amdgpu]
[ 253.014562] ? __lock_acquire+0xa6b/0x2810
[ 253.014578] __mutex_lock+0x85/0xe20
[ 253.014591] ? amdgpu_virt_rlcg_reg_rw+0xf6/0x330 [amdgpu]
[ 253.014782] ? sched_clock_noinstr+0x9/0x10
[ 253.014795] ? srso_alias_return_thunk+0x5/0xfbef5
[ 253.014808] ? local_clock_noinstr+0xe/0xc0
[ 253.014822] ? amdgpu_virt_rlcg_reg_rw+0xf6/0x330 [amdgpu]
[ 253.015012] ? srso_alias_return_thunk+0x5/0xfbef5
[ 253.015029] mutex_lock_nested+0x1b/0x30
[ 253.015044] ? mutex_lock_nested+0x1b/0x30
[ 253.015057] amdgpu_virt_rlcg_reg_rw+0xf6/0x330 [amdgpu]
[ 253.015249] amdgpu_sriov_wreg+0xc5/0xd0 [amdgpu]
[ 253.015435] gmc_v11_0_flush_gpu_tlb+0x44b/0x4f0 [amdgpu]
[ 253.015667] gfx_v11_0_hw_init+0x499/0x29c0 [amdgpu]
[ 253.015901] ? __pfx_smu_v13_0_update_pcie_parameters+0x10/0x10 [amdgpu]
[ 253.016159] ? srso_alias_return_thunk+0x5/0xfbef5
[ 253.016173] ? smu_hw_init+0x18d/0x300 [amdgpu]
[ 253.016403] amdgpu_device_init+0x29ad/0x36a0 [amdgpu]
[ 253.016614] amdgpu_driver_load_kms+0x1a/0xc0 [amdgpu]
[ 253.0170
---truncated---
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| Linux | Linux | 6.1.105 – < 6.1.162, 6.6.46 – < 6.6.123, 6.10.5 – < 6.11, 6.11 | 6.1.162 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | linux | 6.16.3-1 | — |
| Debian 13 | linux | 6.12.41-1 | DSA-5975-1 |
| Debian 12 | linux | 6.1.162-1 | DSA-6127-1 |
| Debian 11 | linux-6.1 | 6.1.162-1~deb11u1 | DLA-4476-1 |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Nvidia-BlueField 24.04 LTS | linux-bluefield | 6.8.0-1016.20 | — |
| Ubuntu 25.10 | linux-azure-fde | No fix yet | — |
| Ubuntu 25.04 | linux | 6.14.0-22.22 | USN-7594-1 |
| Ubuntu 25.04 | linux-aws +3 | 6.14.0-1007.7 | USN-7594-3, USN-7594-2, USN-7594-1 |
| Ubuntu 25.04 | linux-gcp | 6.14.0-1008.8 | USN-7594-1 |
| Ubuntu 25.04 | linux-realtime | 6.14.0-1004.4 | USN-7594-1 |
| Ubuntu 24.04 LTS | linux | 6.8.0-100.100 | USN-8028-1 |
| Ubuntu 24.04 LTS | linux-aws +1 | 6.8.0-1046.49 | USN-8028-5 |
| Ubuntu 24.04 LTS | linux-azure | 6.8.0-1046.52 | USN-8074-1 |
| Ubuntu 24.04 LTS | linux-azure-fde | 6.8.0-1046.53 | — |
| Ubuntu 24.04 LTS | linux-azure-nvidia | 6.8.0-1039.42 | — |
| Ubuntu 24.04 LTS | linux-gcp | 6.8.0-1047.50 | USN-8031-3 |
| Ubuntu 24.04 LTS | linux-gke | 6.8.0-1043.48 | USN-8031-3 |
| Ubuntu 24.04 LTS | linux-gkeop | 6.8.0-1030.33 | USN-8028-5 |
| Ubuntu 24.04 LTS | linux-ibm | 6.8.0-1044.44 | USN-8028-8 |
| Ubuntu 24.04 LTS | linux-intel +10 | No fix yet | — |
| Ubuntu 24.04 LTS | linux-lowlatency | 6.8.0-100.100.1 | USN-8052-1 |
| Ubuntu 24.04 LTS | linux-nvidia-lowlatency | 6.8.0-1046.49.1 | USN-8028-7 |
| Ubuntu 24.04 LTS | linux-nvidia-tegra | 6.8.0-1020.20 | — |
| Ubuntu 24.04 LTS | linux-oracle | 6.8.0-1043.44 | USN-8028-5 |
| Ubuntu 24.04 LTS | linux-raspi | 6.8.0-1047.51 | USN-8028-1 |
| Ubuntu 24.04 LTS | linux-xilinx | 6.8.0-1023.24 | USN-8052-2 |
| Ubuntu 22.04 LTS | linux-aws-6.8 +1 | 6.8.0-1046.49~22.04.1 | USN-8028-5 |
| Ubuntu 22.04 LTS | linux-azure-6.8 | 6.8.0-1051.57~22.04.1 | USN-8126-1 |
| Ubuntu 22.04 LTS | linux-azure-fde-6.8 | 6.8.0-1046.53~22.04.1 | — |
| Ubuntu 22.04 LTS | linux-gcp-6.8 | 6.8.0-1047.50~22.04.2 | USN-8031-1 |
| Ubuntu 22.04 LTS | linux-hwe-6.8 +1 | 6.8.0-100.100~22.04.1 | USN-8028-6 |
| Ubuntu 22.04 LTS | linux-ibm-6.8 | 6.8.0-1044.44~22.04.1 | USN-8028-8 |
| Ubuntu 22.04 LTS | linux-lowlatency-hwe-6.8 | 6.8.0-100.100.1~22.04.1 | USN-8028-6 |
| Ubuntu 22.04 LTS | linux-oracle-6.8 | 6.8.0-1043.44~22.04.1 | USN-8028-5 |
| Ubuntu 22.04 LTS | linux-riscv +32 | No fix yet | — |
Show 6 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 20.04 LTS | linux-gke +28 | No fix yet | — |
| Ubuntu 18.04 LTS | linux-gcp +14 | No fix yet | — |
| Ubuntu 16.04 LTS | linux-hwe-edge | No fix yet | — |
| Ubuntu Pro Realtime 24.04 LTS | linux-raspi-realtime | 6.8.0-2037.38 | USN-8028-3 |
| Ubuntu Pro Realtime 24.04 LTS | linux-realtime | 6.8.1-1041.42 | USN-8028-3 |
| Ubuntu Pro Realtime 22.04 LTS | linux-realtime-6.8 | 6.8.1-1041.42~22.04.1 | USN-8028-2 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-aws-fips | 6.8.0-1046.49+fips1 | USN-8028-4 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-azure-fips | 6.8.0-1046.52+fips1 | USN-8074-2 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-fips | 6.8.0-100.100+fips1 | USN-8028-4 |
| Ubuntu Pro FIPS-updates 24.04 LTS | linux-gcp-fips | 6.8.0-1047.50+fips1 | USN-8031-2 |
SUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLES 15 SP7 | kernel-64kb +6 | 6.4.0-150700.53.6.1 | SUSE-SU-2025:02307-1 |
| SLES 15 SP7 | kernel-azure +2 | 6.4.0-150700.20.6.1 | SUSE-SU-2025:02254-1 |
| SLES 15 SP7 | kernel-default-base | 6.4.0-150700.53.6.1.150700.17.6.1 | SUSE-SU-2025:02307-1 |
| SLES 15 SP6 | kernel-64kb +6 | 6.4.0-150600.23.53.1 | SUSE-SU-2025:02000-1 |
| SLES 15 SP6 | kernel-azure +2 | 6.4.0-150600.8.40.1 | SUSE-SU-2025:01965-1 |
| SLES 15 SP6 | kernel-coco +3 | 6.4.0-15061.28.coco15sp6.1 | SUSE-SU-2025:02923-1 |
| SLES 15 SP6 | kernel-default-base | 6.4.0-150600.23.53.1.150600.12.24.1 | SUSE-SU-2025:02000-1 |
Show 6 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| SLE Micro 6.1 | kernel-default-base | 6.4.0-30.1.21.8 | SUSE-SU-2025:20419-1 |
| SLE Micro 6.1 | kernel-rt +1 | 6.4.0-33.1 | SUSE-SU-2025:20421-1 |
| SLE Micro 6.1 | kernel-source +2 | 6.4.0-30.1 | SUSE-SU-2025:20419-1 |
| SLE Micro 6.0 | kernel-default-base | 6.4.0-30.1.21.8 | SUSE-SU-2025:20408-1 |
| SLE Micro 6.0 | kernel-rt +1 | 6.4.0-33.1 | SUSE-SU-2025:20413-1 |
| SLE Micro 6.0 | kernel-source +2 | 6.4.0-30.1 | SUSE-SU-2025:20408-1 |
| SLE Live Patching 15 SP7 | kernel-default | 6.4.0-150700.53.6.1 | SUSE-SU-2025:02307-1 |
| SLE Live Patching 15 SP7 | kernel-livepatch-SLE15-SP7-RT_Update_2 | 1-150700.1.5.1 | SUSE-SU-2025:02333-1 |
| SLE Live Patching 15 SP7 | kernel-livepatch-SLE15-SP7_Update_2 | 1-150700.15.3.1 | SUSE-SU-2025:02307-1 |
| SLE Live Patching 15 SP6 | kernel-default | 6.4.0-150600.23.53.1 | SUSE-SU-2025:02000-1 |
| SLE Live Patching 15 SP6 | kernel-livepatch-SLE15-SP6-RT_Update_11 | 1-150600.1.3.2 | SUSE-SU-2025:01964-1 |
| SLE Live Patching 15 SP6 | kernel-livepatch-SLE15-SP6_Update_12 | 1-150600.13.3.1 | SUSE-SU-2025:02000-1 |
| SUSE Real Time Module 15 SP7 | kernel-rt +2 | 6.4.0-150700.7.8.1 | SUSE-SU-2025:02333-1 |
| SUSE Real Time Module 15 SP6 | kernel-rt +3 | 6.4.0-150600.10.39.1 | SUSE-SU-2025:01964-1 |
openSUSE
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| openSUSE Leap 15.6 | dtb-aarch64 +10 | 6.4.0-150600.23.53.1 | SUSE-SU-2025:02000-1 |
| openSUSE Leap 15.6 | kernel-azure +2 | 6.4.0-150600.8.40.1 | SUSE-SU-2025:01965-1 |
| openSUSE Leap 15.6 | kernel-default-base | 6.4.0-150600.23.53.1.150600.12.24.1 | SUSE-SU-2025:02000-1 |
| openSUSE Leap 15.6 | kernel-rt +3 | 6.4.0-150600.10.39.1 | SUSE-SU-2025:01964-1 |
Azure Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Azure Linux 3 | kernel | 6.6.126.1-1 | — |
Oracle Linux
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Oracle Linux 9 | kernel-uek +34 | 6.12.0-103.40.4.1.el10uek | ELSA-2025-20551 |
Advisories 35
- WID-SEC-2025-0861 Linux Kernel: Mehrere Schwachstellen BSI CERT-Bund (WID) · Nov 12, 2026
- USN-8028-5 linux-aws, linux-aws-6.8, linux-gkeop, linux-nvidia, linux-nvidia-6.8, linux-oracle, linux-oracle-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8126-1 linux-azure-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-8 linux-ibm, linux-ibm-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-6 linux-hwe-6.8, linux-lowlatency-hwe-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8052-1 linux-lowlatency vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8052-2 linux-xilinx vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8074-1 linux-azure vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8074-2 linux-azure-fips vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8031-3 linux-gcp, linux-gke vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-1 linux, linux-raspi vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-4 linux-aws-fips, linux-fips vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-3 linux-realtime, linux-raspi-realtime vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-2 linux-realtime-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8028-7 linux-nvidia-lowlatency vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8031-2 linux-gcp-fips vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- USN-8031-1 linux-gcp-6.8 vulnerabilities Ubuntu Security Notices (USN) · Nov 3, 2026
- SUSE-SU-2025:20421-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:20413-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:20419-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:20408-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:02254-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:02000-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:02333-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- SUSE-SU-2025:02307-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Mar 23, 2026
- DSA-6127-1 linux - security update Debian Security (DSA / DLA) · Mar 9, 2026
- DSA-5975-1 linux - security update Debian Security (DSA / DLA) · Mar 9, 2026
- DLA-4476-1 linux-6.1 - security update Debian Security (DSA / DLA) · Feb 10, 2026
- SUSE-SU-2025:01964-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- USN-7594-2 linux-azure vulnerabilities Ubuntu Security Notices (USN) · Feb 4, 2026
- USN-7594-1 linux, linux-gcp, linux-raspi, linux-realtime vulnerabilities Ubuntu Security Notices (USN) · Feb 4, 2026
- SUSE-SU-2025:02923-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- USN-7594-3 linux-aws, linux-oracle vulnerabilities Ubuntu Security Notices (USN) · Feb 4, 2026
- SUSE-SU-2025:01965-1 Security update for the Linux Kernel SUSE / openSUSE Security Updates · Feb 4, 2026
- ELSA-2025-20551 Important: Unbreakable Enterprise kernel security update (Oracle Linux 9) Oracle Linux Security Advisories (ELSA) · Sep 8, 2025
References
- https://git.kernel.org/stable/c/dd450b513718dfeb4c637c9335d51a55ebcd4320
- https://git.kernel.org/stable/c/d1bda2ab0cf956a16dd369a473a6c43dfbed5855
- https://git.kernel.org/stable/c/07ed75bfa7ede8bfcfa303fd6efc85db1c8684c7
- https://git.kernel.org/stable/c/1c0378830e42c98acd69e0289882c8637d92f285
- https://git.kernel.org/stable/c/5c1741a0c176ae11675a64cb7f2dd21d72db6b91
- https://git.kernel.org/stable/c/dc0297f3198bd60108ccbd167ee5d9fa4af31ed0