Re: [PATCH] vsnprintf: drop __printf() attributes on binary printing functions
From: Arnd Bergmann
Date: Thu Feb 05 2026 - 05:13:27 EST
On Thu, Feb 5, 2026, at 09:53, Petr Mladek wrote:
> On Wed 2026-02-04 14:26:23, Arnd Bergmann wrote:
>> Fixes: 6b2c1e30ad68 ("seq_file: Mark binary printing functions with __printf() attribute")
>> Fixes: 7bf819aa992f ("vsnprintf: Mark binary printing functions with __printf() attribute")
>
> From the commit message, it is not obvious why reverting these commits
> won't bring back the warnings in the modified functions.
>
> My understanding is that the warnings won't get back thanks to
> the commit bd67c1c3c353b6560 ("vsnprintf: Silence false positive
> GCC warning for va_format()") as explained by the original cover
> letter, see
> https://lore.kernel.org/all/20250321144822.324050-1-andriy.shevchenko@xxxxxxxxxxxxxxx/#t
>
> It would be worth to mentionin this in the commit message.
Unfortunately, I have not been able to reproduce the original
warnings at all. The va_format() warning and the patch to
silence that look entirely unrelated here, that was just the
compiler incorrectly identifying a function that does not even
take a format argument.
I'm sure some other intermediate change managed to shut up
the warnings, but I don't know which one. My best guess would
be that 938df695e98d ("vsprintf: associate the format state with
the format pointer") made gcc no longer warn about bstr_printf(),
but that predates Andy's patch and I can't easily revert it for
testing. Checking out a kernel before those patches does have
the warning on va_format() but not on the other ones.
>> Link: https://lore.kernel.org/all/CAADnVQK3eZp3yp35OUx8j1UBsQFhgsn5-4VReqAJ=68PaaKYmg@xxxxxxxxxxxxxx/
>> Closes: https://lore.kernel.org/oe-kbuild-all/202512061640.9hKTnB8p-lkp@xxxxxxxxx/
>> Reported-by: kernel test robot <lkp@xxxxxxxxx>
>> Suggested-by: Alexei Starovoitov <alexei.starovoitov@xxxxxxxxx>
>> Acked-by: Alexei Starovoitov <alexei.starovoitov@xxxxxxxxx>
>> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
>> ---
>> For reference, three additional patches are required before we can drop
>> the Makefile.warn line that currently hides these warnings:
>>
>> https://lore.kernel.org/lkml/20260203162546.2254900-1-arnd@xxxxxxxxxx/
>> https://lore.kernel.org/lkml/20260203163440.2674340-1-arnd@xxxxxxxxxx/
>> https://lore.kernel.org/lkml/20260203164545.3174910-1-arnd@xxxxxxxxxx/
>>
>> Tested using randconfig builds on arm/arm64/x86
>> ---
>> include/linux/seq_file.h | 1 -
>> include/linux/string.h | 4 ++--
>> 2 files changed, 2 insertions(+), 3 deletions(-)
>
> Otherwise, the change looks good to me. Feel free to use,
> ideally with the updated commit message:
>
> Acked-by: Petr Mladek <pmladek@xxxxxxxx>
>
> I wonder who should take this patch. Should it go via
> printk/bpf/tracing or another tree?
> Does anyone has any preference, please?
I think your tree makes most sense here, but I have no strong
preference.
Arnd