Re: [PATCH v4 5/8] KVM: x86: nSVM: Save gPAT to vmcb12.g_pat on VMEXIT
From: Yosry Ahmed
Date: Thu Feb 12 2026 - 19:33:42 EST
On Thu, Feb 12, 2026 at 07:58:53AM -0800, Jim Mattson wrote:
> According to the APM volume 3 pseudo-code for "VMRUN," when nested paging
> is enabled in the vmcb, the guest PAT register (gPAT) is saved to the vmcb
> on emulated VMEXIT.
>
> When nested NPT is enabled, save the vmcb02 g_pat field to the vmcb12 g_pat
> field on emulated VMEXIT.
>
> Fixes: 15038e147247 ("KVM: SVM: obey guest PAT")
> Signed-off-by: Jim Mattson <jmattson@xxxxxxxxxx>
Reviewed-by: Yosry Ahmed <yosry.ahmed@xxxxxxxxx>
> ---
> arch/x86/kvm/svm/nested.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/arch/x86/kvm/svm/nested.c b/arch/x86/kvm/svm/nested.c
> index 69b577a4915c..26f758e294ab 100644
> --- a/arch/x86/kvm/svm/nested.c
> +++ b/arch/x86/kvm/svm/nested.c
> @@ -1312,6 +1312,9 @@ void nested_svm_vmexit(struct vcpu_svm *svm)
> vmcb12->save.dr6 = svm->vcpu.arch.dr6;
> vmcb12->save.cpl = vmcb02->save.cpl;
>
> + if (nested_npt_enabled(svm))
> + vmcb12->save.g_pat = vmcb02->save.g_pat;
> +
> if (guest_cpu_cap_has(vcpu, X86_FEATURE_SHSTK)) {
> vmcb12->save.s_cet = vmcb02->save.s_cet;
> vmcb12->save.isst_addr = vmcb02->save.isst_addr;
> --
> 2.53.0.239.g8d8fc8a987-goog
>