nodedev: transient mdev update on nodeDeviceCreateXML

Update the optional mdev attributes by running an mdevctl update on a
new created nodedev object representing an mdev.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2143158
Signed-off-by: Boris Fiuczynski <fiuczy@linux.ibm.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
This commit is contained in:
Boris Fiuczynski 2023-06-30 13:34:00 +02:00 committed by Jonathon Jongsma
parent 851c5f075b
commit 37481aa1f1

View File

@ -1765,12 +1765,20 @@ nodeStateCleanup(void)
static int
udevHandleOneDevice(struct udev_device *device)
{
virNodeDevCapType dev_cap_type;
const char *action = udev_device_get_action(device);
VIR_DEBUG("udev action: '%s': %s", action, udev_device_get_syspath(device));
if (STREQ(action, "add") || STREQ(action, "change"))
return udevAddOneDevice(device);
if (STREQ(action, "add") || STREQ(action, "change")) {
int ret = udevAddOneDevice(device);
if (ret == 0 &&
udevGetDeviceType(device, &dev_cap_type) == 0 &&
dev_cap_type == VIR_NODE_DEV_CAP_MDEV)
if (nodeDeviceUpdateMediatedDevices() < 0)
VIR_WARN("mdevctl failed to update mediated devices");
return ret;
}
if (STREQ(action, "remove"))
return udevRemoveOneDevice(device);