• Yury Norov's avatar
    lib/string: add strnchrnul() · 0bee0cec
    Yury Norov authored
    Patch series "lib: rework bitmap_parse", v5.
    
    Similarl to the recently revisited bitmap_parselist(), bitmap_parse() is
    ineffective and overcomplicated.  This series reworks it, aligns its
    interface with bitmap_parselist() and makes it simpler to use.
    
    The series also adds a test for the function and fixes usage of it in
    cpumask_parse() according to the new design - drops the calculating of
    length of an input string.
    
    bitmap_parse() takes the array of numbers to be put into the map in the BE
    order which is reversed to the natural LE order for bitmaps.  For example,
    to construct bitmap containing a bit on the position 42, we have to put a
    line '400,0'.  Current implementation reads chunk one by one from the
    beginning ('400' before '0') and makes bitmap shift after each successful
    parse.  It makes the complexity of the whole process as O(n^2).  We can do
    it in reverse direction ('0' before '400') and avoid shifting, but it
    requires reverse parsing helpers.
    
    This patch (of 7):
    
    New function works like strchrnul() with a length limited string.
    
    Link: http://lkml.kernel.org/r/20200102043031.30357-2-yury.norov@gmail.comSigned-off-by: default avatarYury Norov <yury.norov@gmail.com>
    Reviewed-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk>
    Cc: Amritha Nambiar <amritha.nambiar@intel.com>
    Cc: Willem de Bruijn <willemb@google.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: "Tobin C . Harding" <tobin@kernel.org>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: Miklos Szeredi <mszeredi@redhat.com>
    Cc: Vineet Gupta <vineet.gupta1@synopsys.com>
    Cc: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    0bee0cec
string.c 24 KB