[PATCH v2 0/5] vfio/pci: Latch module params, fix bitfield use and VGA unwind
From: Alex Williamson
Date: Thu Jun 11 2026 - 17:35:53 EST
The vfio-pci module pushes module parameters into vfio-pci-core at
initialization that change global policies for all devices, whether
bound to vfio-pci itself or other variant drivers. Not only is this
generally bad practice, but in the case of runtime PM, policy changes
can affect initialized devices, even while they're in use, resulting in
unbalanced operations.
This series first addresses the runtime PM case as a separate fix for
stable, latching the runtime PM support into the device.
Then, in preparing for moving disable_vga to per device, it's discovered
that we lack proper unwind support for a registration failure, leaving
the VGA arbiter client registered. This is resolved before it turns into
an issue, also marked for stable.
Next, we're again reminded of the risky bitfield use in both the
vfio-pci-core and mlx5 variant driver, therefore before expanding use
for more per-device flags, perform the binary split to categorize
flags as either setup/release or runtime to avoid RMW hazards of the
bitfields. Also for stable.
Finally, close the series by pulling vfio-pci module parameter policy
out of the core, latching each into the device structure.
This latter change also has the effect of restoring the mutability of
two of the module parameters, where that functionality was lost with the
vfio-pci-core split. With this series, the current parameter values are
latched into the device at probe time.
Please review. Thanks,
Alex
Alex Williamson (5):
vfio/pci: Latch disable_idle_d3 per device
vfio/pci: Release the VGA arbiter client on register_device() failure
vfio/pci: Fix racy bitfields and tighten struct layout
vfio/mlx5: Fix racy bitfields and tighten struct layout
vfio/pci: Latch all module parameters per device
drivers/vfio/pci/mlx5/cmd.h | 15 +++++----
drivers/vfio/pci/vfio_pci.c | 30 +++++++++++++-----
drivers/vfio/pci/vfio_pci_core.c | 53 +++++++++++++++-----------------
include/linux/vfio_pci_core.h | 18 ++++++-----
4 files changed, 67 insertions(+), 49 deletions(-)
--
2.53.0