[libvirt] [PATCH] conf: Fix initialization value of 'multi' in PCI address

Andrea Bolognani abologna at redhat.com
Wed Aug 10 15:34:09 UTC 2016


On Wed, 2016-08-10 at 17:16 +0200, Boris Fiuczynski wrote:
> > > >      for (i = 0; i < nAddrNodes; i++) {
> > > > -        virPCIDeviceAddress addr = { 0, 0, 0, 0, 0 };
> > > > +        virPCIDeviceAddress addr = { 0, 0, 0, 0, false };
> > > 
> > > Honestly, I have no idea what preferences we have for such
> > > initializations, but I for one prefer initialization to '{0}' which
> > > guarantees everything to be zeroed anyway.  And will be readable the
> > > same way even when we change the structure.  Would that work for you as
> > > well?
>> > I think it should either be 0 (as the structure member is
> > defined as int) or VIR_TRISTATE_SWITCH_ABSENT (as it is used
> > as virTristateSwitch, according to the comment and other bits
> > of code). false definitely seems out of place.
> 
> Actually this fix was about aligning three code occurrences.
> These three initialisations can be found here:
> 
> qemu/qemu_domain_address.c
> 1099:            virPCIDeviceAddress addr = { 0, 0, 0, 0, false };
> 
> conf/node_device_conf.c
> 1166:        virPCIDeviceAddress addr = { 0, 0, 0, 0, 0 };
> 
> conf/domain_addr.c
> 572:    virPCIDeviceAddress a = { 0, 0, 0, 0, false };
> 
> Setting the VIR_TRISTATE_SWITCH_ABSENT make sense from the data type 
> point of view. Looking at it from the code readability point of view you 
> would have to know that the default of the multifunction is Off and with 
> that in mind it made more sense setting it to false.

The default is not OFF, though, it's ABSENT :)

In fact, as far as I can tell, OFF isn't ever used explicitly
either for assignment or comparison. And false is plain wrong
from a datatype point of view.

-- 
Andrea Bolognani / Red Hat / Virtualization




More information about the libvir-list mailing list