KVM: x86/mmu: Properly dereference rcu-protected TDP MMU sptep iterator
authorSean Christopherson <seanjc@google.com>
Wed, 3 Nov 2021 16:18:33 +0000 (09:18 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 11 Nov 2021 15:56:20 +0000 (10:56 -0500)
commitc435d4b7badfa791fea2a1a97a07e02e7134a150
tree2b8dca1a3e342fea69adbd0573ef6b6f10931102
parentcae72dcc3b219c6f85f543ab34452d7c7fe664c0
KVM: x86/mmu: Properly dereference rcu-protected TDP MMU sptep iterator

Wrap the read of iter->sptep in tdp_mmu_map_handle_target_level() with
rcu_dereference().  Shadow pages in the TDP MMU, and thus their SPTEs,
are protected by rcu.

This fixes a Sparse warning at tdp_mmu.c:900:51:
  warning: incorrect type in argument 1 (different address spaces)
  expected unsigned long long [usertype] *sptep
  got unsigned long long [noderef] [usertype] __rcu *[usertype] sptep

Fixes: 7158bee4b475 ("KVM: MMU: pass kvm_mmu_page struct to make_spte")
Cc: Ben Gardon <bgardon@google.com>
Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20211103161833.3769487-1-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/mmu/tdp_mmu.c