]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blob - arch/x86/mm/mem_encrypt.c
x86/mm: Provide general kernel support for memory encryption
[mirror_ubuntu-bionic-kernel.git] / arch / x86 / mm / mem_encrypt.c
1 /*
2 * AMD Memory Encryption Support
3 *
4 * Copyright (C) 2016 Advanced Micro Devices, Inc.
5 *
6 * Author: Tom Lendacky <thomas.lendacky@amd.com>
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 */
12
13 #include <linux/linkage.h>
14 #include <linux/init.h>
15 #include <linux/mm.h>
16
17 /*
18 * Since SME related variables are set early in the boot process they must
19 * reside in the .data section so as not to be zeroed out when the .bss
20 * section is later cleared.
21 */
22 unsigned long sme_me_mask __section(.data) = 0;
23 EXPORT_SYMBOL_GPL(sme_me_mask);
24
25 void __init sme_early_init(void)
26 {
27 unsigned int i;
28
29 if (!sme_me_mask)
30 return;
31
32 early_pmd_flags = __sme_set(early_pmd_flags);
33
34 __supported_pte_mask = __sme_set(__supported_pte_mask);
35
36 /* Update the protection map with memory encryption mask */
37 for (i = 0; i < ARRAY_SIZE(protection_map); i++)
38 protection_map[i] = pgprot_encrypted(protection_map[i]);
39 }
40
41 void __init sme_encrypt_kernel(void)
42 {
43 }
44
45 void __init sme_enable(void)
46 {
47 }