CC: kbuild-all(a)lists.01.org In-Reply-To: <20200925212302.3979661-16-bgardon@google.com> References: <20200925212302.3979661-16-bgardon@google.com> TO: Ben Gardon Hi Ben, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on linus/master] [also build test WARNING on v5.9-rc8 next-20201007] [cannot apply to kvm/linux-next linux/master vhost/linux-next] [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/Ben-Gardon/Introduce-the-TDP-MMU/20200926-052649 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 6d28cf7dfede6cfca5119a0d415a6a447c68f3a0 :::::: branch date: 12 days ago :::::: commit date: 12 days ago config: x86_64-randconfig-m001-20201008 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Reported-by: Dan Carpenter smatch warnings: arch/x86/kvm/mmu/tdp_mmu.c:756 set_tdp_spte() error: uninitialized symbol 'new_spte'. vim +/new_spte +756 arch/x86/kvm/mmu/tdp_mmu.c 8753659d94fc330 Ben Gardon 2020-09-25 725 8753659d94fc330 Ben Gardon 2020-09-25 726 /* 8753659d94fc330 Ben Gardon 2020-09-25 727 * Handle the changed_pte MMU notifier for the TDP MMU. 8753659d94fc330 Ben Gardon 2020-09-25 728 * data is a pointer to the new pte_t mapping the HVA specified by the MMU 8753659d94fc330 Ben Gardon 2020-09-25 729 * notifier. 8753659d94fc330 Ben Gardon 2020-09-25 730 * Returns non-zero if a flush is needed before releasing the MMU lock. 8753659d94fc330 Ben Gardon 2020-09-25 731 */ 8753659d94fc330 Ben Gardon 2020-09-25 732 static int set_tdp_spte(struct kvm *kvm, struct kvm_memory_slot *slot, 8753659d94fc330 Ben Gardon 2020-09-25 733 struct kvm_mmu_page *root, gfn_t gfn, gfn_t unused, 8753659d94fc330 Ben Gardon 2020-09-25 734 unsigned long data) 8753659d94fc330 Ben Gardon 2020-09-25 735 { 8753659d94fc330 Ben Gardon 2020-09-25 736 struct tdp_iter iter; 8753659d94fc330 Ben Gardon 2020-09-25 737 pte_t *ptep = (pte_t *)data; 8753659d94fc330 Ben Gardon 2020-09-25 738 kvm_pfn_t new_pfn; 8753659d94fc330 Ben Gardon 2020-09-25 739 u64 new_spte; 8753659d94fc330 Ben Gardon 2020-09-25 740 int need_flush = 0; 8753659d94fc330 Ben Gardon 2020-09-25 741 int as_id = kvm_mmu_page_as_id(root); 8753659d94fc330 Ben Gardon 2020-09-25 742 8753659d94fc330 Ben Gardon 2020-09-25 743 WARN_ON(pte_huge(*ptep)); 8753659d94fc330 Ben Gardon 2020-09-25 744 8753659d94fc330 Ben Gardon 2020-09-25 745 new_pfn = pte_pfn(*ptep); 8753659d94fc330 Ben Gardon 2020-09-25 746 8753659d94fc330 Ben Gardon 2020-09-25 747 for_each_tdp_pte_root(iter, root, gfn, gfn + 1) { 8753659d94fc330 Ben Gardon 2020-09-25 748 if (iter.level != PG_LEVEL_4K) 8753659d94fc330 Ben Gardon 2020-09-25 749 continue; 8753659d94fc330 Ben Gardon 2020-09-25 750 8753659d94fc330 Ben Gardon 2020-09-25 751 if (!is_shadow_present_pte(iter.old_spte)) 8753659d94fc330 Ben Gardon 2020-09-25 752 break; 8753659d94fc330 Ben Gardon 2020-09-25 753 8753659d94fc330 Ben Gardon 2020-09-25 754 *iter.sptep = 0; 8753659d94fc330 Ben Gardon 2020-09-25 755 handle_changed_spte(kvm, as_id, iter.gfn, iter.old_spte, 8753659d94fc330 Ben Gardon 2020-09-25 @756 new_spte, iter.level); 8753659d94fc330 Ben Gardon 2020-09-25 757 8753659d94fc330 Ben Gardon 2020-09-25 758 kvm_flush_remote_tlbs_with_address(kvm, iter.gfn, 1); 8753659d94fc330 Ben Gardon 2020-09-25 759 8753659d94fc330 Ben Gardon 2020-09-25 760 if (!pte_write(*ptep)) { 8753659d94fc330 Ben Gardon 2020-09-25 761 new_spte = kvm_mmu_changed_pte_notifier_make_spte( 8753659d94fc330 Ben Gardon 2020-09-25 762 iter.old_spte, new_pfn); 8753659d94fc330 Ben Gardon 2020-09-25 763 8753659d94fc330 Ben Gardon 2020-09-25 764 *iter.sptep = new_spte; 8753659d94fc330 Ben Gardon 2020-09-25 765 handle_changed_spte(kvm, as_id, iter.gfn, iter.old_spte, 8753659d94fc330 Ben Gardon 2020-09-25 766 new_spte, iter.level); 8753659d94fc330 Ben Gardon 2020-09-25 767 } 8753659d94fc330 Ben Gardon 2020-09-25 768 8753659d94fc330 Ben Gardon 2020-09-25 769 need_flush = 1; 8753659d94fc330 Ben Gardon 2020-09-25 770 } 8753659d94fc330 Ben Gardon 2020-09-25 771 8753659d94fc330 Ben Gardon 2020-09-25 772 if (need_flush) 8753659d94fc330 Ben Gardon 2020-09-25 773 kvm_flush_remote_tlbs_with_address(kvm, gfn, 1); 8753659d94fc330 Ben Gardon 2020-09-25 774 8753659d94fc330 Ben Gardon 2020-09-25 775 return 0; 8753659d94fc330 Ben Gardon 2020-09-25 776 } 8753659d94fc330 Ben Gardon 2020-09-25 777 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org