mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
vfio: selftests: Add helpers to alloc/free vfio_pci_device
Add a helper, vfio_pci_device_alloc(), to allocate 'struct vfio_pci_device'. The subsequent test patch will utilize this to get the struct with very minimal initialization done. Internally, let vfio_pci_device_init() also make use of this function and later do the full initialization. Symmetrically, add a free variant, vfio_pci_device_free(), to be used in a similar fashion. No functional change intended. Signed-off-by: Raghavendra Rao Ananta <rananta@google.com> Reviewed-by: David Matlack <dmatlack@google.com> Reviewed-by: Vipin Sharma <vipinsh@google.com> Tested-by: David Matlack <dmatlack@google.com> Link: https://lore.kernel.org/r/20260505212838.1698034-8-rananta@google.com Signed-off-by: Alex Williamson <alex@shazbot.org>
This commit is contained in:
parent
20face8c75
commit
3152e7f457
|
|
@ -38,6 +38,8 @@ struct vfio_pci_device {
|
|||
#define dev_info(_dev, _fmt, ...) printf("%s: " _fmt, (_dev)->bdf, ##__VA_ARGS__)
|
||||
#define dev_err(_dev, _fmt, ...) fprintf(stderr, "%s: " _fmt, (_dev)->bdf, ##__VA_ARGS__)
|
||||
|
||||
struct vfio_pci_device *vfio_pci_device_alloc(const char *bdf, struct iommu *iommu);
|
||||
void vfio_pci_device_free(struct vfio_pci_device *device);
|
||||
struct vfio_pci_device *vfio_pci_device_init(const char *bdf, struct iommu *iommu);
|
||||
void vfio_pci_device_cleanup(struct vfio_pci_device *device);
|
||||
|
||||
|
|
|
|||
|
|
@ -421,7 +421,7 @@ static void vfio_pci_iommufd_setup(struct vfio_pci_device *device,
|
|||
vfio_device_attach_iommufd_pt(device->fd, device->iommu->ioas_id);
|
||||
}
|
||||
|
||||
struct vfio_pci_device *vfio_pci_device_init(const char *bdf, struct iommu *iommu)
|
||||
struct vfio_pci_device *vfio_pci_device_alloc(const char *bdf, struct iommu *iommu)
|
||||
{
|
||||
struct vfio_pci_device *device;
|
||||
|
||||
|
|
@ -432,6 +432,20 @@ struct vfio_pci_device *vfio_pci_device_init(const char *bdf, struct iommu *iomm
|
|||
device->iommu = iommu;
|
||||
device->bdf = bdf;
|
||||
|
||||
return device;
|
||||
}
|
||||
|
||||
void vfio_pci_device_free(struct vfio_pci_device *device)
|
||||
{
|
||||
free(device);
|
||||
}
|
||||
|
||||
struct vfio_pci_device *vfio_pci_device_init(const char *bdf, struct iommu *iommu)
|
||||
{
|
||||
struct vfio_pci_device *device;
|
||||
|
||||
device = vfio_pci_device_alloc(bdf, iommu);
|
||||
|
||||
if (iommu->mode->container_path)
|
||||
vfio_pci_container_setup(device, bdf, NULL);
|
||||
else
|
||||
|
|
@ -464,5 +478,5 @@ void vfio_pci_device_cleanup(struct vfio_pci_device *device)
|
|||
if (device->group_fd)
|
||||
VFIO_ASSERT_EQ(close(device->group_fd), 0);
|
||||
|
||||
free(device);
|
||||
vfio_pci_device_free(device);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user