]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
vfio/pci: Release the VGA arbiter client on register_device() failure
authorAlex Williamson <alex.williamson@nvidia.com>
Mon, 15 Jun 2026 19:12:30 +0000 (13:12 -0600)
committerAlex Williamson <alex@shazbot.org>
Mon, 29 Jun 2026 19:46:49 +0000 (13:46 -0600)
commitdaedde7f024ecf88bc8e832ed40cf2c795f0796a
tree1e228d82d74386c2f74591c1d88855ef422fc3b5
parent4575e9aac5336d1365138c0284773bf8da4b1fa3
vfio/pci: Release the VGA arbiter client on register_device() failure

The re-order in the Fixes commit below displaced vfio_pci_vga_init() as
the last failure point of what is now vfio_pci_core_register_device()
without introducing an unwind for the VGA arbiter registration.

In current kernels this is mostly benign because vfio_pci_set_decode()
only uses pci_dev state, but the original failure path could leave a
callback with a freed vdev cookie.  The stale registration also becomes
unsafe again once the callback follows drvdata to the vfio device.

Add the required VGA unwind callout.

Fixes: 4aeec3984ddc ("vfio/pci: Re-order vfio_pci_probe()")
Cc: stable@vger.kernel.org
Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Alex Williamson <alex.williamson@nvidia.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Link: https://lore.kernel.org/r/20260615191241.688297-3-alex.williamson@nvidia.com
Signed-off-by: Alex Williamson <alex@shazbot.org>
drivers/vfio/pci/vfio_pci_core.c