mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-21 19:02:25 +00:00
nodedev: store mdev UUID in mdev caps
In order to allow libvirt to create and start new mediated devices, we need to be able to verify that the device has been started. In order to do this, we'll need to save the UUID of newly-discovered devices within the virNodeDevCapMdev structure. This allows us to search the device list by UUID and verify whether the expected device has been started. Signed-off-by: Jonathon Jongsma <jjongsma@redhat.com> Reviewed-by: Erik Skultety <eskultet@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
81dc248ea4
commit
4583a73470
@ -2218,6 +2218,7 @@ virNodeDevCapsDefFree(virNodeDevCapsDefPtr caps)
|
||||
break;
|
||||
case VIR_NODE_DEV_CAP_MDEV:
|
||||
VIR_FREE(data->mdev.type);
|
||||
VIR_FREE(data->mdev.uuid);
|
||||
for (i = 0; i < data->mdev.nattributes; i++)
|
||||
virMediatedDeviceAttrFree(data->mdev.attributes[i]);
|
||||
VIR_FREE(data->mdev.attributes);
|
||||
|
@ -141,6 +141,7 @@ typedef virNodeDevCapMdev *virNodeDevCapMdevPtr;
|
||||
struct _virNodeDevCapMdev {
|
||||
char *type;
|
||||
unsigned int iommuGroupNumber;
|
||||
char *uuid;
|
||||
virMediatedDeviceAttrPtr *attributes;
|
||||
size_t nattributes;
|
||||
};
|
||||
|
@ -1013,7 +1013,6 @@ udevProcessMediatedDevice(struct udev_device *dev,
|
||||
virNodeDeviceDefPtr def)
|
||||
{
|
||||
int ret = -1;
|
||||
const char *uuidstr = NULL;
|
||||
int iommugrp = -1;
|
||||
char *linkpath = NULL;
|
||||
char *canonicalpath = NULL;
|
||||
@ -1041,8 +1040,8 @@ udevProcessMediatedDevice(struct udev_device *dev,
|
||||
|
||||
data->type = g_path_get_basename(canonicalpath);
|
||||
|
||||
uuidstr = udev_device_get_sysname(dev);
|
||||
if ((iommugrp = virMediatedDeviceGetIOMMUGroupNum(uuidstr)) < 0)
|
||||
data->uuid = g_strdup(udev_device_get_sysname(dev));
|
||||
if ((iommugrp = virMediatedDeviceGetIOMMUGroupNum(data->uuid)) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (udevGenerateDeviceName(dev, def, NULL) != 0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user