qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v2] bitmap: fix BITMAP_LAST_WORD_MASK


From: Dr. David Alan Gilbert
Subject: Re: [Qemu-devel] [PATCH v2] bitmap: fix BITMAP_LAST_WORD_MASK
Date: Wed, 8 Aug 2018 09:29:38 +0100
User-agent: Mutt/1.10.1 (2018-07-13)

* Wei Wang (address@hidden) wrote:
> On 08/07/2018 05:53 PM, Dr. David Alan Gilbert wrote:
> > * Wei Wang (address@hidden) wrote:
> > > On 08/07/2018 03:39 PM, Peter Xu wrote:
> > > > On Tue, Jul 31, 2018 at 06:01:18PM +0800, Wei Wang wrote:
> > > > > When "nbits = 0", which means no bits to mask, this macro is expected 
> > > > > to
> > > > > return 0, instead of 0xffffffff. This patch changes the macro to 
> > > > > return
> > > > > 0 when there is no bit needs to be masked.
> > > > > 
> > > > > Signed-off-by: Wei Wang <address@hidden>
> > > > > CC: Juan Quintela <address@hidden>
> > > > > CC: Dr. David Alan Gilbert <address@hidden>
> > > > > CC: Peter Xu <address@hidden>
> > > > Reviewed-by: Peter Xu <address@hidden>
> > > > 
> > > > Is there any existing path that can trigger this nbits==0?
> > > Not sure about other bitmap APIs which call this macro. But it happens in
> > > the patches we are working on, which use bitmap_count_one.
> > > It would be good to have the macro itself handle this corner case, so that
> > > callers won't need to worry about that.
> > Given that I see you're having a similar discussion on the kernel list
> > we should see how that pans out before making qemu changes.
> 
> OK.
> The situation is a little different in Linux, because all the callers there
> have already taken the responsibilities to avoid the "nbits=0" corner case,
> that's also the reason that they want to stick with the old way. Here in
> QEMU, most callers (e.g. bitmap_count_one, bitmap_fill, bitmap_intersects)
> haven't checked that, so fixing the macro itself might be a better choice
> here.

Where we have macros or functions that have the same name as the kernel
then we should keep them consistent with the kernel unless we have a
VERY good reason to make them differ;  that's especially true if the
difference is a small subtle difference like this;  otherwise it would
be too easy for someone used to QEMU or the kernel to introduce a bad
mistake in the other one because they think they're using the same
thing.

Dave


> Best,
> Wei
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK



reply via email to

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