qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] i386/kvm: Fix build with -m32


From: Eduardo Habkost
Subject: Re: [Qemu-devel] [PATCH] i386/kvm: Fix build with -m32
Date: Mon, 24 Jun 2019 16:56:12 -0300

On Mon, Jun 24, 2019 at 09:30:26PM +0200, Max Reitz wrote:
> On 24.06.19 21:26, Max Reitz wrote:
> > On 24.06.19 21:21, Eduardo Habkost wrote:
> >> On Mon, Jun 24, 2019 at 09:02:14PM +0200, Max Reitz wrote:
> >>> find_next_bit() takes a pointer of type "const unsigned long *", but the
> >>> first argument passed here is a "uint64_t *".  These types are
> >>> incompatible when compiling qemu with -m32.
> >>>
> >>> Just cast it to "const void *", find_next_bit() works fine with any type
> >>> on little-endian hosts (which x86 is).
> >>>
> >>> Fixes: c686193072a47032d83cb4e131dc49ae30f9e5d
> >>> Signed-off-by: Max Reitz <address@hidden>
> >>
> >> Why not declare kvm_hyperv_properties.dependencies with the right
> >> type for bitmaps, using
> >>   unsigned long dependencies[BITS_TO_LONGS(64)]
> >> ?
> > 
> > How would you (statically) initialize that field, then?
> > 
> > I cannot imagine a reasonable static way that does not invoke the same
> > “The host must be little-endian, so it’s OK” assumption.
> 
> Sorry, brain fart.  That’s not the problem because in either case, the
> lower index will receive the lower-indexed bits.
> 
> But we’d still have to deal with the fact that it could either be one or
> two indices, which doesn’t seem nice to initialize either.

Right, a uint64_t field is more convenient to initialize.

> 
> Max
> 
> > The better question is perhaps, why not use ffsll().  Hm.  I don’t know,
> > maybe I should?

uint64_t + ffsll() seems simple and appropriate.

-- 
Eduardo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]