---
id: CVE-2025-40219
title: |-
  In the Linux kernel, the following vulnerability has been resolved:

  PCI/IOV: Fix race between SR-IOV enable/disable and hotplug

  Commit 05703271c3cd ("PCI/IOV: Add PCI rescan-remove locking when
  enabling/disabling SR-IOV") tried to fix …
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  PCI/IOV: Fix race between SR-IOV enable/disable and hotplug

  Commit 05703271c3cd ("PCI/IOV: Add PCI rescan-remove locking when
  enabling/disabling SR-IOV") tried to fix …
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 18f9e9d150fccfa747875df6f0a9f606740762b3 <
    3cddde484471c602bea04e6f384819d336a1ff84
  - >-
    Linux >= 18f9e9d150fccfa747875df6f0a9f606740762b3 <
    d7673ac466eca37ec3e6b7cc9ccdb06de3304e9b
  - >-
    Linux >= 18f9e9d150fccfa747875df6f0a9f606740762b3 <
    7c37920c96b85ef4255a7acc795e99e63dd38d59
  - >-
    Linux >= 18f9e9d150fccfa747875df6f0a9f606740762b3 <
    1047ca2d816994f31e1475e63e0c0b7825599747
  - >-
    Linux >= 18f9e9d150fccfa747875df6f0a9f606740762b3 <
    97c18f074ff1c12d016a0753072a3afdfa0b9611
  - >-
    Linux >= 18f9e9d150fccfa747875df6f0a9f606740762b3 <
    bea1d373098b22d7142da48750ce5526096425bc
  - >-
    Linux >= 18f9e9d150fccfa747875df6f0a9f606740762b3 <
    f3015627b6e9ddf85cfeaf42405b3c194dde2c36
  - >-
    Linux >= 18f9e9d150fccfa747875df6f0a9f606740762b3 <
    a5338e365c4559d7b4d7356116b0eb95b12e08d5
  - Linux 5.0
published: '2025-12-04'
updated: '2026-10-15'
sourceUpdated: '2026-10-15T02:18:06.470'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2025-40219'
references:
  - url: 'https://git.kernel.org/stable/c/1047ca2d816994f31e1475e63e0c0b7825599747'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/3cddde484471c602bea04e6f384819d336a1ff84'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/7c37920c96b85ef4255a7acc795e99e63dd38d59'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/97c18f074ff1c12d016a0753072a3afdfa0b9611'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/a5338e365c4559d7b4d7356116b0eb95b12e08d5'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/bea1d373098b22d7142da48750ce5526096425bc'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/d7673ac466eca37ec3e6b7cc9ccdb06de3304e9b'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/f3015627b6e9ddf85cfeaf42405b3c194dde2c36'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-019113.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-082556.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
  - url: 'https://cert-portal.siemens.com/productcert/html/ssa-457936.html'
    label: 0b142b55-0307-4c5a-b3c9-f314f3fb7c5e
tags:
  - nvd
  - cve.org
epss: 0.00224
epssPercentile: 0.12897
ingestedAt: '2026-09-08T15:33:26.996Z'
---

## Overview

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

PCI/IOV: Fix race between SR-IOV enable/disable and hotplug

Commit 05703271c3cd ("PCI/IOV: Add PCI rescan-remove locking when
enabling/disabling SR-IOV") tried to fix a race between the VF removal
inside sriov_del_vfs() and concurrent hot unplug by taking the PCI
rescan/remove lock in sriov_del_vfs(). Similarly the PCI rescan/remove lock
was also taken in sriov_add_vfs() to protect addition of VFs.

This approach however causes deadlock on trying to remove PFs with SR-IOV
enabled because PFs disable SR-IOV during removal and this removal happens
under the PCI rescan/remove lock. So the original fix had to be reverted.

Instead of taking the PCI rescan/remove lock in sriov_add_vfs() and
sriov_del_vfs(), fix the race that occurs with SR-IOV enable and disable vs
hotplug higher up in the callchain by taking the lock in
sriov_numvfs_store() before calling into the driver's sriov_configure()
callback.

## Remediation

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