Re: security: oops on boot in __key_link_begin

Sasha Levin
2014-07-28T14:49:37Z

On 07/28/2014 07:32 AM, David Howells wrote:
> Sasha Levin <sasha.levin@oracle.com> wrote:
>
>> 23: 49 89 9f f0 00 00 00 mov %rbx,0xf0(%r15)
>> 2a: 55 push %rbp
>> 2b:* c1 b8 42 ff 49 8b 5f sarl $0x5f,-0x74b600be(%rax) <-- trapping instruction
>> 32: 10 49 8d adc %cl,-0x73(%rcx)
>
> I can't make any sense of this. It doesn't look anything like what I
> get when I disassemble assoc_array_insert(). There are no SARL or ADC
> instructions.
>
> Can you load your vmlinux into gdb and disassemble the function that holds the
> faulting instruction:
>
> gdb vmlinux
> (gdb) disassemble <RIP-value>
>
> Unfortunately, I'm not sure what the RIP value actually is because it's been
> replaced in the dump by source file + line number. It's not this:
>
> [ 31.330473] CR2: ffffffff8b49ff42
>
> though. That's RAX (ie. 0) plus the offset in the following instruction:
>
> sarl $0x5f,-0x74b600be(%rax) <-- trapping instruction

Hrm, the code on disk and in memory doesn't look anything like the one in the BUG...

I've tried keys-next and linux-next for today and it didn't reproduce, but it did
show up again when I applied the KASAN patchset (Cc Andrey).

Sorry for pointing a finger to the wrong place, it reproduced so reliably with the
same call trace that I didn't even suspect anything else.

Thanks,
Sasha