lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <23f9d38f-2eb4-03d6-3a8a-aebfc5af5af0@intel.com>
Date:   Mon, 9 Aug 2021 18:49:17 +0800
From:   kernel test robot <rong.a.chen@...el.com>
To:     Paolo Bonzini <pbonzini@...hat.com>
Cc:     clang-built-linux <clang-built-linux@...glegroups.com>,
        "kbuild-all@...ts.01.org" <kbuild-all@...ts.01.org>,
        LKML <linux-kernel@...r.kernel.org>
Subject: arch/x86/kvm/mmu/mmu.c:3336:3: warning: Value stored to 'r' is never
 read [clang-analyzer-deadcode.DeadStores]


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 <lkp@...el.com>


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


Download attachment ".config.gz" of type "application/gzip" (27865 bytes)

View attachment "Attached Message Part" of type "text/plain" (151 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ