public inbox for linux-trace-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/15] bootconfig: fixes, cleanups, and modernization
@ 2026-03-14 21:45 Josh Law
  2026-03-14 21:45 ` [PATCH 01/15] lib/bootconfig: add missing __init annotations to static helpers Josh Law
                   ` (14 more replies)
  0 siblings, 15 replies; 16+ messages in thread
From: Josh Law @ 2026-03-14 21:45 UTC (permalink / raw)
  To: Masami Hiramatsu, Andrew Morton
  Cc: linux-trace-kernel, linux-kernel, Josh Law

This series addresses a collection of issues found during a review of
lib/bootconfig.c and include/linux/bootconfig.h, ranging from a
potential crash to coding style and API modernization.

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).
  - Fix xbc_node_get_data() returning NULL on WARN_ON, which causes
    NULL dereferences in callers that pass the result to strlen() or
    strcmp() without checking. Return an empty string instead so the
    WARN_ON remains non-fatal as intended (patch 15).
  - 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 (15):
  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
  lib/bootconfig: return empty string instead of NULL from
    xbc_node_get_data()

 include/linux/bootconfig.h                  |  6 +--
 lib/bootconfig.c                            | 51 +++++++++++----------
 tools/bootconfig/include/linux/bootconfig.h |  1 +
 3 files changed, 32 insertions(+), 26 deletions(-)

--
2.34.1


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2026-03-14 21:48 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-14 21:45 [PATCH 00/15] bootconfig: fixes, cleanups, and modernization Josh Law
2026-03-14 21:45 ` [PATCH 01/15] lib/bootconfig: add missing __init annotations to static helpers Josh Law
2026-03-14 21:45 ` [PATCH 02/15] lib/bootconfig: fix typo "initiized" in xbc_root_node() kerneldoc Josh Law
2026-03-14 21:45 ` [PATCH 03/15] lib/bootconfig: fix typo "uder" in xbc_node_find_next_leaf() Josh Law
2026-03-14 21:45 ` [PATCH 04/15] lib/bootconfig: add blank line before xbc_get_info() kerneldoc Josh Law
2026-03-14 21:45 ` [PATCH 05/15] lib/bootconfig: fix inconsistent if/else bracing Josh Law
2026-03-14 21:45 ` [PATCH 06/15] lib/bootconfig: narrow flag parameter type from uint32_t to uint16_t Josh Law
2026-03-14 21:45 ` [PATCH 07/15] lib/bootconfig: fix inconsistent if/else bracing in __xbc_add_key() Josh Law
2026-03-14 21:45 ` [PATCH 08/15] lib/bootconfig: fix off-by-one in xbc_verify_tree() next node check Josh Law
2026-03-14 21:45 ` [PATCH 09/15] lib/bootconfig: increment xbc_node_num after node init succeeds Josh Law
2026-03-14 21:45 ` [PATCH 10/15] lib/bootconfig: drop redundant memset of xbc_nodes Josh Law
2026-03-14 21:45 ` [PATCH 11/15] bootconfig: use __packed macro for struct xbc_node Josh Law
2026-03-14 21:45 ` [PATCH 12/15] bootconfig: constify xbc_calc_checksum() data parameter Josh Law
2026-03-14 21:45 ` [PATCH 13/15] lib/bootconfig: replace linux/kernel.h with specific includes Josh Law
2026-03-14 21:45 ` [PATCH 14/15] bootconfig: add __packed definition to tools/bootconfig shim header Josh Law
2026-03-14 21:45 ` [PATCH 15/15] lib/bootconfig: return empty string instead of NULL from xbc_node_get_data() Josh Law

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox