[libvirt] [PATCH] nodedev: Fix failing to parse PCI address for non-PCI network devices

Jim Fehlig jfehlig at suse.com
Mon Jan 8 17:11:50 UTC 2018


On 01/03/2018 01:40 AM, Erik Skultety wrote:
> On Fri, Dec 22, 2017 at 01:05:26PM +0800, Fei Li wrote:
>> Commit 8708ca01c added virNetDevSwitchdevFeature to check whether
>> the NIC had Switchdev capabilities; however this causes errors for
>> network devices whose address is not in PCI format, like qeth device
>> whose address is 0.0.0800, when calling virPCIDeviceAddressParse.
>>
>> Change virReportError to VIR_DEBUG to avoid these two error messages
>> occuring when starting the libvirtd service, just leave their callers
>> to handle the return values respectively.
>>
>> Signed-off-by: Fei Li <fli at suse.com>
>> ---
>>   src/util/virpci.c | 6 ++----
>>   1 file changed, 2 insertions(+), 4 deletions(-)
>>
>> diff --git a/src/util/virpci.c b/src/util/virpci.c
>> index fe57bef32..880d7baba 100644
>> --- a/src/util/virpci.c
>> +++ b/src/util/virpci.c
>> @@ -2561,7 +2561,7 @@ logStrToLong_ui(char const *s,
>>
>>       ret = virStrToLong_ui(s, end_ptr, base, result);
>>       if (ret != 0)
>> -        VIR_ERROR(_("Failed to convert '%s' to unsigned int"), s);
>> +        VIR_DEBUG("Failed to convert '%s' to unsigned int", s);
>>       return ret;
>>   }
>>
>> @@ -2638,9 +2638,7 @@ virPCIGetDeviceAddressFromSysfsLink(const char *device_link)
>>           goto out;
>>
>>       if (virPCIDeviceAddressParse(config_address, bdf) < 0) {
>> -        virReportError(VIR_ERR_INTERNAL_ERROR,
>> -                       _("Failed to parse PCI config address '%s'"),
>> -                       config_address);
>> +        VIR_DEBUG("Failed to parse PCI config address '%s'", config_address);
>>           VIR_FREE(bdf);
>>           goto out;
>>       }
> 
> I am not familiar with switchdev feature, but this is certainly not the correct
> fix, errors do have their meaning and by simply mangling the log level of
> messages to suit your use case is not the way. Again, I'm far from an expert
> in this area, but IMHO you should special case handling of devices supporting
> this feature by, e.g. using the VIR_NET_DEV_FEAT_SWITCHDEV enum or create
> another one if suitable/appropriate in this case and skip parsing the PCI
> address completely.

I've sent a patch that takes a slightly different approach to solving this problem

https://www.redhat.com/archives/libvir-list/2018-January/msg00233.html

Regards,
Jim




More information about the libvir-list mailing list