A pile of fixes for x86:

 - Fix the I/O bitmap invalidation on XEN PV, which was overlooked in the
   recent ioperm/iopl rework. This caused the TSS and XEN's I/O bitmap to
   get out of sync.

 - Use the proper vectors for HYPERV.

 - Make disabling of stack protector for the entry code work with GCC
   builds which enable stack protector by default. Removing the option is
   not sufficient, it needs an explicit -fno-stack-protector to shut it
   off.

 - Mark check_user_regs() noinstr as it is called from noinstr code. The
   missing annotation causes it to be placed in the text section which
   makes it instrumentable.

 - Add the missing interrupt disable in exc_alignment_check()

 - Fixup a XEN_PV build dependency in the 32bit entry code

 - A few fixes to make the Clang integrated assembler happy

 - Move EFI stub build to the right place for out of tree builds

 - Make prepare_exit_to_usermode() static. It's not longer called from ASM
   code.
x86/boot: Don't add the EFI stub to targets

vmlinux-objs-y is added to targets, which currently means that the EFI
stub gets added to the targets as well. It shouldn't be added since it
is built elsewhere.

This confuses Makefile.build which interprets the EFI stub as a target
	$(obj)/$(objtree)/drivers/firmware/efi/libstub/lib.a
and will create drivers/firmware/efi/libstub/ underneath
arch/x86/boot/compressed, to hold this supposed target, if building
out-of-tree. [0]

Fix this by pulling the stub out of vmlinux-objs-y into efi-obj-y.

[0] See scripts/Makefile.build near the end:
    # Create directories for object files if they do not exist

Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Masahiro Yamada <masahiroy@kernel.org>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lkml.kernel.org/r/20200715032631.1562882-1-nivedita@alum.mit.edu

1 file changed