23 May, 2018

1 commit

  • commit 1e3054b98c5415d5cb5f8824fc33b548ae5644c3 upstream.

    I had neglected to increment the error counter when the tests failed,
    which made the tests noisy when they fail, but not actually return an
    error code.

    Link: http://lkml.kernel.org/r/20180509114328.9887-1-mpe@ellerman.id.au
    Fixes: 3cc78125a081 ("lib/test_bitmap.c: add optimisation tests")
    Signed-off-by: Matthew Wilcox
    Signed-off-by: Michael Ellerman
    Reported-by: Michael Ellerman
    Tested-by: Michael Ellerman
    Reviewed-by: Kees Cook
    Cc: Yury Norov
    Cc: Andy Shevchenko
    Cc: Geert Uytterhoeven
    Cc: [4.13+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Matthew Wilcox
     

19 Apr, 2018

1 commit

  • commit 8351760ff5b2042039554b4948ddabaac644a976 upstream.

    syzbot is catching stalls at __bitmap_parselist()
    (https://syzkaller.appspot.com/bug?id=ad7e0351fbc90535558514a71cd3edc11681997a).
    The trigger is

    unsigned long v = 0;
    bitmap_parselist("7:,", &v, BITS_PER_LONG);

    which results in hitting infinite loop at

    while (a
    Reported-by: Tetsuo Handa
    Reported-by: syzbot
    Cc: Noam Camus
    Cc: Rasmus Villemoes
    Cc: Matthew Wilcox
    Cc: Mauro Carvalho Chehab
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Greg Kroah-Hartman

    Yury Norov
     

14 Sep, 2017

1 commit

  • With gcc 4.1.2:

    lib/test_bitmap.c:189: warning: integer constant is too large for `long' type
    lib/test_bitmap.c:190: warning: integer constant is too large for `long' type
    lib/test_bitmap.c:194: warning: integer constant is too large for `long' type
    lib/test_bitmap.c:195: warning: integer constant is too large for `long' type

    Add the missing "ULL" suffix to fix this.

    Link: http://lkml.kernel.org/r/1505040523-31230-1-git-send-email-geert@linux-m68k.org
    Fixes: 60ef690018b262dd ("bitmap: introduce BITMAP_FROM_U64()")
    Signed-off-by: Geert Uytterhoeven
    Acked-by: Yury Norov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     

09 Sep, 2017

2 commits

  • The macro is the compile-time analogue of bitmap_from_u64() with the same
    purpose: convert the 64-bit number to the properly ordered pair of 32-bit
    parts, suitable for filling the bitmap in 32-bit BE environment.

    Use it to make test_bitmap_parselist() correct for 32-bit BE ABIs.

    Tested on BE mips/qemu.

    [akpm@linux-foundation.org: tweak code comment]
    Link: http://lkml.kernel.org/r/20170810172916.24144-1-ynorov@caviumnetworks.com
    Signed-off-by: Yury Norov
    Cc: Noam Camus
    Cc: Rasmus Villemoes
    Cc: Matthew Wilcox
    Cc: Mauro Carvalho Chehab
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yury Norov
     
  • Do some basic checks for bitmap_parselist().

    [akpm@linux-foundation.org: fix printk warning]
    Link: http://lkml.kernel.org/r/20170807225438.16161-2-ynorov@caviumnetworks.com
    Signed-off-by: Yury Norov
    Cc: Noam Camus
    Cc: Rasmus Villemoes
    Cc: Matthew Wilcox
    Cc: Mauro Carvalho Chehab
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yury Norov
     

11 Jul, 2017

2 commits

  • We have eight users calling bitmap_clear for a single bit and seventeen
    calling bitmap_set for a single bit. Rather than fix all of them to
    call __clear_bit or __set_bit, turn bitmap_clear and bitmap_set into
    inline functions and make this special case efficient.

    Link: http://lkml.kernel.org/r/20170628153221.11322-3-willy@infradead.org
    Signed-off-by: Matthew Wilcox
    Acked-by: Rasmus Villemoes
    Cc: Martin Schwidefsky
    Cc: Matthew Wilcox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • Patch series "Bitmap optimisations", v2.

    These three bitmap patches use more efficient specialisations when the
    compiler can figure out that it's safe to do so. Thanks to Rasmus's
    eagle eyes, a nasty bug in v1 was avoided, and I've added a test case
    which would have caught it.

    This patch (of 4):

    This version of the test is actually a no-op; the next patch will enable
    it.

    Link: http://lkml.kernel.org/r/20170628153221.11322-2-willy@infradead.org
    Signed-off-by: Matthew Wilcox
    Cc: Rasmus Villemoes
    Cc: Martin Schwidefsky
    Cc: Matthew Wilcox
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     

20 Feb, 2016

1 commit