linux/arch/x86/include/uapi/asm
Jim Mattson 4f256d5770 KVM: x86: nSVM: Save/restore gPAT with KVM_{GET,SET}_NESTED_STATE
Add a 'gpat' field to kvm_svm_nested_state_hdr to carry L2's guest PAT
value across save and restore.

When KVM_X86_QUIRK_NESTED_SVM_SHARED_PAT is disabled and the vCPU is in
guest mode with nested NPT enabled, save vmcb02's g_pat into the header on
KVM_GET_NESTED_STATE, and restore it on KVM_SET_NESTED_STATE.

Host-initiated accesses to IA32_PAT (via KVM_GET/SET_MSRS) always target
L1's hPAT, so they cannot be used to save or restore gPAT. The separate
header field ensures that KVM_GET/SET_MSRS and KVM_GET/SET_NESTED_STATE are
independent and can be ordered arbitrarily during save and restore.

Note that struct kvm_svm_nested_state_hdr is included in a union padded to
120 bytes, so there is room to add the gpat field without changing any
offsets.

Fixes: cc440cdad5 ("KVM: nSVM: implement KVM_GET_NESTED_STATE and KVM_SET_NESTED_STATE")
Signed-off-by: Jim Mattson <jmattson@google.com>
Link: https://patch.msgid.link/20260407190343.325299-9-jmattson@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
2026-05-14 05:45:13 -07:00
..
a.out.h
amd_hsmp.h platform/x86/amd/hsmp: Add support for HSMP protocol version 7 messages 2024-12-02 19:20:14 +02:00
auxvec.h x86/uapi: Stop leaking kconfig references to userspace 2026-01-30 16:46:17 +01:00
bitsperlong.h
boot.h
bootparam.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in UAPI headers 2025-03-19 11:30:53 +01:00
byteorder.h
debugreg.h x86/traps: Initialize DR6 by writing its architectural reset value 2025-06-24 13:15:51 -07:00
e820.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in UAPI headers 2025-03-19 11:30:53 +01:00
elf.h x86/elf: Add a new FPU buffer layout info to x86 core files 2024-07-29 10:45:43 +02:00
hw_breakpoint.h
hwcap2.h
ist.h
Kbuild
kvm_para.h Guest-side KVM async #PF ABI cleanup for 6.9 2024-03-18 19:03:42 -04:00
kvm_perf.h
kvm.h KVM: x86: nSVM: Save/restore gPAT with KVM_{GET,SET}_NESTED_STATE 2026-05-14 05:45:13 -07:00
ldt.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in UAPI headers 2025-03-19 11:30:53 +01:00
mce.h x86/MCE/AMD: Add support for new MCA_SYND{1,2} registers 2024-10-31 10:36:07 +01:00
mman.h mman: Add map_shadow_stack() flags 2024-10-04 12:04:33 +01:00
msgbuf.h
msr.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in UAPI headers 2025-03-19 11:30:53 +01:00
mtrr.h x86/mtrr: Don't let mtrr_type_lookup() return MTRR_TYPE_INVALID 2023-06-01 15:04:33 +02:00
perf_regs.h
posix_types_32.h
posix_types_64.h
posix_types_x32.h
posix_types.h
prctl.h x86/shstk: Add ARCH_SHSTK_STATUS 2023-08-02 15:01:51 -07:00
processor-flags.h x86/cpufeatures: Enumerate the LASS feature bits 2025-11-18 10:38:26 -08:00
ptrace-abi.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in UAPI headers 2025-03-19 11:30:53 +01:00
ptrace.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in UAPI headers 2025-03-19 11:30:53 +01:00
sembuf.h
setup_data.h x86/kexec: add support for passing kexec handover (KHO) data 2025-05-12 23:50:41 -07:00
setup.h
sgx.h x86/sgx: Document structs and enums with '@', not '%' 2025-11-14 15:30:26 -08:00
shmbuf.h shmbuf.h: add asm/shmbuf.h to UAPI compile-test coverage 2022-02-17 09:09:37 +01:00
sigcontext.h
sigcontext32.h
siginfo.h
signal.h x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in UAPI headers 2025-03-19 11:30:53 +01:00
stat.h
statfs.h
svm.h KVM: SVM: Treat exit_code as an unsigned 64-bit value through all of KVM 2026-01-13 17:37:03 -08:00
swab.h
ucontext.h
unistd.h
vm86.h
vmx.h KVM: VMX: Inject #UD if guest tries to execute SEAMCALL or TDCALL 2025-10-20 09:37:04 -07:00
vsyscall.h