From: Josh Law <objecting@objecting.org>
To: Masami Hiramatsu <mhiramat@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>
Cc: linux-trace-kernel@vger.kernel.org, linux-kernel@vger.kernel.org,
Josh Law <objecting@objecting.org>
Subject: [PATCH v2 00/14] bootconfig: fixes, cleanups, and modernization
Date: Sat, 14 Mar 2026 21:55:12 +0000 [thread overview]
Message-ID: <20260314215526.108651-1-objecting@objecting.org> (raw)
This series addresses a collection of issues found during a review of
lib/bootconfig.c and include/linux/bootconfig.h, ranging from an
off-by-one in a bounds check to coding style and API modernization.
Changes since v1:
- Dropped "return empty string instead of NULL from
xbc_node_get_data()" — returning "" causes false matches in
xbc_node_match_prefix() because strncmp(..., "", 0) always
returns 0.
Bug fixes:
- Fix off-by-one in xbc_verify_tree() where a next-node index equal
to xbc_node_num passes the bounds check despite being out of range
(patch 8).
- Move xbc_node_num increment to after xbc_init_node() validation
so a failed init does not leave a partially initialized node
counted in the array (patch 9).
Correctness:
- Add missing __init annotations to skip_comment() and
skip_spaces_until_newline() so their memory can be reclaimed
after init (patch 1).
- Narrow the flag parameter in node creation helpers from uint32_t
to uint16_t to match the xbc_node.data field width (patch 6).
- Constify the xbc_calc_checksum() data parameter since it only
reads the buffer (patch 12).
Cleanups:
- Fix comment typos (patches 2-3), missing blank line before
kerneldoc (patch 4), inconsistent if/else bracing (patches 5, 7).
- Drop redundant memset after memblock_alloc which already returns
zeroed memory; switch the userspace path from malloc to calloc
to match (patch 10).
Modernization:
- Replace open-coded __attribute__((__packed__)) with the __packed
macro, adding the definition to the tools/bootconfig shim header
(patches 11, 14).
- Replace the catch-all linux/kernel.h include with the specific
headers needed: linux/cache.h, linux/compiler.h, and
linux/sprintf.h (patch 13).
Build-tested with both the in-kernel build (lib/bootconfig.o,
init/main.o) and the userspace tools/bootconfig build. All 70
tools/bootconfig test cases pass.
Josh Law (14):
lib/bootconfig: add missing __init annotations to static helpers
lib/bootconfig: fix typo "initiized" in xbc_root_node() kerneldoc
lib/bootconfig: fix typo "uder" in xbc_node_find_next_leaf()
lib/bootconfig: add blank line before xbc_get_info() kerneldoc
lib/bootconfig: fix inconsistent if/else bracing
lib/bootconfig: narrow flag parameter type from uint32_t to uint16_t
lib/bootconfig: fix inconsistent if/else bracing in __xbc_add_key()
lib/bootconfig: fix off-by-one in xbc_verify_tree() next node check
lib/bootconfig: increment xbc_node_num after node init succeeds
lib/bootconfig: drop redundant memset of xbc_nodes
bootconfig: use __packed macro for struct xbc_node
bootconfig: constify xbc_calc_checksum() data parameter
lib/bootconfig: replace linux/kernel.h with specific includes
bootconfig: add __packed definition to tools/bootconfig shim header
include/linux/bootconfig.h | 6 +--
lib/bootconfig.c | 47 ++++++++++++---------
tools/bootconfig/include/linux/bootconfig.h | 1 +
3 files changed, 30 insertions(+), 24 deletions(-)
--
2.34.1
next reply other threads:[~2026-03-14 21:55 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-14 21:55 Josh Law [this message]
2026-03-14 21:55 ` [PATCH 01/14] lib/bootconfig: add missing __init annotations to static helpers Josh Law
2026-03-14 21:55 ` [PATCH 02/14] lib/bootconfig: fix typo "initiized" in xbc_root_node() kerneldoc Josh Law
2026-03-14 21:55 ` [PATCH 03/14] lib/bootconfig: fix typo "uder" in xbc_node_find_next_leaf() Josh Law
2026-03-14 21:55 ` [PATCH 04/14] lib/bootconfig: add blank line before xbc_get_info() kerneldoc Josh Law
2026-03-14 21:55 ` [PATCH 05/14] lib/bootconfig: fix inconsistent if/else bracing Josh Law
2026-03-14 21:55 ` [PATCH 06/14] lib/bootconfig: narrow flag parameter type from uint32_t to uint16_t Josh Law
2026-03-14 21:55 ` [PATCH 07/14] lib/bootconfig: fix inconsistent if/else bracing in __xbc_add_key() Josh Law
2026-03-14 21:55 ` [PATCH 08/14] lib/bootconfig: fix off-by-one in xbc_verify_tree() next node check Josh Law
2026-03-14 21:55 ` [PATCH 09/14] lib/bootconfig: increment xbc_node_num after node init succeeds Josh Law
2026-03-14 21:55 ` [PATCH 10/14] lib/bootconfig: drop redundant memset of xbc_nodes Josh Law
2026-03-14 21:55 ` [PATCH 11/14] bootconfig: use __packed macro for struct xbc_node Josh Law
2026-03-14 21:55 ` [PATCH 12/14] bootconfig: constify xbc_calc_checksum() data parameter Josh Law
2026-03-14 21:55 ` [PATCH 13/14] lib/bootconfig: replace linux/kernel.h with specific includes Josh Law
2026-03-14 21:55 ` [PATCH 14/14] bootconfig: add __packed definition to tools/bootconfig shim header Josh Law
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=20260314215526.108651-1-objecting@objecting.org \
--to=objecting@objecting.org \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mhiramat@kernel.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.