All of lore.kernel.org
 help / color / mirror / Atom feed
From: Zdenek Kaspar <zkaspar82@gmail.com>
To: Ben Gardon <bgardon@google.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
	Paolo Bonzini <pbonzini@redhat.com>,
	Sean Christopherson <sean.j.christopherson@intel.com>,
	Peter Shier <pshier@google.com>,
	Jim Mattson <jmattson@google.com>
Subject: Re: [PATCH] kvm: x86/mmu: Fix is_tdp_mmu_check when using PAE
Date: Thu, 12 Nov 2020 00:46:06 +0100	[thread overview]
Message-ID: <20201112004606.48c339a6.zkaspar82@gmail.com> (raw)
In-Reply-To: <20201111185337.1237383-1-bgardon@google.com>

On Wed, 11 Nov 2020 10:53:37 -0800
Ben Gardon <bgardon@google.com> wrote:

> When PAE is in use, the root_hpa will not have a shadow page
> assoicated with it. In this case the kernel will crash with a NULL
> pointer dereference. Add checks to ensure is_tdp_mmu_root works as
> intended even when using PAE.
> 
> Tested: compiles
> 
> Fixes: 02c00b3a2f7e ("kvm: x86/mmu: Allocate and free TDP MMU roots")
> Reported-by: Zdenek Kaspar <zkaspar82@gmail.com>
> Signed-off-by: Ben Gardon <bgardon@google.com>
> ---
>  arch/x86/kvm/mmu/tdp_mmu.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/arch/x86/kvm/mmu/tdp_mmu.c b/arch/x86/kvm/mmu/tdp_mmu.c
> index 27e381c9da6c..13013f4d98ad 100644
> --- a/arch/x86/kvm/mmu/tdp_mmu.c
> +++ b/arch/x86/kvm/mmu/tdp_mmu.c
> @@ -49,8 +49,18 @@ bool is_tdp_mmu_root(struct kvm *kvm, hpa_t hpa)
>  {
>  	struct kvm_mmu_page *sp;
>  
> +	if (WARN_ON(!VALID_PAGE(hpa)))
> +		return false;
> +
>  	sp = to_shadow_page(hpa);
>  
> +	/*
> +	 * If this VM is being run with PAE, the TDP MMU will not be
> enabled
> +	 * and the root HPA will not have a shadow page associated
> with it.
> +	 */
> +	if (!sp)
> +		return false;
> +
>  	return sp->tdp_mmu_page && sp->root_count;
>  }
>  

Fixes is_tdp_mmu_root NULL pointer dereference
Tested on: Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz

Tested-by: Zdenek Kaspar <zkaspar82@gmail.com>

  parent reply	other threads:[~2020-11-12  1:54 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-11 18:53 [PATCH] kvm: x86/mmu: Fix is_tdp_mmu_check when using PAE Ben Gardon
2020-11-11 22:57 ` Jamie Heilman
2020-11-11 23:46 ` Zdenek Kaspar [this message]
2020-11-13 20:58 ` Paolo Bonzini
2020-11-16 17:18   ` Ben Gardon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201112004606.48c339a6.zkaspar82@gmail.com \
    --to=zkaspar82@gmail.com \
    --cc=bgardon@google.com \
    --cc=jmattson@google.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=pshier@google.com \
    --cc=sean.j.christopherson@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.