[libvirt] [PATCH v2 4/4] qemu: assign vfio devices to PCIe addresses when appropriate

Laine Stump laine at laine.org
Tue Nov 29 02:53:51 UTC 2016


On 11/24/2016 10:43 AM, Andrea Bolognani wrote:
> On Mon, 2016-11-21 at 00:01 -0500, Laine Stump wrote:
>> Although nearly all host devices that are assigned to guests using
>> vfio ("<hostdev>" devices in libvirt) are physically PCI Express
> s/vfio/VFIO/
>
> Same for the subject.
>
> [...]
>> @@ -558,8 +558,88 @@ qemuDomainDeviceCalculatePCIConnectFlags(virDomainDeviceDefPtr dev,
>>                return 0;
>>            }
>>    
>> -    case VIR_DOMAIN_DEVICE_HOSTDEV:
>> -        return pciFlags;
>> +    case VIR_DOMAIN_DEVICE_HOSTDEV: {
>> +        virDomainHostdevDefPtr hostdev = dev->data.hostdev;
>> +
>> +        if (hostdev->mode == VIR_DOMAIN_HOSTDEV_MODE_SUBSYS &&
>> +            hostdev->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI) {
> How about inverting this condition and returning 0 immediately
> unless if the wrong mode or type is used? You could get rid
> of one indentation level that way, and the function already
> has a gazillion return statements anyway.

I've been trying to return early only for specific cases, and leave the 
"catchall" for each case at the end of the case. But since this function 
is returning the *PCI* connect flags, I guess "not a PCI device" is a 
pretty specific case :-) (in other words "okay, I'll invert the 
condition, return early with a 0, and reduce the indent level (which I 
also like)).





More information about the libvir-list mailing list