[PATCH 1/4] arm64: ptdump: use seq_puts() in pt_dump_seq_puts() macro
Anshuman Khandual
anshuman.khandual at arm.com
Thu Dec 11 03:45:35 PST 2025
On 18/10/25 10:34 PM, Josephine Pfeiffer wrote:
> The pt_dump_seq_puts() macro incorrectly uses seq_printf() instead of
> seq_puts(). This is both a performance issue and conceptually wrong,
> as the macro name suggests plain string output (puts) but the
> implementation uses formatted output (printf).
>
> All call sites pass constant strings without format specifiers, so
> using seq_printf() adds unnecessary overhead for format string parsing.
>
> This bug was introduced in commit ae5d1cf358a5 ("arm64: dump: Make the
> page table dumping seq_file optional") in 2016, where seq_puts() was
> replaced with a new pt_dump_seq_puts() macro that mistakenly used
> seq_printf().
>
> Fixes: ae5d1cf358a5 ("arm64: dump: Make the page table dumping seq_file optional")
> Signed-off-by: Josephine Pfeiffer <hi at josie.lol>
> ---
> arch/arm64/mm/ptdump.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/arm64/mm/ptdump.c b/arch/arm64/mm/ptdump.c
> index ab9899ca1e5f..a35fcd62bf75 100644
> --- a/arch/arm64/mm/ptdump.c
> +++ b/arch/arm64/mm/ptdump.c
> @@ -35,7 +35,7 @@
> #define pt_dump_seq_puts(m, fmt) \
> ({ \
> if (m) \
> - seq_printf(m, fmt); \
> + seq_puts(m, fmt); \
> })
>
> static const struct ptdump_prot_bits pte_bits[] = {
LGTM and also did no see any problem while dumping via the
sysfs file /sys/kernel/debug/kernel_page_tables
Reviewed-by: Anshuman Khandual <anshuman.khandual at arm.com>
More information about the linux-arm-kernel
mailing list