KVM: x86: block guest protection keys unless the host has them enabled
authorPaolo Bonzini <pbonzini@redhat.com>
Thu, 24 Aug 2017 09:59:31 +0000 (11:59 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 25 Aug 2017 07:28:02 +0000 (09:28 +0200)
commitc469268cd523245cc58255f6696e0c295485cb0b
treeb29e228414a3b176926a4860918444d34b5565b6
parentbb9b52bd51dcb17b965a30167d0812902c1b9927
KVM: x86: block guest protection keys unless the host has them enabled

If the host has protection keys disabled, we cannot read and write the
guest PKRU---RDPKRU and WRPKRU fail with #GP(0) if CR4.PKE=0.  Block
the PKU cpuid bit in that case.

This ensures that guest_CR4.PKE=1 implies host_CR4.PKE=1.

Fixes: 1be0e61c1f255faaeab04a390e00c8b9b9042870
Cc: stable@vger.kernel.org
Reviewed-by: David Hildenbrand <david@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/cpuid.c