On Sat, 2 Jul 2022 16:32:52 +0800 kernel test robot <lkp@xxxxxxxxx> wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-unstable > head: 706370e5c2ea7bb4544eee6e1172c4d68117a526 > commit: d845587c05fd4ae52aaa0cd5c8939e8f4793301f [302/323] x86/mm: move protection_map[] inside the platform > config: x86_64-defconfig (https://download.01.org/0day-ci/archive/20220702/202207021647.Jb0wNWF5-lkp@xxxxxxxxx/config) > compiler: gcc-11 (Debian 11.3.0-3) 11.3.0 > reproduce (this is a W=1 build): > # https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git/commit/?id=d845587c05fd4ae52aaa0cd5c8939e8f4793301f > git remote add akpm-mm https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git > git fetch --no-tags akpm-mm mm-unstable > git checkout d845587c05fd4ae52aaa0cd5c8939e8f4793301f > # save the config file > mkdir build_dir && cp config build_dir/.config > make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash arch/x86/mm/ > > If you fix the issue, kindly add following tag where applicable > Reported-by: kernel test robot <lkp@xxxxxxxxx> > > All warnings (new ones prefixed by >>): > > >> arch/x86/mm/pgprot.c:26:6: warning: no previous prototype for 'add_encrypt_protection_map' [-Wmissing-prototypes] > 26 | void add_encrypt_protection_map(void) > | ^~~~~~~~~~~~~~~~~~~~~~~~~~ > > > vim +/add_encrypt_protection_map +26 arch/x86/mm/pgprot.c > > 25 > > 26 void add_encrypt_protection_map(void) > 27 { > 28 unsigned int i; > 29 > 30 for (i = 0; i < ARRAY_SIZE(protection_map); i++) > 31 protection_map[i] = pgprot_encrypted(protection_map[i]); > 32 } > 33 Something like this? arch/x86/include/asm/mem_encrypt.h | 2 ++ arch/x86/mm/mem_encrypt_amd.c | 3 +-- arch/x86/mm/pgprot.c | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) --- a/arch/x86/include/asm/mem_encrypt.h~x86-mm-move-protection_map-inside-the-platform-fix +++ a/arch/x86/include/asm/mem_encrypt.h @@ -89,6 +89,8 @@ static inline void mem_encrypt_free_decr /* Architecture __weak replacement functions */ void __init mem_encrypt_init(void); +void add_encrypt_protection_map(void); + /* * The __sme_pa() and __sme_pa_nodebug() macros are meant for use when * writing to or comparing values from the cr3 register. Having the --- a/arch/x86/mm/mem_encrypt_amd.c~x86-mm-move-protection_map-inside-the-platform-fix +++ a/arch/x86/mm/mem_encrypt_amd.c @@ -26,6 +26,7 @@ #include <asm/tlbflush.h> #include <asm/fixmap.h> #include <asm/setup.h> +#include <asm/mem_encrypt.h> #include <asm/bootparam.h> #include <asm/set_memory.h> #include <asm/cacheflush.h> @@ -484,8 +485,6 @@ void __init early_set_mem_enc_dec_hyperc enc_dec_hypercall(vaddr, npages, enc); } -void add_encrypt_protection_map(void); - void __init sme_early_init(void) { if (!sme_me_mask) --- a/arch/x86/mm/pgprot.c~x86-mm-move-protection_map-inside-the-platform-fix +++ a/arch/x86/mm/pgprot.c @@ -3,6 +3,7 @@ #include <linux/export.h> #include <linux/mm.h> #include <asm/pgtable.h> +#include <asm/mem_encrypt.h> static pgprot_t protection_map[16] __ro_after_init = { [VM_NONE] = PAGE_NONE, _