[PATCH 3/3] nodedev: trigger mdev device definition update on udev add and remove

Michal Prívozník mprivozn at redhat.com
Wed Mar 16 13:32:34 UTC 2022


On 3/15/22 09:56, Boris Fiuczynski wrote:
> When nodedev objects are added and removed if possible check if mdev-types is
> supported by the object and trigger a mdev device definition update to correct
> the associated parent nodedevs.
> 
> Signed-off-by: Boris Fiuczynski <fiuczy at linux.ibm.com>
> ---
>  src/node_device/node_device_udev.c | 9 +++++++++
>  1 file changed, 9 insertions(+)
> 
> diff --git a/src/node_device/node_device_udev.c b/src/node_device/node_device_udev.c
> index b0a5e6302c..e17373a0b0 100644
> --- a/src/node_device/node_device_udev.c
> +++ b/src/node_device/node_device_udev.c
> @@ -1440,6 +1440,10 @@ udevRemoveOneDeviceSysPath(const char *path)
>      }
>      virNodeDeviceObjEndAPI(&obj);
>  
> +    /* cannot check for mdev_types since they have already been removed */
> +    if (nodeDeviceUpdateMediatedDevices() < 0)
> +        VIR_WARN("mdevctl failed to updated mediated devices");

failed to update

> +
>      virObjectEventStateQueue(driver->nodeDeviceEventState, event);
>      return 0;
>  }
> @@ -1507,6 +1511,7 @@ udevAddOneDevice(struct udev_device *device)
>      bool persistent = false;
>      bool autostart = false;
>      bool is_mdev;
> +    bool is_mdev_types = false;

has_mdev_cap perhaps?

>  
>      def = g_new0(virNodeDeviceDef, 1);
>  
> @@ -1562,8 +1567,12 @@ udevAddOneDevice(struct udev_device *device)
>          event = virNodeDeviceEventUpdateNew(objdef->name);
>  
>      virNodeDeviceObjSetActive(obj, true);
> +    is_mdev_types = virNodeDeviceObjHasCap(obj, VIR_NODE_DEV_CAP_MDEV_TYPES);
>      virNodeDeviceObjEndAPI(&obj);
>  
> +    if (is_mdev_types && nodeDeviceUpdateMediatedDevices() < 0)
> +        VIR_WARN("mdevctl failed to updated mediated devices");

s/updated/update/

> +
>      ret = 0;
>  
>   cleanup:


Otherwise looking good. I'll let Jonathon express his thoughts, but you
have my:

Reviewed-by: Michal Privoznik <mprivozn at redhat.com>

Michal



More information about the libvir-list mailing list