Re: stack frame unwindind KASAN errors

From: Josh Poimboeuf
Date: Mon Mar 06 2017 - 11:50:21 EST


On Mon, Mar 06, 2017 at 02:52:01PM +0800, Daniel J Blueman wrote:
> Thanks Josh!
>
> With this patch, the KASAN warning still occurs, but at
> unwind_get_return_address+0x1d3/0x130 instead; the rest of the trace
> is identical.
>
> (gdb) list *(unwind_get_return_address+0x1d3)
> 0xffffffff8112bca3 is in unwind_get_return_address
> (./include/linux/compiler.h:243).
> 238 })
> 239
> 240 static __always_inline
> 241 void __read_once_size(const volatile void *p, void *res, int size)
> 242 {
> 243 __READ_ONCE_SIZE;

Looking deeper, I have an idea about what's going on:

https://quora.org/dmesg.txt

Each of the warnings seems to show an interrupt happening during an EFI
call. I'm guessing EFI modified the frame pointer, at least
temporarily, which confused the unwinder :-(

Would it be possible for you to test again with 4.10? It has some
additional unwinder output which should hopefully confirm my suspicions.

--
Josh