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 <[email protected]>

Reviewed-by: Yosry Ahmed <[email protected]>

> ---
>  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
> 

Reply via email to