Re: stack frame unwindind KASAN errors

From: Daniel J Blueman
Date: Mon Mar 06 2017 - 21:05:18 EST


On 7 March 2017 at 00:40, Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote:
> 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.

Very good; I don't see the KASAN warnings with 4.10 in the same environment.

Thanks,
Daniel
--
Daniel J Blueman