---
id: CVE-2026-31647
title: 'idpf: fix PREEMPT_RT raw/bh spinlock nesting for async VC handling'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  idpf: fix PREEMPT_RT raw/bh spinlock nesting for async VC handling

  Switch from using the completion's raw spinlock to a local lock in the
  idpf_vc_xn struct. The conver…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 34c21fa894a1af6166f4284c81d1dc21efed8f38 <
    b448529f2f2921c6fe82fd4e985cc7c05cbf02a3
  - >-
    Linux >= 34c21fa894a1af6166f4284c81d1dc21efed8f38 <
    e02c974fc331f04b5ba2007d4bc6862df8a43148
  - >-
    Linux >= 34c21fa894a1af6166f4284c81d1dc21efed8f38 <
    3bb632c6b6d8154e9019beda4a43a4b518ee3e8a
  - >-
    Linux >= 34c21fa894a1af6166f4284c81d1dc21efed8f38 <
    591478118293c1bd628de330a99eb1eb2ef8d76b
  - Linux 6.9
ssvc:
  exploitation: none
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-11-06T15:23:26.991090Z'
published: '2026-04-24'
updated: '2026-11-06'
sourceUpdated: '2026-11-06T15:32:21.196Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-31647'
references:
  - url: 'https://git.kernel.org/stable/c/b448529f2f2921c6fe82fd4e985cc7c05cbf02a3'
  - url: 'https://git.kernel.org/stable/c/e02c974fc331f04b5ba2007d4bc6862df8a43148'
  - url: 'https://git.kernel.org/stable/c/3bb632c6b6d8154e9019beda4a43a4b518ee3e8a'
  - url: 'https://git.kernel.org/stable/c/591478118293c1bd628de330a99eb1eb2ef8d76b'
tags:
  - cve.org
epss: 0.00122
epssPercentile: 0.01997
ingestedAt: '2026-11-06T15:54:04.049Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

idpf: fix PREEMPT_RT raw/bh spinlock nesting for async VC handling

Switch from using the completion's raw spinlock to a local lock in the
idpf_vc_xn struct. The conversion is safe because complete/_all() are
called outside the lock and there is no reason to share the completion
lock in the current logic. This avoids invalid wait context reported by
the kernel due to the async handler taking BH spinlock:

[  805.726977] =============================
[  805.726991] [ BUG: Invalid wait context ]
[  805.727006] 7.0.0-rc2-net-devq-031026+ #28 Tainted: G S         OE
[  805.727026] -----------------------------
[  805.727038] kworker/u261:0/572 is trying to lock:
[  805.727051] ff190da6a8dbb6a0 (&vport_config->mac_filter_list_lock){+...}-{3:3}, at: idpf_mac_filter_async_handler+0xe9/0x260 [idpf]
[  805.727099] other info that might help us debug this:
[  805.727111] context-{5:5}
[  805.727119] 3 locks held by kworker/u261:0/572:
[  805.727132]  #0: ff190da6db3e6148 ((wq_completion)idpf-0000:83:00.0-mbx){+.+.}-{0:0}, at: process_one_work+0x4b5/0x730
[  805.727163]  #1: ff3c6f0a6131fe50 ((work_completion)(&(&adapter->mbx_task)->work)){+.+.}-{0:0}, at: process_one_work+0x1e5/0x730
[  805.727191]  #2: ff190da765190020 (&x->wait#34){+.+.}-{2:2}, at: idpf_recv_mb_msg+0xc8/0x710 [idpf]
[  805.727218] stack backtrace:
...
[  805.727238] Workqueue: idpf-0000:83:00.0-mbx idpf_mbx_task [idpf]
[  805.727247] Call Trace:
[  805.727249]  <TASK>
[  805.727251]  dump_stack_lvl+0x77/0xb0
[  805.727259]  __lock_acquire+0xb3b/0x2290
[  805.727268]  ? __irq_work_queue_local+0x59/0x130
[  805.727275]  lock_acquire+0xc6/0x2f0
[  805.727277]  ? idpf_mac_filter_async_handler+0xe9/0x260 [idpf]
[  805.727284]  ? _printk+0x5b/0x80
[  805.727290]  _raw_spin_lock_bh+0x38/0x50
[  805.727298]  ? idpf_mac_filter_async_handler+0xe9/0x260 [idpf]
[  805.727303]  idpf_mac_filter_async_handler+0xe9/0x260 [idpf]
[  805.727310]  idpf_recv_mb_msg+0x1c8/0x710 [idpf]
[  805.727317]  process_one_work+0x226/0x730
[  805.727322]  worker_thread+0x19e/0x340
[  805.727325]  ? __pfx_worker_thread+0x10/0x10
[  805.727328]  kthread+0xf4/0x130
[  805.727333]  ? __pfx_kthread+0x10/0x10
[  805.727336]  ret_from_fork+0x32c/0x410
[  805.727345]  ? __pfx_kthread+0x10/0x10
[  805.727347]  ret_from_fork_asm+0x1a/0x30
[  805.727354]  </TASK>

## Affected

- `Linux >= 34c21fa894a1af6166f4284c81d1dc21efed8f38 < b448529f2f2921c6fe82fd4e985cc7c05cbf02a3`
- `Linux >= 34c21fa894a1af6166f4284c81d1dc21efed8f38 < e02c974fc331f04b5ba2007d4bc6862df8a43148`
- `Linux >= 34c21fa894a1af6166f4284c81d1dc21efed8f38 < 3bb632c6b6d8154e9019beda4a43a4b518ee3e8a`
- `Linux >= 34c21fa894a1af6166f4284c81d1dc21efed8f38 < 591478118293c1bd628de330a99eb1eb2ef8d76b`
- `Linux 6.9`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
