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---
CVSS Details
- CVSS 3.1 Base Score: 4.7
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linuxUpgrade linux-6.1 | May 15, 2025 | Apr 18, 2025 |
| Suse | — | Upgrade dtb-marvellUpgrade kernel-rt_debug-vdsoUpgrade kernel-source-azureUpgrade kernel-kvmsmall-develUpgrade dtb-xilinxUpgrade kernel-64kb-develUpgrade dtb-lgUpgrade kernel-azure-extraUpgrade dtb-exynosUpgrade kernel-devel-azureUpgrade ocfs2-kmp-azureUpgrade kselftests-kmp-64kbUpgrade ocfs2-kmp-64kbUpgrade dtb-alteraUpgrade dtb-amazonUpgrade kernel-syms-azureUpgrade cluster-md-kmp-azureUpgrade kernel-debug-develUpgrade kernel-zfcpdumpUpgrade reiserfs-kmp-64kbUpgrade dtb-amlogicUpgrade kernel-default-vdsoUpgrade kernel-rt_debug-develUpgrade kernel-rt_debugUpgrade reiserfs-kmp-defaultUpgrade kernel-obs-qaUpgrade dlm-kmp-64kbUpgrade kernel-kvmsmallUpgrade kernel-default-livepatchUpgrade kernel-develUpgrade dtb-amdUpgrade ocfs2-kmp-rtUpgrade kernel-symsUpgrade dtb-apmUpgrade kernel-64kb-optionalUpgrade kernel-sourceUpgrade kernel-debugUpgrade kernel-syms-rtUpgrade dtb-socionextUpgrade kernel-azure-optionalUpgrade dtb-broadcomUpgrade dtb-appleUpgrade gfs2-kmp-rtUpgrade kernel-64kbUpgrade kernel-devel-rtUpgrade dtb-hisiliconUpgrade dtb-renesasUpgrade reiserfs-kmp-rtUpgrade dtb-freescaleUpgrade cluster-md-kmp-defaultUpgrade gfs2-kmp-64kbUpgrade kernel-docs-htmlUpgrade kernel-default-develUpgrade kernel-default-extraUpgrade kernel-macrosUpgrade gfs2-kmp-azureUpgrade cluster-md-kmp-rtUpgrade reiserfs-kmp-azureUpgrade kselftests-kmp-azureUpgrade kernel-default-optionalUpgrade dtb-rockchipUpgrade dtb-qcomUpgrade kernel-azureUpgrade dtb-allwinnerUpgrade dlm-kmp-rtUpgrade kselftests-kmp-rtUpgrade kernel-source-rtUpgrade kselftests-kmp-defaultUpgrade dlm-kmp-azureUpgrade cluster-md-kmp-64kbUpgrade kernel-rt-vdsoUpgrade kernel-kvmsmall-vdsoUpgrade kernel-docsUpgrade kernel-default-baseUpgrade kernel-64kb-extraUpgrade dtb-mediatekUpgrade dtb-armUpgrade kernel-azure-vdsoUpgrade kernel-rt-extraUpgrade dlm-kmp-defaultUpgrade kernel-source-vanillaUpgrade kernel-rt-livepatch-develUpgrade kernel-default-base-rebuildUpgrade kernel-obs-buildUpgrade kernel-defaultUpgrade kernel-rt-optionalUpgrade dtb-nvidiaUpgrade ocfs2-kmp-defaultUpgrade kernel-rt-develUpgrade dtb-caviumUpgrade kernel-azure-develUpgrade kernel-default-livepatch-develUpgrade kernel-debug-vdsoUpgrade dtb-sprdUpgrade gfs2-kmp-defaultUpgrade kernel-rt | Dec 5, 2025 | Jun 16, 2025 |
| Ubuntu | — | Upgrade linux-image-6.14.0-1004-realtimeUpgrade linux-image-6.8.0-1047-gcp-fipsUpgrade linux-image-aws-fips-6.8Upgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-oem-22.04cUpgrade linux-image-6.8.0-1043-gkeUpgrade linux-image-virtualUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.8.0-1030-gkeopUpgrade linux-image-raspi-realtimeUpgrade linux-image-aws-64k-6.8Upgrade linux-image-generic-6.8Upgrade linux-image-6.8.0-1046-nvidia-lowlatency-64kUpgrade linux-image-gkeop-6.8Upgrade linux-image-nvidia-64kUpgrade linux-image-6.8.0-1046-nvidia-64kUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-oem-22.04bUpgrade linux-image-oracle-6.8Upgrade linux-image-aws-6.8Upgrade linux-image-gkeUpgrade linux-image-gke-64k-6.8Upgrade linux-image-gcpUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-intel-iotgUpgrade linux-image-6.8.0-1047-raspiUpgrade linux-image-fips-6.8Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-ibm-6.8Upgrade linux-image-azure-fips-6.8Upgrade linux-image-kvmUpgrade linux-image-generic-64kUpgrade linux-image-aws-64kUpgrade linux-image-6.14.0-1007-oracleUpgrade linux-image-realtime-hwe-22.04Upgrade linux-image-6.8.0-100-fipsUpgrade linux-image-oracle-64kUpgrade linux-image-6.8.0-1043-oracleUpgrade linux-image-6.14.0-1007-azure-fdeUpgrade linux-image-6.14.0-1007-azureUpgrade linux-image-6.14.0-1007-aws-64kUpgrade linux-image-genericUpgrade linux-image-gke-6.8Upgrade linux-image-ibm-classicUpgrade linux-image-aws-lts-24.04Upgrade linux-image-ibmUpgrade linux-image-6.8.0-1046-azure-fipsUpgrade linux-image-6.8.0-1046-aws-fipsUpgrade linux-image-azure-lts-24.04Upgrade linux-image-6.8.0-100-lowlatency-64kUpgrade linux-image-gcp-fips-6.8Upgrade linux-image-xilinxUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-gkeopUpgrade linux-image-xilinx-6.8Upgrade linux-image-6.8.0-1046-awsUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-azure-6.8Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-oem-22.04Upgrade linux-image-oracle-64k-6.8Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-oem-22.04dUpgrade linux-image-gcp-6.8Upgrade linux-image-6.8.0-1046-azureUpgrade linux-image-6.8.0-1043-oracle-64kUpgrade linux-image-awsUpgrade linux-image-6.14.0-22-genericUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-raspiUpgrade linux-image-gcp-64kUpgrade linux-image-nvidiaUpgrade linux-image-raspi-6.8Upgrade linux-image-6.8.0-100-genericUpgrade linux-image-6.14.0-1008-gcpUpgrade linux-image-6.8.0-100-generic-64kUpgrade linux-image-6.8.0-2037-raspi-realtimeUpgrade linux-image-azure-fdeUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-lowlatency-64kUpgrade linux-image-realtime-6.8.1Upgrade linux-image-6.8.0-1046-nvidiaUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-6.8.0-1044-ibmUpgrade linux-image-6.8.0-1046-aws-64kUpgrade linux-image-6.14.0-22-generic-64kUpgrade linux-image-oracleUpgrade linux-image-6.8.0-1051-azureUpgrade linux-image-6.8.0-1047-gcpUpgrade linux-image-6.14.0-1007-awsUpgrade linux-image-lowlatency-6.8Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-generic-lpaeUpgrade linux-image-raspi-realtime-6.8Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-fipsUpgrade linux-image-virtual-6.8Upgrade linux-image-azureUpgrade linux-image-generic-64k-6.8Upgrade linux-image-gke-64kUpgrade linux-image-6.8.0-1043-gke-64kUpgrade linux-image-6.14.0-1007-raspiUpgrade linux-image-6.14.0-1007-oracle-64kUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-6.8.0-1047-gcp-64kUpgrade linux-image-gcp-fipsUpgrade linux-image-oem-22.04aUpgrade linux-image-6.14.0-1008-gcp-64kUpgrade linux-image-realtimeUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.1-1041-realtimeUpgrade linux-image-6.8.0-1023-xilinxUpgrade linux-image-6.8.0-1046-nvidia-lowlatencyUpgrade linux-image-aws-fipsUpgrade linux-image-azure-fipsUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-xilinx-zynqmpUpgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-100-lowlatencyUpgrade linux-image-nvidia-6.8 | Jun 26, 2025 | Apr 18, 2025 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | May 27, 2026 | Apr 18, 2025 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub