]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: x86: Fix pkru save/restore when guest CR4.PKE=0, move it to x86.c
authorBabu Moger <babu.moger@amd.com>
Tue, 12 May 2020 23:59:06 +0000 (18:59 -0500)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 13 May 2020 15:27:41 +0000 (11:27 -0400)
commit58a270f1d77211af1d3906cbac7b9f606a59534d
treed2466828e16813eef80e938f8c354ce7fa0fa2be
parent883431636502b8f4f1bf5c267d7b8061820ba562
KVM: x86: Fix pkru save/restore when guest CR4.PKE=0, move it to x86.c

Though rdpkru and wrpkru are contingent upon CR4.PKE, the PKRU
resource isn't. It can be read with XSAVE and written with XRSTOR.
So, if we don't set the guest PKRU value here(kvm_load_guest_xsave_state),
the guest can read the host value.

In case of kvm_load_host_xsave_state, guest with CR4.PKE clear could
potentially use XRSTOR to change the host PKRU value.

While at it, move pkru state save/restore to common code and the
host_pkru field to kvm_vcpu_arch.  This will let SVM support protection keys.

Cc: stable@vger.kernel.org
Reported-by: Jim Mattson <jmattson@google.com>
Signed-off-by: Babu Moger <babu.moger@amd.com>
Message-Id: <158932794619.44260.14508381096663848853.stgit@naples-babu.amd.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/include/asm/kvm_host.h
arch/x86/kvm/vmx/vmx.c
arch/x86/kvm/x86.c