x86/insn-eval: Add support for 64-bit kernel mode
authorJann Horn <jannh@google.com>
Wed, 18 Dec 2019 23:11:47 +0000 (00:11 +0100)
committerBorislav Petkov <bp@suse.de>
Mon, 30 Dec 2019 19:17:15 +0000 (20:17 +0100)
commit7be4412721aee25e35583a20a896085dc6b99c3e
tree6c78dcebcb8f2655d555dde8ef3887f518b6e1c8
parentfd6988496e79a6a4bdb514a4655d2920209eb85d
x86/insn-eval: Add support for 64-bit kernel mode

To support evaluating 64-bit kernel mode instructions:

* Replace existing checks for user_64bit_mode() with a new helper that
checks whether code is being executed in either 64-bit kernel mode or
64-bit user mode.

* Select the GS base depending on whether the instruction is being
evaluated in kernel mode.

Signed-off-by: Jann Horn <jannh@google.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Alexander Potapenko <glider@google.com>
Cc: Andrey Konovalov <andreyknvl@google.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: "Gustavo A. R. Silva" <gustavo@embeddedor.com>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: kasan-dev@googlegroups.com
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Sean Christopherson <sean.j.christopherson@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: x86-ml <x86@kernel.org>
Link: https://lkml.kernel.org/r/20191218231150.12139-1-jannh@google.com
arch/x86/include/asm/ptrace.h
arch/x86/lib/insn-eval.c