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

[xen master] libxc/bitops: increase potential size of bitmaps



commit 50a5215f30e964a6f16165ab57925ca39f31a849
Author:     Olaf Hering <olaf@xxxxxxxxx>
AuthorDate: Thu Sep 24 20:08:43 2020 +0200
Commit:     Wei Liu <wl@xxxxxxx>
CommitDate: Wed Sep 30 15:10:26 2020 +0000

    libxc/bitops: increase potential size of bitmaps
    
    If the bitmap is used to represent domU pages, the amount of memory is
    limited to 8TB due to the 32bit value. Adjust the code to use 64bit
    values as input. All callers already use some form of 64bit as input,
    so no further adjustment is required.
    
    Signed-off-by: Olaf Hering <olaf@xxxxxxxxx>
    Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
    Acked-by: Wei Liu <wl@xxxxxxx>
---
 tools/libs/ctrl/xc_bitops.h | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/tools/libs/ctrl/xc_bitops.h b/tools/libs/ctrl/xc_bitops.h
index 0951e8267d..3d3a09772a 100644
--- a/tools/libs/ctrl/xc_bitops.h
+++ b/tools/libs/ctrl/xc_bitops.h
@@ -14,52 +14,52 @@
 #define BITMAP_SHIFT(_nr) ((_nr) % 8)
 
 /* calculate required space for number of bytes needed to hold nr_bits */
-static inline int bitmap_size(int nr_bits)
+static inline unsigned long bitmap_size(unsigned long nr_bits)
 {
     return (nr_bits + 7) / 8;
 }
 
-static inline void *bitmap_alloc(int nr_bits)
+static inline void *bitmap_alloc(unsigned long nr_bits)
 {
     return calloc(1, bitmap_size(nr_bits));
 }
 
-static inline void bitmap_set(void *addr, int nr_bits)
+static inline void bitmap_set(void *addr, unsigned long nr_bits)
 {
     memset(addr, 0xff, bitmap_size(nr_bits));
 }
 
-static inline void bitmap_clear(void *addr, int nr_bits)
+static inline void bitmap_clear(void *addr, unsigned long nr_bits)
 {
     memset(addr, 0, bitmap_size(nr_bits));
 }
 
-static inline int test_bit(int nr, const void *_addr)
+static inline int test_bit(unsigned long nr, const void *_addr)
 {
     const char *addr = _addr;
     return (BITMAP_ENTRY(nr, addr) >> BITMAP_SHIFT(nr)) & 1;
 }
 
-static inline void clear_bit(int nr, void *_addr)
+static inline void clear_bit(unsigned long nr, void *_addr)
 {
     char *addr = _addr;
     BITMAP_ENTRY(nr, addr) &= ~(1UL << BITMAP_SHIFT(nr));
 }
 
-static inline void set_bit(int nr, void *_addr)
+static inline void set_bit(unsigned long nr, void *_addr)
 {
     char *addr = _addr;
     BITMAP_ENTRY(nr, addr) |= (1UL << BITMAP_SHIFT(nr));
 }
 
-static inline int test_and_clear_bit(int nr, void *addr)
+static inline int test_and_clear_bit(unsigned long nr, void *addr)
 {
     int oldbit = test_bit(nr, addr);
     clear_bit(nr, addr);
     return oldbit;
 }
 
-static inline int test_and_set_bit(int nr, void *addr)
+static inline int test_and_set_bit(unsigned long nr, void *addr)
 {
     int oldbit = test_bit(nr, addr);
     set_bit(nr, addr);
@@ -67,11 +67,11 @@ static inline int test_and_set_bit(int nr, void *addr)
 }
 
 static inline void bitmap_or(void *_dst, const void *_other,
-                             int nr_bits)
+                             unsigned long nr_bits)
 {
     char *dst = _dst;
     const char *other = _other;
-    int i;
+    unsigned long i;
     for ( i = 0; i < bitmap_size(nr_bits); ++i )
         dst[i] |= other[i];
 }
--
generated by git-patchbot for /home/xen/git/xen.git#master



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.