Re: [PATCH] [v2] printk: avoid -Wsometimes-uninitialized warning

From: Petr Mladek
Date: Mon Oct 04 2021 - 05:22:49 EST


On Tue 2021-09-28 11:17:26, Chris Down wrote:
> Arnd Bergmann writes:
> > From: Arnd Bergmann <arnd@xxxxxxxx>
> >
> > clang notices that the pi_get_entry() function would use
> > uninitialized data if it was called with a non-NULL module
> > pointer on a kernel that does not support modules:
> >
> > kernel/printk/index.c:32:6: error: variable 'nr_entries' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
> > if (!mod) {
> > ^~~~
> > kernel/printk/index.c:38:13: note: uninitialized use occurs here
> > if (pos >= nr_entries)
> > ^~~~~~~~~~
> > kernel/printk/index.c:32:2: note: remove the 'if' if its condition is always true
> > if (!mod) {
> >
> > Rework the condition to make it clear to the compiler that we are always
> > in the second case. Unfortunately the #ifdef is still required as the
> > definition of 'struct module' is hidden when modules are disabled.
> >
> > Fixes: 337015573718 ("printk: Userspace format indexing support")
>
> This changelog should make it clear that this is theoretical and will never
> actually happen, which is salient information for people who are considering
> whether it should go in stable or similar.

IMHO, the sentence "Rework the condition to make it clear that this
is theoretical and will never actually happen" is rather clear.

Well, I am not a native speaker.

Anyway, I have pushed the patch into printk/linux.git, branch
for-5.16.

Best Regards,
Petr