Hi Ashish, kernel test robot noticed the following build errors: [auto build test ERROR on tip/master] [also build test ERROR on linus/master next-20240410] [cannot apply to tip/x86/core tip/x86/mm tip/auto-latest] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Ashish-Kalra/efi-x86-skip-efi_arch_mem_reserve-in-case-of-kexec/20240410-044512 base: tip/master patch link: https://lore.kernel.org/r/b24885f5495f6b8ba2f9e825fda9188fcbf28231.1712694667.git.ashish.kalra%40amd.com patch subject: [PATCH v4 4/4] x86/snp: Convert shared memory back to private on kexec config: x86_64-rhel-8.3-rust (https://download.01.org/0day-ci/archive/20240410/202404102232.UKwWHSTE-lkp@xxxxxxxxx/config) compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240410/202404102232.UKwWHSTE-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202404102232.UKwWHSTE-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): >> arch/x86/kernel/sev.c:993:14: error: call to undeclared function 'pte_decrypted'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 993 | if (pte && pte_decrypted(*pte) && !pte_none(*pte)) { | ^ arch/x86/kernel/sev.c:1021:16: error: call to undeclared function 'pte_decrypted'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 1021 | if (!pte || !pte_decrypted(*pte) || pte_none(*pte)) | ^ >> arch/x86/kernel/sev.c:1041:7: error: call to undeclared function 'stop_memory_enc_conversion'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 1041 | if (!stop_memory_enc_conversion(wait_for_lock)) | ^ 3 errors generated. -- >> arch/x86/mm/mem_encrypt_amd.c:471:21: error: no member named 'enc_kexec_stop_conversion' in 'struct x86_guest' 471 | x86_platform.guest.enc_kexec_stop_conversion = snp_kexec_stop_conversion; | ~~~~~~~~~~~~~~~~~~ ^ >> arch/x86/mm/mem_encrypt_amd.c:472:21: error: no member named 'enc_kexec_unshare_mem' in 'struct x86_guest' 472 | x86_platform.guest.enc_kexec_unshare_mem = snp_kexec_unshare_mem; | ~~~~~~~~~~~~~~~~~~ ^ 2 errors generated. vim +/pte_decrypted +993 arch/x86/kernel/sev.c 970 971 static void unshare_all_memory(void) 972 { 973 unsigned long addr, end; 974 975 /* 976 * Walk direct mapping and convert all shared memory back to private, 977 */ 978 979 addr = PAGE_OFFSET; 980 end = PAGE_OFFSET + get_max_mapped(); 981 982 while (addr < end) { 983 unsigned long size; 984 unsigned int level; 985 pte_t *pte; 986 987 pte = lookup_address(addr, &level); 988 size = page_level_size(level); 989 990 /* 991 * pte_none() check is required to skip physical memory holes in direct mapped. 992 */ > 993 if (pte && pte_decrypted(*pte) && !pte_none(*pte)) { 994 int pages = size / PAGE_SIZE; 995 996 if (!make_pte_private(pte, addr, pages, level)) { 997 pr_err("Failed to unshare range %#lx-%#lx\n", 998 addr, addr + size); 999 } 1000 1001 } 1002 1003 addr += size; 1004 } 1005 __flush_tlb_all(); 1006 1007 } 1008 1009 static void unshare_all_bss_decrypted_memory(void) 1010 { 1011 unsigned long vaddr, vaddr_end; 1012 unsigned int level; 1013 unsigned int npages; 1014 pte_t *pte; 1015 1016 vaddr = (unsigned long)__start_bss_decrypted; 1017 vaddr_end = (unsigned long)__start_bss_decrypted_unused; 1018 npages = (vaddr_end - vaddr) >> PAGE_SHIFT; 1019 for (; vaddr < vaddr_end; vaddr += PAGE_SIZE) { 1020 pte = lookup_address(vaddr, &level); 1021 if (!pte || !pte_decrypted(*pte) || pte_none(*pte)) 1022 continue; 1023 1024 set_pte_enc(pte, level, (void *)vaddr); 1025 } 1026 vaddr = (unsigned long)__start_bss_decrypted; 1027 snp_set_memory_private(vaddr, npages); 1028 } 1029 1030 /* Stop new private<->shared conversions */ 1031 void snp_kexec_stop_conversion(bool crash) 1032 { 1033 /* 1034 * Crash kernel reaches here with interrupts disabled: can't wait for 1035 * conversions to finish. 1036 * 1037 * If race happened, just report and proceed. 1038 */ 1039 bool wait_for_lock = !crash; 1040 > 1041 if (!stop_memory_enc_conversion(wait_for_lock)) 1042 pr_warn("Failed to finish shared<->private conversions\n"); 1043 } 1044 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec