Messages in this thread Patch in this message | | | From | Rasmus Villemoes <> | Subject | [PATCH 11/13] lib/test_printf.c: add test for large bitmaps | Date | Tue, 20 Oct 2015 22:30:11 +0200 |
| |
Following "lib/vsprintf.c: expand field_width to 24 bits", let's add a test to see that we now actually support bitmaps with 65536 bits.
Cc: Maurizio Lombardi <mlombard@redhat.com> Cc: Kees Cook <keescook@chromium.org> Cc: Tejun Heo <tj@kernel.org> Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> --- lib/test_printf.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+)
diff --git a/lib/test_printf.c b/lib/test_printf.c index 8fca007d9bcd..19fa411dba78 100644 --- a/lib/test_printf.c +++ b/lib/test_printf.c @@ -12,6 +12,7 @@ #include <linux/slab.h> #include <linux/string.h> +#include <linux/bitmap.h> #include <linux/socket.h> #include <linux/in.h> @@ -312,6 +313,20 @@ struct_clk(void) } static void __init +large_bitmap(void) +{ + const int nbits = 1 << 16; + unsigned long *bits = kcalloc(BITS_TO_LONGS(nbits), sizeof(long), GFP_KERNEL); + if (!bits) + return; + + bitmap_set(bits, 1, 20); + bitmap_set(bits, 60000, 15); + test("1-20,60000-60014", "%*pbl", nbits, bits); + kfree(bits); +} + +static void __init bitmap(void) { DECLARE_BITMAP(bits, 20); @@ -330,6 +345,8 @@ bitmap(void) bitmap_fill(bits, 20); test("fffff|fffff", "%20pb|%*pb", bits, 20, bits); test("0-19|0-19", "%20pbl|%*pbl", bits, 20, bits); + + large_bitmap(); } static void __init -- 2.6.1
| |