KVM: x86/mmu: Harden TDP MMU iteration against root w/o shadow page
authorSean Christopherson <seanjc@google.com>
Sat, 29 Jul 2023 00:51:58 +0000 (17:51 -0700)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 31 Aug 2023 18:08:22 +0000 (14:08 -0400)
commit2c6d4c27b92d729a2831df2a873ba6b5f682f435
tree2b0c71a568e28b382d4c701c8f734fc14963744f
parentc30e000e690af74f61a161fa60be140f23948cb1
KVM: x86/mmu: Harden TDP MMU iteration against root w/o shadow page

Explicitly check that tdp_iter_start() is handed a valid shadow page
to harden KVM against bugs, e.g. if KVM calls into the TDP MMU with an
invalid or shadow MMU root (which would be a fatal KVM bug), the shadow
page pointer will be NULL.

Opportunistically stop the TDP MMU iteration instead of continuing on
with garbage if the incoming root is bogus.  Attempting to walk a garbage
root is more likely to caused major problems than doing nothing.

Cc: Yu Zhang <yu.c.zhang@linux.intel.com>
Link: https://lore.kernel.org/r/20230729005200.1057358-4-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/mmu/tdp_iter.c