diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-11-13 17:13:48 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-11-13 17:13:48 -0500 |
commit | d6ec9d9a4def52a5094237564eaf6f6979fd7a27 (patch) | |
tree | adfb80f83f04a021e82cb25227b64b1bb9e793dc /include/asm-generic | |
parent | 3e2014637c50e5d6a77cd63d5db6c209fe29d1b1 (diff) | |
parent | 91a6a6cfee8ad34ea4cc10a54c0765edfe437cdb (diff) |
Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 core updates from Ingo Molnar:
"Note that in this cycle most of the x86 topics interacted at a level
that caused them to be merged into tip:x86/asm - but this should be a
temporary phenomenon, hopefully we'll back to the usual patterns in
the next merge window.
The main changes in this cycle were:
Hardware enablement:
- Add support for the Intel UMIP (User Mode Instruction Prevention)
CPU feature. This is a security feature that disables certain
instructions such as SGDT, SLDT, SIDT, SMSW and STR. (Ricardo Neri)
[ Note that this is disabled by default for now, there are some
smaller enhancements in the pipeline that I'll follow up with in
the next 1-2 days, which allows this to be enabled by default.]
- Add support for the AMD SEV (Secure Encrypted Virtualization) CPU
feature, on top of SME (Secure Memory Encryption) support that was
added in v4.14. (Tom Lendacky, Brijesh Singh)
- Enable new SSE/AVX/AVX512 CPU features: AVX512_VBMI2, GFNI, VAES,
VPCLMULQDQ, AVX512_VNNI, AVX512_BITALG. (Gayatri Kammela)
Other changes:
- A big series of entry code simplifications and enhancements (Andy
Lutomirski)
- Make the ORC unwinder default on x86 and various objtool
enhancements. (Josh Poimboeuf)
- 5-level paging enhancements (Kirill A. Shutemov)
- Micro-optimize the entry code a bit (Borislav Petkov)
- Improve the handling of interdependent CPU features in the early
FPU init code (Andi Kleen)
- Build system enhancements (Changbin Du, Masahiro Yamada)
- ... plus misc enhancements, fixes and cleanups"
* 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (118 commits)
x86/build: Make the boot image generation less verbose
selftests/x86: Add tests for the STR and SLDT instructions
selftests/x86: Add tests for User-Mode Instruction Prevention
x86/traps: Fix up general protection faults caused by UMIP
x86/umip: Enable User-Mode Instruction Prevention at runtime
x86/umip: Force a page fault when unable to copy emulated result to user
x86/umip: Add emulation code for UMIP instructions
x86/cpufeature: Add User-Mode Instruction Prevention definitions
x86/insn-eval: Add support to resolve 16-bit address encodings
x86/insn-eval: Handle 32-bit address encodings in virtual-8086 mode
x86/insn-eval: Add wrapper function for 32 and 64-bit addresses
x86/insn-eval: Add support to resolve 32-bit address encodings
x86/insn-eval: Compute linear address in several utility functions
resource: Fix resource_size.cocci warnings
X86/KVM: Clear encryption attribute when SEV is active
X86/KVM: Decrypt shared per-cpu variables when SEV is active
percpu: Introduce DEFINE_PER_CPU_DECRYPTED
x86: Add support for changing memory encryption attribute in early boot
x86/io: Unroll string I/O when SEV is active
x86/boot: Add early boot support when running with SEV active
...
Diffstat (limited to 'include/asm-generic')
-rw-r--r-- | include/asm-generic/vmlinux.lds.h | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index e549bff87c5b..bdcd1caae092 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h | |||
@@ -688,7 +688,7 @@ | |||
688 | #define BUG_TABLE | 688 | #define BUG_TABLE |
689 | #endif | 689 | #endif |
690 | 690 | ||
691 | #ifdef CONFIG_ORC_UNWINDER | 691 | #ifdef CONFIG_UNWINDER_ORC |
692 | #define ORC_UNWIND_TABLE \ | 692 | #define ORC_UNWIND_TABLE \ |
693 | . = ALIGN(4); \ | 693 | . = ALIGN(4); \ |
694 | .orc_unwind_ip : AT(ADDR(.orc_unwind_ip) - LOAD_OFFSET) { \ | 694 | .orc_unwind_ip : AT(ADDR(.orc_unwind_ip) - LOAD_OFFSET) { \ |
@@ -779,6 +779,24 @@ | |||
779 | #endif | 779 | #endif |
780 | 780 | ||
781 | /* | 781 | /* |
782 | * Memory encryption operates on a page basis. Since we need to clear | ||
783 | * the memory encryption mask for this section, it needs to be aligned | ||
784 | * on a page boundary and be a page-size multiple in length. | ||
785 | * | ||
786 | * Note: We use a separate section so that only this section gets | ||
787 | * decrypted to avoid exposing more than we wish. | ||
788 | */ | ||
789 | #ifdef CONFIG_AMD_MEM_ENCRYPT | ||
790 | #define PERCPU_DECRYPTED_SECTION \ | ||
791 | . = ALIGN(PAGE_SIZE); \ | ||
792 | *(.data..percpu..decrypted) \ | ||
793 | . = ALIGN(PAGE_SIZE); | ||
794 | #else | ||
795 | #define PERCPU_DECRYPTED_SECTION | ||
796 | #endif | ||
797 | |||
798 | |||
799 | /* | ||
782 | * Default discarded sections. | 800 | * Default discarded sections. |
783 | * | 801 | * |
784 | * Some archs want to discard exit text/data at runtime rather than | 802 | * Some archs want to discard exit text/data at runtime rather than |
@@ -816,6 +834,7 @@ | |||
816 | . = ALIGN(cacheline); \ | 834 | . = ALIGN(cacheline); \ |
817 | *(.data..percpu) \ | 835 | *(.data..percpu) \ |
818 | *(.data..percpu..shared_aligned) \ | 836 | *(.data..percpu..shared_aligned) \ |
837 | PERCPU_DECRYPTED_SECTION \ | ||
819 | VMLINUX_SYMBOL(__per_cpu_end) = .; | 838 | VMLINUX_SYMBOL(__per_cpu_end) = .; |
820 | 839 | ||
821 | /** | 840 | /** |