x86/mm: Prepare sme_encrypt_kernel() for PAGE aligned encryption
authorTom Lendacky <thomas.lendacky@amd.com>
Wed, 10 Jan 2018 19:26:26 +0000 (13:26 -0600)
committerIngo Molnar <mingo@kernel.org>
Tue, 16 Jan 2018 00:50:58 +0000 (01:50 +0100)
commitcc5f01e28d6c60f274fd1e33b245f679f79f543c
tree8335713024cc0e1d16c8e07c06ba8cc45ea3ae29
parent2b5d00b6c2cdd94f6d6a494a6f6c0c0fc7b8e711
x86/mm: Prepare sme_encrypt_kernel() for PAGE aligned encryption

In preparation for encrypting more than just the kernel, the encryption
support in sme_encrypt_kernel() needs to support 4KB page aligned
encryption instead of just 2MB large page aligned encryption.

Update the routines that populate the PGD to support non-2MB aligned
addresses.  This is done by creating PTE page tables for the start
and end portion of the address range that fall outside of the 2MB
alignment.  This results in, at most, two extra pages to hold the
PTE entries for each mapping of a range.

Tested-by: Gabriel Craciunescu <nix.or.die@gmail.com>
Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
Reviewed-by: Borislav Petkov <bp@suse.de>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brijesh Singh <brijesh.singh@amd.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/20180110192626.6026.75387.stgit@tlendack-t1.amdoffice.net
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/mm/mem_encrypt.c
arch/x86/mm/mem_encrypt_boot.S