[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 13/22] bitmap: fix bitmap_count_one
From: |
Dr. David Alan Gilbert (git) |
Subject: |
[Qemu-devel] [PULL 13/22] bitmap: fix bitmap_count_one |
Date: |
Wed, 6 Mar 2019 11:42:18 +0000 |
From: Wei Wang <address@hidden>
BITMAP_LAST_WORD_MASK(nbits) returns 0xffffffff when "nbits=0", which
makes bitmap_count_one fail to handle the "nbits=0" case. It appears to be
preferred to remain BITMAP_LAST_WORD_MASK identical to the kernel
implementation that it is ported from.
So this patch fixes bitmap_count_one to handle the nbits=0 case.
Inital Discussion Link:
https://www.mail-archive.com/address@hidden/msg554316.html
Signed-off-by: Wei Wang <address@hidden>
CC: Juan Quintela <address@hidden>
CC: Dr. David Alan Gilbert <address@hidden>
CC: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Signed-off-by: Dr. David Alan Gilbert <address@hidden>
---
include/qemu/bitmap.h | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/include/qemu/bitmap.h b/include/qemu/bitmap.h
index 509eeddece..679f1bdce4 100644
--- a/include/qemu/bitmap.h
+++ b/include/qemu/bitmap.h
@@ -221,6 +221,10 @@ static inline int bitmap_intersects(const unsigned long
*src1,
static inline long bitmap_count_one(const unsigned long *bitmap, long nbits)
{
+ if (unlikely(!nbits)) {
+ return 0;
+ }
+
if (small_nbits(nbits)) {
return ctpopl(*bitmap & BITMAP_LAST_WORD_MASK(nbits));
} else {
--
2.20.1
- [Qemu-devel] [PULL 05/22] exec: Change RAMBlockIterFunc definition, (continued)
- [Qemu-devel] [PULL 05/22] exec: Change RAMBlockIterFunc definition, Dr. David Alan Gilbert (git), 2019/03/06
- [Qemu-devel] [PULL 06/22] migration: Introduce ignore-shared capability, Dr. David Alan Gilbert (git), 2019/03/06
- [Qemu-devel] [PULL 07/22] migration: Add an ability to ignore shared RAM blocks, Dr. David Alan Gilbert (git), 2019/03/06
- [Qemu-devel] [PULL 08/22] tests/migration-test: Add a test for ignore-shared capability, Dr. David Alan Gilbert (git), 2019/03/06
- [Qemu-devel] [PULL 09/22] migration: Add capabilities validation, Dr. David Alan Gilbert (git), 2019/03/06
- [Qemu-devel] [PULL 10/22] tests: Add migration xbzrle test, Dr. David Alan Gilbert (git), 2019/03/06
- [Qemu-devel] [PULL 11/22] migration: Create socket-address parameter, Dr. David Alan Gilbert (git), 2019/03/06
- [Qemu-devel] [PULL 12/22] tests: Add basic migration precopy tcp test, Dr. David Alan Gilbert (git), 2019/03/06
- [Qemu-devel] [PULL 13/22] bitmap: fix bitmap_count_one,
Dr. David Alan Gilbert (git) <=
- [Qemu-devel] [PULL 15/22] migration: use bitmap_mutex in migration_bitmap_clear_dirty, Dr. David Alan Gilbert (git), 2019/03/06
- [Qemu-devel] [PULL 16/22] migration: API to clear bits of guest free pages from the dirty bitmap, Dr. David Alan Gilbert (git), 2019/03/06
- [Qemu-devel] [PULL 14/22] bitmap: bitmap_count_one_with_offset, Dr. David Alan Gilbert (git), 2019/03/06
- [Qemu-devel] [PULL 17/22] migration/ram.c: add a notifier chain for precopy, Dr. David Alan Gilbert (git), 2019/03/06
- [Qemu-devel] [PULL 18/22] migration/ram.c: add the free page optimization enable flag, Dr. David Alan Gilbert (git), 2019/03/06
- [Qemu-devel] [PULL 19/22] virtio-balloon: VIRTIO_BALLOON_F_FREE_PAGE_HINT, Dr. David Alan Gilbert (git), 2019/03/06
- [Qemu-devel] [PULL 20/22] Migration/colo.c: Fix double close bug when occur COLO failover, Dr. David Alan Gilbert (git), 2019/03/06