From: Yuri Norov <ynorov@marvell.com>
To: Andrew Morton <akpm@linux-foundation.org>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Rasmus Villemoes <linux@rasmusvillemoes.dk>,
Arnd Bergmann <arnd@arndb.de>, Kees Cook <keescook@chromium.org>,
Matthew Wilcox <willy@infradead.org>,
Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Cc: Yuri Norov <ynorov@marvell.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: [PATCH 0/4] rework bitmap_parselist
Date: Sun, 23 Dec 2018 09:44:32 +0000 [thread overview]
Message-ID: <20181223094422.4849-1-ynorov@marvell.com> (raw)
bitmap_parselist evolved from a pretty simple idea for long and now lacks
for refactoring. It is not structured, has nested loops and a set of
opaque-named variables. All this leads to extremely hard understanding
of the code. Once during the optimization of it I missed a scenario which
leads to kernel hangup. Tetsuo Handa spotted this and found it simpler to
rewrite the code instead fixing it. (Though, that attempt had some flaws.)
https://lkml.org/lkml/2018/4/1/93
Things are more complicated than they may be because bitmap_parselist()
is part of user interface, and its behavior should not change.
In this patchset __bitmap_parselist() is split to a set of smaller
functions doing only one thing.
Yury Norov (4):
bitmap_parselist: don't calculate length of the input string
bitmap_parselist: move part of logic to helpers
bitmap_parselist: rework input string parser
test_bitmap: add testcases for bitmap_parselist
lib/bitmap.c | 294 ++++++++++++++++++++++++++++++----------------
lib/test_bitmap.c | 18 ++-
2 files changed, 208 insertions(+), 104 deletions(-)
--
2.17.1
next reply other threads:[~2018-12-23 9:46 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-12-23 9:44 Yuri Norov [this message]
2018-12-23 9:44 ` [PATCH 1/4] bitmap_parselist: don't calculate length of the input string Yuri Norov
2018-12-23 9:44 ` [PATCH 2/4] bitmap_parselist: move part of logic to helpers Yuri Norov
2018-12-23 9:44 ` [PATCH 3/4] bitmap_parselist: rework input string parser Yuri Norov
2018-12-23 13:02 ` kbuild test robot
2019-01-09 16:01 ` Andy Shevchenko
2019-01-09 17:16 ` Yuri Norov
2018-12-23 9:45 ` [PATCH 4/4] test_bitmap: add testcases for bitmap_parselist Yuri Norov
2018-12-23 12:41 ` kbuild test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181223094422.4849-1-ynorov@marvell.com \
--to=ynorov@marvell.com \
--cc=akpm@linux-foundation.org \
--cc=andriy.shevchenko@linux.intel.com \
--cc=arnd@arndb.de \
--cc=keescook@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@rasmusvillemoes.dk \
--cc=penguin-kernel@I-love.SAKURA.ne.jp \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.