aboutsummaryrefslogtreecommitdiffstats
path: root/lib/test_bitmap.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/test_bitmap.c')
-rw-r--r--lib/test_bitmap.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/test_bitmap.c b/lib/test_bitmap.c
index e2cbd43d193c..252d3bddbe7d 100644
--- a/lib/test_bitmap.c
+++ b/lib/test_bitmap.c
@@ -333,10 +333,42 @@ static void __init test_bitmap_u32_array_conversions(void)
333 } 333 }
334} 334}
335 335
336#define __bitmap_set(a, b, c) bitmap_set(a, b, c)
337#define __bitmap_clear(a, b, c) bitmap_clear(a, b, c)
338
339static void noinline __init test_mem_optimisations(void)
340{
341 DECLARE_BITMAP(bmap1, 1024);
342 DECLARE_BITMAP(bmap2, 1024);
343 unsigned int start, nbits;
344
345 for (start = 0; start < 1024; start += 8) {
346 memset(bmap1, 0x5a, sizeof(bmap1));
347 memset(bmap2, 0x5a, sizeof(bmap2));
348 for (nbits = 0; nbits < 1024 - start; nbits += 8) {
349 bitmap_set(bmap1, start, nbits);
350 __bitmap_set(bmap2, start, nbits);
351 if (!bitmap_equal(bmap1, bmap2, 1024))
352 printk("set not equal %d %d\n", start, nbits);
353 if (!__bitmap_equal(bmap1, bmap2, 1024))
354 printk("set not __equal %d %d\n", start, nbits);
355
356 bitmap_clear(bmap1, start, nbits);
357 __bitmap_clear(bmap2, start, nbits);
358 if (!bitmap_equal(bmap1, bmap2, 1024))
359 printk("clear not equal %d %d\n", start, nbits);
360 if (!__bitmap_equal(bmap1, bmap2, 1024))
361 printk("clear not __equal %d %d\n", start,
362 nbits);
363 }
364 }
365}
366
336static int __init test_bitmap_init(void) 367static int __init test_bitmap_init(void)
337{ 368{
338 test_zero_fill_copy(); 369 test_zero_fill_copy();
339 test_bitmap_u32_array_conversions(); 370 test_bitmap_u32_array_conversions();
371 test_mem_optimisations();
340 372
341 if (failed_tests == 0) 373 if (failed_tests == 0)
342 pr_info("all %u tests passed\n", total_tests); 374 pr_info("all %u tests passed\n", total_tests);