Re: [PATCH v2 1/4] panic: Add panic_in_progress helper
From: Stephen Brennan
Date: Thu Jan 27 2022 - 11:03:01 EST
On 1/27/22 06:34, Petr Mladek wrote:
On Wed 2022-01-26 15:02:33, Stephen Brennan wrote:
This helper will be used in printk code to avoid deadlocks during
panic().
Suggested-by: Petr Mladek <pmladek@xxxxxxxx>
Signed-off-by: Stephen Brennan <stephen.s.brennan@xxxxxxxxxx>
Reviewed-by: Petr Mladek <pmladek@xxxxxxxx>
Best Regards,
Petr
Hi Petr,
Thanks for the review, however over the night I received two kernel test
robot emails. One indicating a new build error caused by this change on
m68k arch, and the other adding a new warning on riscv. From what I can
tell, the issues are circular dependencies in #includes. So it may be
better to either return to the macro, or move this static inline down to
kernel/printk/printk.c. I think moving it into kernel/printk/printk.c
makes most sense given that the macro requires the correct #includes anyway.
Thanks,
Stephen
------------- m68k
In file included from include/asm-generic/preempt.h:5,
from ./arch/m68k/include/generated/asm/preempt.h:1,
from include/linux/preempt.h:78,
from arch/m68k/include/asm/irqflags.h:6,
from include/linux/irqflags.h:16,
from arch/m68k/include/asm/atomic.h:6,
from include/linux/atomic.h:7,
from include/linux/panic.h:7,
from include/asm-generic/bug.h:21,
from arch/m68k/include/asm/bug.h:32,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
include/linux/thread_info.h: In function 'copy_overflow':
>> include/linux/thread_info.h:214:9: error: implicit declaration of
function 'WARN' [-Werror=implicit-function-declaration]
214 | WARN(1, "Buffer overflow detected (%d < %lu)!\n",
size, count);
| ^~~~
include/linux/thread_info.h: In function 'check_copy_size':
>> include/linux/thread_info.h:230:13: error: implicit declaration of
function 'WARN_ON_ONCE' [-Werror=implicit-function-declaration]
230 | if (WARN_ON_ONCE(bytes > INT_MAX))
| ^~~~~~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:121: kernel/bounds.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [Makefile:1191: prepare0] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:219: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.
----------------- riscv:
In file included from arch/riscv/include/asm/atomic.h:19,
from include/linux/atomic.h:7,
from include/linux/panic.h:7,
from include/asm-generic/bug.h:21,
from arch/riscv/include/asm/bug.h:83,
from include/linux/bug.h:5,
from include/linux/page-flags.h:10,
from kernel/bounds.c:10:
arch/riscv/include/asm/atomic.h: In function 'arch_atomic_xchg_relaxed':
>> arch/riscv/include/asm/cmpxchg.h:35:17: error: implicit declaration
of function 'BUILD_BUG' [-Werror=implicit-function-declaration]
35 | BUILD_BUG();
\
| ^~~~~~~~~
arch/riscv/include/asm/atomic.h:249:16: note: in expansion of macro
'__xchg_relaxed'
249 | return __xchg_relaxed(&(v->counter), n, size);
\
| ^~~~~~~~~~~~~~
arch/riscv/include/asm/atomic.h:295:9: note: in expansion of macro
'ATOMIC_OP'
295 | ATOMIC_OP(int, , 4)
\
| ^~~~~~~~~
arch/riscv/include/asm/atomic.h:299:1: note: in expansion of macro
'ATOMIC_OPS'
299 | ATOMIC_OPS()
| ^~~~~~~~~~
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:121: kernel/bounds.s] Error 1
make[2]: Target '__build' not remade because of errors.
make[1]: *** [Makefile:1191: prepare0] Error 2
make[1]: Target 'prepare' not remade because of errors.
make: *** [Makefile:219: __sub-make] Error 2
make: Target 'prepare' not remade because of errors.