Re: [PATCH 1/2] ARC: show_regs: avoid page allocator

From: Tetsuo Handa
Date: Thu Dec 20 2018 - 08:30:23 EST


On 2018/12/20 10:16, Vineet Gupta wrote:
> On 12/19/18 9:04 AM, Eugeniy Paltsev wrote:
>> As I can see x86 use print_vma_addr() in their show_signal_msg()
>> function which allocate page with __get_free_page(GFP_NOWAIT);
>
> Indeed with that the __get_free_page() lockdep splat is gone.
>
> There's a different one now hence my other patch.
>
> | [ARCLinux]# ./segv-null-ptr
> | potentially unexpected fatal signal 11.
> | BUG: sleeping function called from invalid context at kernel/fork.c:1011
> | in_atomic(): 1, irqs_disabled(): 0, pid: 70, name: segv-null-ptr
> | no locks held by segv-null-ptr/70.
> | CPU: 0 PID: 70 Comm: segv-null-ptr Not tainted 4.18.0+ #69
> |
> | Stack Trace:
> | arc_unwind_core+0xcc/0x100
> | ___might_sleep+0x17a/0x190
> | mmput+0x16/0xb8

Then, does mmput_async() help?

> | show_regs+0x52/0x310
> | get_signal+0x5ee/0x610
> | do_signal+0x2c/0x218
> | resume_user_mode_begin+0x90/0xd8