On Sun, Jul 23, 2023 at 7:25 AM Yafang Shao <laoar.shao@xxxxxxxxx> wrote: > > On Sat, Jul 22, 2023 at 3:48 PM Arnd Bergmann <arnd@xxxxxxxxxx> wrote: > > > > From: Arnd Bergmann <arnd@xxxxxxxx> > > > > Splitting these out into separate helper functions means that we > > actually pass an uninitialized variable into another function call > > if dec_active() happens to not be inlined, and CONFIG_PREEMPT_RT > > is disabled: > > Do you mean that the compiler can remove the flags automatically when > dec_active() is inlined, but can't remove it automatically when > dec_active() is not inlined ? > If so, why can't we improve the compiler ? Agree. Sounds like a compiler bug. > If we have to change the kernel, what about the change below? To workaround the compiler bug we can simply init flag=0 to silence the warn, but even that is silly. Passing flag=0 into irqrestore is buggy.