tree: https://github.com/intel/tdx.git guest head: 224dd4925275ef73ef78f1412d6f9d03564294eb commit: 65aab3097498af2947a88010cc4354a2cd7edac1 [10/76] x86/tdx: Wire up KVM hypercalls config: i386-randconfig-r032-20210616 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=1 build): # https://github.com/intel/tdx/commit/65aab3097498af2947a88010cc4354a2cd7edac1 git remote add intel-tdx https://github.com/intel/tdx.git git fetch --no-tags intel-tdx guest git checkout 65aab3097498af2947a88010cc4354a2cd7edac1 # save the attached .config to linux build tree make W=1 ARCH=i386 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): In file included from include/uapi/linux/kvm_para.h:36, from include/linux/kvm_para.h:5, from drivers/cpuidle/cpuidle-haltpoll.c:18: arch/x86/include/asm/kvm_para.h: In function 'kvm_hypercall0': >> arch/x86/include/asm/kvm_para.h:38:10: error: implicit declaration of function 'tdx_kvm_hypercall'; did you mean 'kvm_hypercall0'? [-Werror=implicit-function-declaration] 38 | return tdx_kvm_hypercall(nr, 0, 0, 0, 0); | ^~~~~~~~~~~~~~~~~ | kvm_hypercall0 cc1: some warnings being treated as errors -- In file included from include/uapi/linux/kvm_para.h:36, from include/linux/kvm_para.h:5, from arch/x86/kernel/kvm.c:16: arch/x86/include/asm/kvm_para.h: In function 'kvm_hypercall0': >> arch/x86/include/asm/kvm_para.h:38:10: error: implicit declaration of function 'tdx_kvm_hypercall'; did you mean 'kvm_hypercall0'? [-Werror=implicit-function-declaration] 38 | return tdx_kvm_hypercall(nr, 0, 0, 0, 0); | ^~~~~~~~~~~~~~~~~ | kvm_hypercall0 arch/x86/kernel/kvm.c: At top level: arch/x86/kernel/kvm.c:895:16: warning: no previous prototype for '__kvm_vcpu_is_preempted' [-Wmissing-prototypes] 895 | __visible bool __kvm_vcpu_is_preempted(long cpu) | ^~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +38 arch/x86/include/asm/kvm_para.h 19 20 #define KVM_HYPERCALL \ 21 ALTERNATIVE("vmcall", "vmmcall", X86_FEATURE_VMMCALL) 22 23 /* For KVM hypercalls, a three-byte sequence of either the vmcall or the vmmcall 24 * instruction. The hypervisor may replace it with something else but only the 25 * instructions are guaranteed to be supported. 26 * 27 * Up to four arguments may be passed in rbx, rcx, rdx, and rsi respectively. 28 * The hypercall number should be placed in rax and the return value will be 29 * placed in rax. No other registers will be clobbered unless explicitly 30 * noted by the particular hypercall. 31 */ 32 33 static inline long kvm_hypercall0(unsigned int nr) 34 { 35 long ret; 36 37 if (prot_guest_has(PR_GUEST_TDX)) > 38 return tdx_kvm_hypercall(nr, 0, 0, 0, 0); 39 40 asm volatile(KVM_HYPERCALL 41 : "=a"(ret) 42 : "a"(nr) 43 : "memory"); 44 return ret; 45 } 46 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org