mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 01:53:29 +02:00
vfio/pci: Require vfio_device_ops.name
vfio-pci-core code makes use of the vfio_device_ops.name field in order to set a default driver_override for VFs created on a user-owned PF. This avoids default driver matching, which might otherwise bind those VFs to native drivers. The mechanism for this currently uses kasprintf(), which will set driver_override to the literal "(null)" if name is NULL. This is effective in sequestering the device, but presents a challenging debug situation to differentiate driver_override being set to "(null)" versus being NULL and interpreted as "(null)" via the sysfs show attribute. There's also a tree-wide effort to convert to generic driver_override support, where passing NULL will generate an error, resulting in a WARN_ON without setting any driver_override. All drivers making use of vfio-pci-core already set a driver name, therefore by requiring this behavior, all of these corner cases are rendered moot. This is expected to have no impact on current in-kernel drivers. Suggested-by: Danilo Krummrich <dakr@kernel.org> Signed-off-by: Alex Williamson <alex.williamson@nvidia.com> Reviewed-by: Danilo Krummrich <dakr@kernel.org> Link: https://lore.kernel.org/r/20260331202443.2598404-1-alex.williamson@nvidia.com Signed-off-by: Alex Williamson <alex@shazbot.org>
This commit is contained in:
parent
ad6ed97f8c
commit
7487d8db33
|
|
@ -2139,6 +2139,10 @@ int vfio_pci_core_register_device(struct vfio_pci_core_device *vdev)
|
|||
if (WARN_ON(vdev != dev_get_drvdata(dev)))
|
||||
return -EINVAL;
|
||||
|
||||
/* Drivers must set a name. Required for sequestering SR-IOV VFs */
|
||||
if (WARN_ON(!vdev->vdev.ops->name))
|
||||
return -EINVAL;
|
||||
|
||||
if (pdev->hdr_type != PCI_HEADER_TYPE_NORMAL)
|
||||
return -EINVAL;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user