* Eduardo Habkost (ehabk...@redhat.com) wrote: > If cpu->host_phys_bits_limit is set, QEMU will make > cpu->phys_bits be lower than host_phys_bits on some cases. This > triggers a warning that was supposed to be printed only if > phys-bits was explicitly set in the command-line. > > Reorder the code so the value of cpu->phys_bits is validated > before the cpu->host_phys_bits handling. This will avoid > unexpected warnings when cpu->host_phys_bits_limit is set. > > Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>
I think that's OK; note I think that means you can trigger an erroneous warning in the case where the user does something odd like: phys_bits=50,host_phys_bits=true so you print the warning and *then* set phys_bits = host_phys_bits. Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com> > --- > target/i386/cpu.c | 18 +++++++++--------- > 1 file changed, 9 insertions(+), 9 deletions(-) > > diff --git a/target/i386/cpu.c b/target/i386/cpu.c > index 7e5b545005..1327e4901a 100644 > --- a/target/i386/cpu.c > +++ b/target/i386/cpu.c > @@ -5269,15 +5269,6 @@ static void x86_cpu_realizefn(DeviceState *dev, Error > **errp) > uint32_t host_phys_bits = x86_host_phys_bits(); > static bool warned; > > - if (cpu->host_phys_bits) { > - /* The user asked for us to use the host physical bits */ > - cpu->phys_bits = host_phys_bits; > - if (cpu->host_phys_bits_limit && > - cpu->phys_bits > cpu->host_phys_bits_limit) { > - cpu->phys_bits = cpu->host_phys_bits_limit; > - } > - } > - > /* Print a warning if the user set it to a value that's not the > * host value. > */ > @@ -5289,6 +5280,15 @@ static void x86_cpu_realizefn(DeviceState *dev, Error > **errp) > warned = true; > } > > + if (cpu->host_phys_bits) { > + /* The user asked for us to use the host physical bits */ > + cpu->phys_bits = host_phys_bits; > + if (cpu->host_phys_bits_limit && > + cpu->phys_bits > cpu->host_phys_bits_limit) { > + cpu->phys_bits = cpu->host_phys_bits_limit; > + } > + } > + > if (cpu->phys_bits && > (cpu->phys_bits > TARGET_PHYS_ADDR_SPACE_BITS || > cpu->phys_bits < 32)) { > -- > 2.18.0.rc1.1.g3f1ff2140 > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK