• Seiichi Ikarashi's avatar
    x86: Fix rflags in FAKE_STACK_FRAME · 1cf8343f
    Seiichi Ikarashi authored
    The x86_64 kernel pushes the fake kernel stack in
    arch/x86/kernel/entry_64.S:FAKE_STACK_FRAME, and
    rflags register in it does not conform to the specification.
    
    Although Intel's manual[1] says bit 1 of it shall be set to 1,
    this bit is cleared to 0 on pushing the fake stack.
    
    [1] Intel(R) 64 and IA-32 Architectures Software Developer's Manual
        Vol.1 3-21 Figure 3-8. EFLAGS Register
    
    If it is not on purpose, it is better to be fixed, because
    it can lead some tools misunderstanding the stack frame. For example,
    "crash" utility[2] actually detects it and warns you like
    below:
    
           RIP: ffffffff8005dfa2  RSP: ffff8104ce0c7f58  RFLAGS: 00000200
           [...]
    
           bt: WARNING: possibly bogus exception frame
    Signed-off-by: default avatarSeiichi Ikarashi <s.ikarashi@jp.fujitsu.com>
    Tested-by: default avatarMasayoshi MIZUMA <m.mizuma@jp.fujitsu.com>
    Cc: Jan Beulich <JBeulich@suse.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    1cf8343f
core.c 23 KB