In the Linux kernel, the following vulnerability has been resolved:
dmaengine: idxd: Convert spinlock to mutex to lock evl workqueue
drain_workqueue() cannot be called safely in a spinlocked context due to possible task rescheduling. In the multi-task scenario, calling queue_work() while drain_workqueue() will lead to a Call Trace as pushing a work on a draining workqueue is not permitted in spinlocked context. Call Trace: <TASK> ? __warn+0x7d/0x140 ? __queue_work+0x2b2/0x440 ? report_bug+0x1f8/0x200 ? handle_bug+0x3c/0x70 ? exc_invalid_op+0x18/0x70 ? asm_exc_invalid_op+0x1a/0x20 ? __queue_work+0x2b2/0x440 queue_work_on+0x28/0x30 idxd_misc_thread+0x303/0x5a0 [idxd] ? __schedule+0x369/0xb40 ? __pfx_irq_thread_fn+0x10/0x10 ? irq_thread+0xbc/0x1b0 irq_thread_fn+0x21/0x70 irq_thread+0x102/0x1b0 ? preempt_count_add+0x74/0xa0 ? __pfx_irq_thread_dtor+0x10/0x10 ? __pfx_irq_thread+0x10/0x10 kthread+0x103/0x140 ? __pfx_kthread+0x10/0x10 ret_from_fork+0x31/0x50 ? __pfx_kthread+0x10/0x10 ret_from_fork_asm+0x1b/0x30 </TASK>
The current implementation uses a spinlock to protect event log workqueue and will lead to the Call Trace due to potential task rescheduling.
To address the locking issue, convert the spinlock to mutex, allowing the drain_workqueue() to be called in a safe mutex-locked context.
This change ensures proper synchronization when accessing the event log workqueue, preventing potential Call Trace and improving the overall robustness of the code.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jul 27, 2026 | Jul 27, 2026 |
| Oracle_linux | — | Upgrade kernel-uek | Oct 16, 2024 | May 20, 2024 |
| Redhat_linux | — | Upgrade kernelNo solution existsUpgrade kernel-rt | Dec 5, 2024 | May 20, 2024 |
| Suse | — | Upgrade dtb-amdUpgrade dtb-caviumUpgrade kernel-azure-develUpgrade dtb-freescaleUpgrade kernel-64kbUpgrade kernel-rt-vdsoUpgrade reiserfs-kmp-64kbUpgrade dlm-kmp-64kbUpgrade kernel-zfcpdumpUpgrade dtb-allwinnerUpgrade kernel-rt_debug-develUpgrade kernel-default-vdsoUpgrade dtb-marvellUpgrade dtb-amazonUpgrade kernel-devel-azureUpgrade dtb-appleUpgrade dtb-hisiliconUpgrade kernel-sourceUpgrade ocfs2-kmp-defaultUpgrade gfs2-kmp-azureUpgrade kernel-azure-livepatch-develUpgrade kernel-kvmsmallUpgrade kernel-default-develUpgrade ocfs2-kmp-rtUpgrade cluster-md-kmp-rtUpgrade kernel-kvmsmall-develUpgrade kernel-64kb-livepatch-develUpgrade dtb-broadcomUpgrade kernel-default-livepatchUpgrade kernel-source-vanillaUpgrade dtb-lgUpgrade dtb-qcomUpgrade kernel-64kb-optionalUpgrade kernel-kvmsmall-vdsoUpgrade gfs2-kmp-64kbUpgrade cluster-md-kmp-azureUpgrade kernel-rt-optionalUpgrade kernel-debug-develUpgrade kernel-symsUpgrade kernel-develUpgrade dtb-alteraUpgrade kernel-docs-htmlUpgrade kernel-azure-extraUpgrade ocfs2-kmp-64kbUpgrade dtb-exynosUpgrade kselftests-kmp-azureUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-syms-azureUpgrade kernel-default-optionalUpgrade gfs2-kmp-rtUpgrade kernel-debugUpgrade kernel-source-azureUpgrade kselftests-kmp-64kbUpgrade kernel-source-rtUpgrade kernel-azureUpgrade kernel-azure-optionalUpgrade kernel-rtUpgrade kernel-syms-rtUpgrade reiserfs-kmp-azureUpgrade dtb-sprdUpgrade dlm-kmp-rtUpgrade dtb-nvidiaUpgrade kselftests-kmp-defaultUpgrade kernel-azure-vdsoUpgrade kernel-rt-develUpgrade kselftests-kmp-rtUpgrade kernel-default-base-rebuildUpgrade kernel-64kb-develUpgrade kernel-default-livepatch-develUpgrade gfs2-kmp-defaultUpgrade kernel-obs-qaUpgrade reiserfs-kmp-rtUpgrade kernel-debug-livepatch-develUpgrade kernel-64kb-extraUpgrade dtb-mediatekUpgrade dtb-apmUpgrade kernel-rt_debug-vdsoUpgrade kernel-default-extraUpgrade dlm-kmp-defaultUpgrade kernel-rt_debugUpgrade dtb-rockchipUpgrade reiserfs-kmp-defaultUpgrade ocfs2-kmp-azureUpgrade kernel-default-baseUpgrade dtb-amlogicUpgrade dtb-socionextUpgrade dtb-armUpgrade dtb-xilinxUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-defaultUpgrade kernel-docsUpgrade kernel-macrosUpgrade kernel-debug-vdsoUpgrade cluster-md-kmp-64kbUpgrade kernel-rt-extraUpgrade dlm-kmp-azureUpgrade kernel-rt-livepatch-develUpgrade kernel-obs-buildUpgrade cluster-md-kmp-defaultUpgrade dtb-renesasUpgrade kernel-devel-rt | Jun 24, 2024 | May 20, 2024 |
| Ubuntu | — | Upgrade linux-image-generic-hwe-24.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-6.8.0-1010-oracleUpgrade linux-image-oem-24.04aUpgrade linux-image-nvidia-64kUpgrade linux-image-6.8.0-1010-oemUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.8.0-1010-oracle-64kUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-40-genericUpgrade linux-image-awsUpgrade linux-image-6.8.0-1011-nvidia-64kUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-azure-fdeUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1011-nvidia-lowlatencyUpgrade linux-image-oracle-64kUpgrade linux-image-6.8.0-1012-gcpUpgrade linux-image-ibm-classicUpgrade linux-image-gcpUpgrade linux-image-6.8.0-40-generic-64kUpgrade linux-image-kvmUpgrade linux-image-6.8.0-1011-nvidiaUpgrade linux-image-6.8.0-1008-gkeUpgrade linux-image-oracleUpgrade linux-image-6.8.0-1011-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1012-azureUpgrade linux-image-6.8.0-1013-awsUpgrade linux-image-nvidiaUpgrade linux-image-gkeUpgrade linux-image-azureUpgrade linux-image-6.8.0-1010-ibmUpgrade linux-image-lowlatencyUpgrade linux-image-virtualUpgrade linux-image-6.8.0-1009-raspiUpgrade linux-image-ibmUpgrade linux-image-genericUpgrade linux-image-6.8.0-40-lowlatencyUpgrade linux-image-lowlatency-64kUpgrade linux-image-6.8.0-1012-azure-fdeUpgrade linux-image-oem-24.04Upgrade linux-image-virtual-hwe-24.04Upgrade linux-image-6.8.0-40-lowlatency-64kUpgrade linux-image-generic-lpaeUpgrade linux-image-raspiUpgrade linux-image-generic-64kUpgrade linux-image-nvidia-6.8 | Aug 9, 2024 | May 20, 2024 |
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