android_kernel_oneplus_msm8998/arch/x86/platform/efi
David Woodhouse 7ec3912554 x86/speculation: Use IBRS if available before calling into firmware
commit dd84441a797150dcc49298ec95c459a8891d8bb1 upstream.

Retpoline means the kernel is safe because it has no indirect branches.
But firmware isn't, so use IBRS for firmware calls if it's available.

Block preemption while IBRS is set, although in practice the call sites
already had to be doing that.

Ignore hpwdt.c for now. It's taking spinlocks and calling into firmware
code, from an NMI handler. I don't want to touch that with a bargepole.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: arjan.van.de.ven@intel.com
Cc: bp@alien8.de
Cc: dave.hansen@intel.com
Cc: jmattson@google.com
Cc: karahmed@amazon.de
Cc: kvm@vger.kernel.org
Cc: pbonzini@redhat.com
Cc: rkrcmar@redhat.com
Link: http://lkml.kernel.org/r/1519037457-7643-2-git-send-email-dwmw@amazon.co.uk
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[ Srivatsa: Backported to 4.4.y, patching the efi_call_virt() family of functions,
  which are the 4.4.y-equivalents of arch_efi_call_virt_setup()/teardown() ]
Signed-off-by: Srivatsa S. Bhat <srivatsa@csail.mit.edu>
Reviewed-by: Matt Helsley (VMware) <matt.helsley@gmail.com>
Reviewed-by: Alexey Makhalov <amakhalov@vmware.com>
Reviewed-by: Bo Gan <ganb@vmware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-07-25 10:18:21 +02:00
..
early_printk.c x86/efi: earlyprintk=efi,keep fix 2014-05-03 06:39:06 +01:00
efi-bgrt.c x86/efi-bgrt: Replace early_memremap() with memremap() 2017-12-05 11:22:50 +01:00
efi.c Revert "x86/efi: Build our own page table structures" 2017-12-16 10:33:57 +01:00
efi_32.c Revert "x86/efi: Build our own page table structures" 2017-12-16 10:33:57 +01:00
efi_64.c x86/speculation: Use IBRS if available before calling into firmware 2018-07-25 10:18:21 +02:00
efi_stub_32.S x86/efi: Mark initialization code as such 2014-10-03 18:41:03 +01:00
efi_stub_64.S Revert "x86/efi: Hoist page table switching code into efi_call_virt()" 2017-12-16 10:33:57 +01:00
efi_thunk_64.S x86/efi: Avoid triple faults during EFI mixed mode calls 2015-02-13 15:42:56 +00:00
Makefile x86/efi: Move all workarounds to a separate file quirks.c 2014-06-19 11:14:33 +01:00
quirks.c x86/reboot: Add EFI reboot quirk for ACPI Hardware Reduced flag 2014-07-18 21:23:52 +01:00