INVPCID, INVVPID, and INVEPT instructions retrieve the GPR index
similarly to find the invalidation type. Patch 1 moves the shift and
mask magic to a single place.
INVPCID invalidation type check is same for both VMX and SVM. This
instruction is not documented to verify the type before reading the
operand from memory. So, moving the check to a common place in patch 2.
v4:
- Changed commit message of the patch 1
v3:
- https://lore.kernel.org/lkml/20211103205911.1253463-1-vipinsh@xxxxxxxxxx/
- Patch 2's commit message is more detailed now.
v2:
- https://lore.kernel.org/lkml/20211103183232.1213761-1-vipinsh@xxxxxxxxxx/
- Keeping the register read visible in the functions.
- Removed INVPCID type check hardcoding and moved error condition to common
function.
v1: https://lore.kernel.org/lkml/20211011194615.2955791-1-vipinsh@xxxxxxxxxx/
Vipin Sharma (2):
KVM: VMX: Add a helper function to retrieve the GPR index for INVPCID,
INVVPID, and INVEPT
KVM: Move INVPCID type check from vmx and svm to the common
kvm_handle_invpcid()
arch/x86/kvm/svm/svm.c | 5 -----
arch/x86/kvm/vmx/nested.c | 10 ++++++----
arch/x86/kvm/vmx/vmx.c | 9 +++------
arch/x86/kvm/vmx/vmx.h | 5 +++++
arch/x86/kvm/x86.c | 3 ++-
5 files changed, 16 insertions(+), 16 deletions(-)