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

Boris Fiuczynski fiuczy at linux.ibm.com
Wed Mar 16 17:54:37 UTC 2022


On 3/16/22 2:32 PM, Michal Prívozník wrote:
> 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

Uh, I will need to send another patch to fix the original line as well.

> 
>> +
>>       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?

Yes, makes sense!

> 
>>   
>>       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/

Yes, see above

> 
>> +
>>       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
> 

Michael, thanks for your r-b.


-- 
Mit freundlichen Grüßen/Kind regards
    Boris Fiuczynski

IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Gregor Pillen
Geschäftsführung: David Faller
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294



More information about the libvir-list mailing list