All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 00/14] bootconfig: fixes, cleanups, and modernization
@ 2026-03-14 21:55 Josh Law
  2026-03-14 21:55 ` [PATCH 01/14] lib/bootconfig: add missing __init annotations to static helpers Josh Law
                   ` (13 more replies)
  0 siblings, 14 replies; 15+ messages in thread
From: Josh Law @ 2026-03-14 21:55 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 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


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

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

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-03-14 21:55 [PATCH v2 00/14] bootconfig: fixes, cleanups, and modernization Josh Law
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

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.