Re: [PATCH] trace, kasan: silence Kasan warning in check_stack

From: Andrey Ryabinin
Date: Tue Feb 09 2016 - 08:39:16 EST


On 02/08/2016 09:39 PM, Yang Shi wrote:
> When enabling stack trace via "echo 1 > /proc/sys/kernel/stack_tracer_enabled",
> the below KASAN warning is triggered:
>
> BUG: KASAN: stack-out-of-bounds in check_stack+0x344/0x848 at addr ffffffc0689ebab8
> Read of size 8 by task ksoftirqd/4/29
> page:ffffffbdc3a27ac0 count:0 mapcount:0 mapping: (null) index:0x0
> flags: 0x0()
> page dumped because: kasan: bad access detected
> CPU: 4 PID: 29 Comm: ksoftirqd/4 Not tainted 4.5.0-rc1 #129
> Hardware name: Freescale Layerscape 2085a RDB Board (DT)
> Call trace:
> [<ffffffc000091300>] dump_backtrace+0x0/0x3a0
> [<ffffffc0000916c4>] show_stack+0x24/0x30
> [<ffffffc0009bbd78>] dump_stack+0xd8/0x168
> [<ffffffc000420bb0>] kasan_report_error+0x6a0/0x920
> [<ffffffc000421688>] kasan_report+0x70/0xb8
> [<ffffffc00041f7f0>] __asan_load8+0x60/0x78
> [<ffffffc0002e05c4>] check_stack+0x344/0x848
> [<ffffffc0002e0c8c>] stack_trace_call+0x1c4/0x370
> [<ffffffc0002af558>] ftrace_ops_no_ops+0x2c0/0x590
> [<ffffffc00009f25c>] ftrace_graph_call+0x0/0x14
> [<ffffffc0000881bc>] fpsimd_thread_switch+0x24/0x1e8
> [<ffffffc000089864>] __switch_to+0x34/0x218
> [<ffffffc0011e089c>] __schedule+0x3ac/0x15b8
> [<ffffffc0011e1f6c>] schedule+0x5c/0x178
> [<ffffffc0001632a8>] smpboot_thread_fn+0x350/0x960
> [<ffffffc00015b518>] kthread+0x1d8/0x2b0
> [<ffffffc0000874d0>] ret_from_fork+0x10/0x40
> Memory state around the buggy address:
> ffffffc0689eb980: 00 00 00 00 00 00 00 00 f1 f1 f1 f1 00 f4 f4 f4
> ffffffc0689eba00: f3 f3 f3 f3 00 00 00 00 00 00 00 00 00 00 00 00
>> ffffffc0689eba80: 00 00 f1 f1 f1 f1 00 f4 f4 f4 f3 f3 f3 f3 00 00
> ^
> ffffffc0689ebb00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> ffffffc0689ebb80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>
> The stacker tracer traverses the whole kernel stack when saving the max stack
> trace. It may touch the stack red zones to cause the warning. So, just disable
> the instrumentation to silence the warning.
>
> Signed-off-by: Yang Shi <yang.shi@xxxxxxxxxx>

Acked-by: Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx>