From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-10.3 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6FE1EC4338F for ; Mon, 9 Aug 2021 10:49:34 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 441AA60C3E for ; Mon, 9 Aug 2021 10:49:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233867AbhHIKtr (ORCPT ); Mon, 9 Aug 2021 06:49:47 -0400 Received: from mga03.intel.com ([134.134.136.65]:19482 "EHLO mga03.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233193AbhHIKtl (ORCPT ); Mon, 9 Aug 2021 06:49:41 -0400 X-IronPort-AV: E=McAfee;i="6200,9189,10070"; a="214691293" X-IronPort-AV: E=Sophos;i="5.84,307,1620716400"; d="gz'50?scan'50,208,50";a="214691293" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Aug 2021 03:49:21 -0700 X-IronPort-AV: E=Sophos;i="5.84,307,1620716400"; d="gz'50?scan'50,208,50";a="514903984" Received: from rongch2-mobl.ccr.corp.intel.com (HELO [10.255.31.192]) ([10.255.31.192]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Aug 2021 03:49:19 -0700 Subject: arch/x86/kvm/mmu/mmu.c:3336:3: warning: Value stored to 'r' is never read [clang-analyzer-deadcode.DeadStores] References: <202108082356.XA9iwnRz-lkp@intel.com> To: Paolo Bonzini Cc: clang-built-linux , "kbuild-all@lists.01.org" , LKML From: kernel test robot X-Forwarded-Message-Id: <202108082356.XA9iwnRz-lkp@intel.com> Message-ID: <23f9d38f-2eb4-03d6-3a8a-aebfc5af5af0@intel.com> Date: Mon, 9 Aug 2021 18:49:17 +0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0 Thunderbird/78.12.0 MIME-Version: 1.0 In-Reply-To: <202108082356.XA9iwnRz-lkp@intel.com> Content-Type: multipart/mixed; boundary="------------1DC850E3F9600C647192DB64" Content-Language: en-US Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is a multi-part message in MIME format. --------------1DC850E3F9600C647192DB64 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 85a90500f9a1717c4e142ce92e6c1cb1a339ec78 commit: 4a38162ee9f10f5f67c36f4f5aa4f6be2657efd5 KVM: MMU: load PDPTRs outside mmu_lock date: 4 months ago :::::: branch date: 22 hours ago :::::: commit date: 4 months ago config: x86_64-randconfig-c001-20210806 (attached as .config) compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 42b9c2a17a0b63cccf3ac197a82f91b28e53e643) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install x86_64 cross compiling tool for clang build # apt-get install binutils-x86-64-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4a38162ee9f10f5f67c36f4f5aa4f6be2657efd5 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 4a38162ee9f10f5f67c36f4f5aa4f6be2657efd5 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 clang-analyzer If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot clang-analyzer warnings: (new ones prefixed by >>) arch/x86/kvm/mmu/mmu.c:2963:2: note: Taking false branch if (unlikely(error_code & PFERR_RSVD_MASK)) ^ arch/x86/kvm/mmu/mmu.c:2967:16: note: Assuming the condition is false if (unlikely(((error_code & (PFERR_FETCH_MASK | PFERR_PRESENT_MASK)) ^ include/linux/compiler.h:78:42: note: expanded from macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ arch/x86/kvm/mmu/mmu.c:2967:2: note: Taking false branch if (unlikely(((error_code & (PFERR_FETCH_MASK | PFERR_PRESENT_MASK)) ^ arch/x86/kvm/mmu/mmu.c:2985:9: note: Assuming 'shadow_acc_track_mask' is equal to 0 return shadow_acc_track_mask != 0 || ^~~~~~~~~~~~~~~~~~~~~~~~~~ arch/x86/kvm/mmu/mmu.c:2985:9: note: Left side of '||' is false arch/x86/kvm/mmu/mmu.c:2986:10: note: Assuming the condition is true ((error_code & (PFERR_WRITE_MASK | PFERR_PRESENT_MASK)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/x86/kvm/mmu/mmu.c:2985:2: note: Returning the value 1, which participates in a condition later return shadow_acc_track_mask != 0 || ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/x86/kvm/mmu/mmu.c:3053:7: note: Returning from 'page_fault_can_be_fast' if (!page_fault_can_be_fast(error_code)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/x86/kvm/mmu/mmu.c:3053:2: note: Taking false branch if (!page_fault_can_be_fast(error_code)) ^ arch/x86/kvm/mmu/mmu.c:3061:3: note: Calling 'shadow_walk_init' for_each_shadow_entry_lockless(vcpu, cr2_or_gpa, iterator, spte) ^ arch/x86/kvm/mmu/mmu.c:166:7: note: expanded from macro 'for_each_shadow_entry_lockless' for (shadow_walk_init(&(_walker), _vcpu, _addr); \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/x86/kvm/mmu/mmu.c:2111:2: note: Calling 'shadow_walk_init_using_root' shadow_walk_init_using_root(iterator, vcpu, vcpu->arch.mmu->root_hpa, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/x86/kvm/mmu/mmu.c:2087:6: note: Assuming field 'level' is not equal to PT64_ROOT_4LEVEL if (iterator->level == PT64_ROOT_4LEVEL && ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/x86/kvm/mmu/mmu.c:2087:42: note: Left side of '&&' is false if (iterator->level == PT64_ROOT_4LEVEL && ^ arch/x86/kvm/mmu/mmu.c:2092:6: note: Assuming field 'level' is not equal to PT32E_ROOT_LEVEL if (iterator->level == PT32E_ROOT_LEVEL) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/x86/kvm/mmu/mmu.c:2092:2: note: Taking false branch if (iterator->level == PT32E_ROOT_LEVEL) { ^ arch/x86/kvm/mmu/mmu.c:2106:1: note: Returning without writing to 'iterator->sptep' } ^ arch/x86/kvm/mmu/mmu.c:2111:2: note: Returning from 'shadow_walk_init_using_root' shadow_walk_init_using_root(iterator, vcpu, vcpu->arch.mmu->root_hpa, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/x86/kvm/mmu/mmu.c:2113:1: note: Returning without writing to 'iterator->sptep' } ^ arch/x86/kvm/mmu/mmu.c:3061:3: note: Returning from 'shadow_walk_init' for_each_shadow_entry_lockless(vcpu, cr2_or_gpa, iterator, spte) ^ arch/x86/kvm/mmu/mmu.c:166:7: note: expanded from macro 'for_each_shadow_entry_lockless' for (shadow_walk_init(&(_walker), _vcpu, _addr); \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/x86/kvm/mmu/mmu.c:3061:3: note: Calling 'shadow_walk_okay' for_each_shadow_entry_lockless(vcpu, cr2_or_gpa, iterator, spte) ^ arch/x86/kvm/mmu/mmu.c:167:7: note: expanded from macro 'for_each_shadow_entry_lockless' shadow_walk_okay(&(_walker)) && \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/x86/kvm/mmu/mmu.c:2117:6: note: Assuming field 'level' is < PG_LEVEL_4K if (iterator->level < PG_LEVEL_4K) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/x86/kvm/mmu/mmu.c:2117:2: note: Taking true branch if (iterator->level < PG_LEVEL_4K) ^ arch/x86/kvm/mmu/mmu.c:2118:3: note: Returning without writing to 'iterator->sptep' return false; ^ arch/x86/kvm/mmu/mmu.c:3061:3: note: Returning from 'shadow_walk_okay' for_each_shadow_entry_lockless(vcpu, cr2_or_gpa, iterator, spte) ^ arch/x86/kvm/mmu/mmu.c:167:7: note: expanded from macro 'for_each_shadow_entry_lockless' shadow_walk_okay(&(_walker)) && \ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ arch/x86/kvm/mmu/mmu.c:3061:3: note: Left side of '&&' is false for_each_shadow_entry_lockless(vcpu, cr2_or_gpa, iterator, spte) ^ arch/x86/kvm/mmu/mmu.c:167:36: note: expanded from macro 'for_each_shadow_entry_lockless' shadow_walk_okay(&(_walker)) && \ ^ arch/x86/kvm/mmu/mmu.c:3065:3: note: Taking true branch if (!is_shadow_present_pte(spte)) ^ arch/x86/kvm/mmu/mmu.c:3066:4: note: Execution continues on line 3140 break; ^ arch/x86/kvm/mmu/mmu.c:3140:2: note: 4th function call argument is an uninitialized value trace_fast_page_fault(vcpu, cr2_or_gpa, error_code, iterator.sptep, ^ ~~~~~~~~~~~~~~ >> arch/x86/kvm/mmu/mmu.c:3336:3: warning: Value stored to 'r' is never read [clang-analyzer-deadcode.DeadStores] r = -EIO; ^ ~~~~ arch/x86/kvm/mmu/mmu.c:3336:3: note: Value stored to 'r' is never read r = -EIO; ^ ~~~~ arch/x86/kvm/mmu/mmu.c:3350:4: warning: Value stored to 'r' is never read [clang-analyzer-deadcode.DeadStores] r = -EIO; ^ ~~~~ arch/x86/kvm/mmu/mmu.c:3350:4: note: Value stored to 'r' is never read r = -EIO; ^ ~~~~ Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (2 in non-user code, 3 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (2 in non-user code, 2 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. kernel/exit.c:1571:3: warning: Value stored to 'signo' is never read [clang-analyzer-deadcode.DeadStores] signo = SIGCHLD; ^ kernel/exit.c:1571:3: note: Value stored to 'signo' is never read kernel/exit.c:1706:3: warning: Value stored to 'signo' is never read [clang-analyzer-deadcode.DeadStores] signo = SIGCHLD; ^ kernel/exit.c:1706:3: note: Value stored to 'signo' is never read Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. kernel/resource.c:83:2: warning: The expression is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign] (*pos)++; ^ kernel/resource.c:1666:2: note: 'l' declared without an initial value loff_t l; ^~~~~~~~ kernel/resource.c:1669:2: note: Loop condition is true. Entering loop body for (p = p->child; p ; p = r_next(NULL, p, &l)) { ^ kernel/resource.c:1674:7: note: Assuming the condition is true if (p->start >= addr + size) ^~~~~~~~~~~~~~~~~~~~~~~ kernel/resource.c:1674:3: note: Taking true branch if (p->start >= addr + size) ^ kernel/resource.c:1675:4: note: Execution continues on line 1669 continue; ^ kernel/resource.c:1669:29: note: Calling 'r_next' for (p = p->child; p ; p = r_next(NULL, p, &l)) { ^~~~~~~~~~~~~~~~~~~ kernel/resource.c:83:2: note: The expression is an uninitialized value. The computed value will also be garbage (*pos)++; ^~~~~~ Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. kernel/sysctl.c:1484:10: warning: The left operand of '==' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult] if (c == '-') { ~ ^ kernel/sysctl.c:1431:63: note: 'c' declared without an initial value char tr_a[] = { '-', ',', '\n' }, tr_b[] = { ',', '\n', 0 }, c; ^ kernel/sysctl.c:1433:6: note: Assuming 'bitmap' is non-null if (!bitmap || !bitmap_len || !left || (*ppos && !write)) { ^~~~~~~ kernel/sysctl.c:1433:6: note: Left side of '||' is false kernel/sysctl.c:1433:17: note: Assuming 'bitmap_len' is not equal to 0 if (!bitmap || !bitmap_len || !left || (*ppos && !write)) { ^~~~~~~~~~~ kernel/sysctl.c:1433:6: note: Left side of '||' is false if (!bitmap || !bitmap_len || !left || (*ppos && !write)) { ^ kernel/sysctl.c:1433:32: note: Assuming 'left' is not equal to 0 if (!bitmap || !bitmap_len || !left || (*ppos && !write)) { ^~~~~ kernel/sysctl.c:1433:6: note: Left side of '||' is false if (!bitmap || !bitmap_len || !left || (*ppos && !write)) { ^ kernel/sysctl.c:1433:42: note: Assuming the condition is false if (!bitmap || !bitmap_len || !left || (*ppos && !write)) { ^~~~~ kernel/sysctl.c:1433:48: note: Left side of '&&' is false if (!bitmap || !bitmap_len || !left || (*ppos && !write)) { ^ kernel/sysctl.c:1438:6: note: Assuming 'write' is not equal to 0 if (write) { ^~~~~ kernel/sysctl.c:1438:2: note: Taking true branch if (write) { ^ kernel/sysctl.c:1442:7: note: Assuming the condition is false if (left > PAGE_SIZE - 1) { vim +/r +3336 arch/x86/kvm/mmu/mmu.c 651dd37a9ce6fd arch/x86/kvm/mmu.c Joerg Roedel 2010-09-10 3288 651dd37a9ce6fd arch/x86/kvm/mmu.c Joerg Roedel 2010-09-10 3289 static int mmu_alloc_shadow_roots(struct kvm_vcpu *vcpu) 17ac10ad2bb7d8 drivers/kvm/mmu.c Avi Kivity 2007-01-05 3290 { b37233c911cbec arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3291 struct kvm_mmu *mmu = vcpu->arch.mmu; 6e0918aec49a5f arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3292 u64 pdptrs[4], pm_mask; be01e8e2c632c4 arch/x86/kvm/mmu/mmu.c Sean Christopherson 2020-03-20 3293 gfn_t root_gfn, root_pgd; 8123f265248c85 arch/x86/kvm/mmu/mmu.c Sean Christopherson 2020-04-27 3294 hpa_t root; 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 3295 unsigned i; 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 3296 int r; 3bb65a22a45020 drivers/kvm/mmu.c Avi Kivity 2007-01-05 3297 b37233c911cbec arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3298 root_pgd = mmu->get_guest_pgd(vcpu); be01e8e2c632c4 arch/x86/kvm/mmu/mmu.c Sean Christopherson 2020-03-20 3299 root_gfn = root_pgd >> PAGE_SHIFT; 17ac10ad2bb7d8 drivers/kvm/mmu.c Avi Kivity 2007-01-05 3300 651dd37a9ce6fd arch/x86/kvm/mmu.c Joerg Roedel 2010-09-10 3301 if (mmu_check_root(vcpu, root_gfn)) 651dd37a9ce6fd arch/x86/kvm/mmu.c Joerg Roedel 2010-09-10 3302 return 1; 651dd37a9ce6fd arch/x86/kvm/mmu.c Joerg Roedel 2010-09-10 3303 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 3304 /* 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 3305 * On SVM, reading PDPTRs might access guest memory, which might fault 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 3306 * and thus might sleep. Grab the PDPTRs before acquiring mmu_lock. 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 3307 */ 6e0918aec49a5f arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3308 if (mmu->root_level == PT32E_ROOT_LEVEL) { 6e0918aec49a5f arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3309 for (i = 0; i < 4; ++i) { 6e0918aec49a5f arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3310 pdptrs[i] = mmu->get_pdptr(vcpu, i); 6e0918aec49a5f arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3311 if (!(pdptrs[i] & PT_PRESENT_MASK)) 6e0918aec49a5f arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3312 continue; 6e0918aec49a5f arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3313 6e0918aec49a5f arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3314 if (mmu_check_root(vcpu, pdptrs[i] >> PAGE_SHIFT)) 6e0918aec49a5f arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3315 return 1; 6e0918aec49a5f arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3316 } 6e0918aec49a5f arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3317 } 6e0918aec49a5f arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3318 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 3319 write_lock(&vcpu->kvm->mmu_lock); 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 3320 r = make_mmu_pages_available(vcpu); 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 3321 if (r < 0) 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 3322 goto out_unlock; 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 3323 651dd37a9ce6fd arch/x86/kvm/mmu.c Joerg Roedel 2010-09-10 3324 /* 651dd37a9ce6fd arch/x86/kvm/mmu.c Joerg Roedel 2010-09-10 3325 * Do we shadow a long mode page table? If so we need to 651dd37a9ce6fd arch/x86/kvm/mmu.c Joerg Roedel 2010-09-10 3326 * write-protect the guests page table root. 651dd37a9ce6fd arch/x86/kvm/mmu.c Joerg Roedel 2010-09-10 3327 */ b37233c911cbec arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3328 if (mmu->root_level >= PT64_ROOT_4LEVEL) { 8123f265248c85 arch/x86/kvm/mmu/mmu.c Sean Christopherson 2020-04-27 3329 root = mmu_alloc_root(vcpu, root_gfn, 0, b37233c911cbec arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3330 mmu->shadow_root_level, false); b37233c911cbec arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3331 mmu->root_hpa = root; be01e8e2c632c4 arch/x86/kvm/mmu/mmu.c Sean Christopherson 2020-03-20 3332 goto set_root_pgd; 17ac10ad2bb7d8 drivers/kvm/mmu.c Avi Kivity 2007-01-05 3333 } f87f928882d080 arch/x86/kvm/mmu.c Joerg Roedel 2010-09-02 3334 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 3335 if (WARN_ON_ONCE(!mmu->pae_root)) { 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 @3336 r = -EIO; 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 3337 goto out_unlock; 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 3338 } 73ad160693dc3b arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3339 651dd37a9ce6fd arch/x86/kvm/mmu.c Joerg Roedel 2010-09-10 3340 /* 651dd37a9ce6fd arch/x86/kvm/mmu.c Joerg Roedel 2010-09-10 3341 * We shadow a 32 bit page table. This may be a legacy 2-level 81407ca553c0c8 arch/x86/kvm/mmu.c Joerg Roedel 2010-09-10 3342 * or a PAE 3-level page table. In either case we need to be aware that 81407ca553c0c8 arch/x86/kvm/mmu.c Joerg Roedel 2010-09-10 3343 * the shadow page table may be a PAE or a long mode page table. 651dd37a9ce6fd arch/x86/kvm/mmu.c Joerg Roedel 2010-09-10 3344 */ 17e368d94af77c arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3345 pm_mask = PT_PRESENT_MASK | shadow_me_mask; 748e52b9b73680 arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3346 if (mmu->shadow_root_level == PT64_ROOT_4LEVEL) { 81407ca553c0c8 arch/x86/kvm/mmu.c Joerg Roedel 2010-09-10 3347 pm_mask |= PT_ACCESSED_MASK | PT_WRITABLE_MASK | PT_USER_MASK; 81407ca553c0c8 arch/x86/kvm/mmu.c Joerg Roedel 2010-09-10 3348 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 3349 if (WARN_ON_ONCE(!mmu->lm_root)) { 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 3350 r = -EIO; 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 3351 goto out_unlock; 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 3352 } 73ad160693dc3b arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3353 748e52b9b73680 arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3354 mmu->lm_root[0] = __pa(mmu->pae_root) | pm_mask; 04d45551a1eefb arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3355 } 04d45551a1eefb arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3356 17ac10ad2bb7d8 drivers/kvm/mmu.c Avi Kivity 2007-01-05 3357 for (i = 0; i < 4; ++i) { c834e5e44fc15a arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-09 3358 WARN_ON_ONCE(IS_VALID_PAE_ROOT(mmu->pae_root[i])); 6e6ec58485746e arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3359 b37233c911cbec arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3360 if (mmu->root_level == PT32E_ROOT_LEVEL) { 6e0918aec49a5f arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3361 if (!(pdptrs[i] & PT_PRESENT_MASK)) { c834e5e44fc15a arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-09 3362 mmu->pae_root[i] = INVALID_PAE_ROOT; 417726a3fbecb2 drivers/kvm/mmu.c Avi Kivity 2007-04-12 3363 continue; 417726a3fbecb2 drivers/kvm/mmu.c Avi Kivity 2007-04-12 3364 } 6e0918aec49a5f arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3365 root_gfn = pdptrs[i] >> PAGE_SHIFT; 5a7388c2d2faa2 arch/x86/kvm/mmu.c Eric Northup 2010-04-26 3366 } 8facbbff071ff2 arch/x86/kvm/mmu.c Avi Kivity 2010-05-04 3367 8123f265248c85 arch/x86/kvm/mmu/mmu.c Sean Christopherson 2020-04-27 3368 root = mmu_alloc_root(vcpu, root_gfn, i << 30, 8123f265248c85 arch/x86/kvm/mmu/mmu.c Sean Christopherson 2020-04-27 3369 PT32_ROOT_LEVEL, false); b37233c911cbec arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3370 mmu->pae_root[i] = root | pm_mask; 81407ca553c0c8 arch/x86/kvm/mmu.c Joerg Roedel 2010-09-10 3371 } 81407ca553c0c8 arch/x86/kvm/mmu.c Joerg Roedel 2010-09-10 3372 ba0a194ffbfb41 arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3373 if (mmu->shadow_root_level == PT64_ROOT_4LEVEL) b37233c911cbec arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3374 mmu->root_hpa = __pa(mmu->lm_root); ba0a194ffbfb41 arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3375 else ba0a194ffbfb41 arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3376 mmu->root_hpa = __pa(mmu->pae_root); 81407ca553c0c8 arch/x86/kvm/mmu.c Joerg Roedel 2010-09-10 3377 be01e8e2c632c4 arch/x86/kvm/mmu/mmu.c Sean Christopherson 2020-03-20 3378 set_root_pgd: b37233c911cbec arch/x86/kvm/mmu/mmu.c Sean Christopherson 2021-03-04 3379 mmu->root_pgd = root_pgd; 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 3380 out_unlock: 4a38162ee9f10f arch/x86/kvm/mmu/mmu.c Paolo Bonzini 2021-04-08 3381 write_unlock(&vcpu->kvm->mmu_lock); ad7dc69aeb2313 arch/x86/kvm/mmu.c Vitaly Kuznetsov 2019-02-22 3382 8986ecc0ef58c9 arch/x86/kvm/mmu.c Marcelo Tosatti 2009-05-12 3383 return 0; 17ac10ad2bb7d8 drivers/kvm/mmu.c Avi Kivity 2007-01-05 3384 } 17ac10ad2bb7d8 drivers/kvm/mmu.c Avi Kivity 2007-01-05 3385 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org --------------1DC850E3F9600C647192DB64 Content-Type: application/gzip; name=".config.gz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=".config.gz" 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 AA== --------------1DC850E3F9600C647192DB64 Content-Type: text/plain; charset=UTF-8; name="Attached Message Part" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="Attached Message Part" _______________________________________________ kbuild mailing list -- kbuild@lists.01.org To unsubscribe send an email to kbuild-leave@lists.01.org --------------1DC850E3F9600C647192DB64--