Hi David, Thank you for the patch! Yet something to improve: [auto build test ERROR on kvm/queue] [also build test ERROR on linus/master next-20210630] [cannot apply to vhost/linux-next v5.13] [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] url: https://github.com/0day-ci/linux/commits/David-Matlack/KVM-x86-mmu-Fast-page-fault-support-for-the-TDP-MMU/20210701-055009 base: https://git.kernel.org/pub/scm/virt/kvm/kvm.git queue config: i386-buildonly-randconfig-r001-20210630 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=1 build): # https://github.com/0day-ci/linux/commit/7709823e6135aaf4aeac8235973f37e679064356 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review David-Matlack/KVM-x86-mmu-Fast-page-fault-support-for-the-TDP-MMU/20210701-055009 git checkout 7709823e6135aaf4aeac8235973f37e679064356 # 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 >>): >> arch/x86/kvm/mmu/mmu.c:3119:6: error: no previous prototype for 'get_last_sptep_lockless' [-Werror=missing-prototypes] 3119 | u64 *get_last_sptep_lockless(struct kvm_vcpu *vcpu, gpa_t gpa, u64 *spte) | ^~~~~~~~~~~~~~~~~~~~~~~ cc1: all warnings being treated as errors vim +/get_last_sptep_lockless +3119 arch/x86/kvm/mmu/mmu.c 3107 3108 /* 3109 * Returns the last level spte pointer of the shadow page walk for the given 3110 * gpa, and sets *spte to the spte value. This spte may be non-preset. 3111 * 3112 * If no walk could be performed, returns NULL and *spte does not contain valid 3113 * data. 3114 * 3115 * Constraints: 3116 * - Must be called between walk_shadow_page_lockless_{begin,end}. 3117 * - The returned sptep must not be used after walk_shadow_page_lockless_end. 3118 */ > 3119 u64 *get_last_sptep_lockless(struct kvm_vcpu *vcpu, gpa_t gpa, u64 *spte) 3120 { 3121 struct kvm_shadow_walk_iterator iterator; 3122 u64 old_spte; 3123 u64 *sptep = NULL; 3124 3125 if (is_tdp_mmu(vcpu->arch.mmu)) 3126 return kvm_tdp_mmu_get_last_sptep_lockless(vcpu, gpa, spte); 3127 3128 for_each_shadow_entry_lockless(vcpu, gpa, iterator, old_spte) { 3129 sptep = iterator.sptep; 3130 *spte = old_spte; 3131 3132 if (!is_shadow_present_pte(old_spte)) 3133 break; 3134 } 3135 3136 return sptep; 3137 } 3138 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org