KVM: VMX: fixes for vmentry_l1d_flush module parameter
authorPaolo Bonzini <pbonzini@redhat.com>
Wed, 22 Aug 2018 14:43:39 +0000 (16:43 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 22 Aug 2018 14:48:39 +0000 (16:48 +0200)
commit0027ff2a75f9dcf0537ac0a65c5840b0e21a4950
tree027609ac352b5318b3cdbbfc0f5374aab96f923c
parent3b4cd0ff5407c14900bcda7ea4aeb43a65620deb
KVM: VMX: fixes for vmentry_l1d_flush module parameter

Two bug fixes:

1) missing entries in the l1d_param array; this can cause a host crash
if an access attempts to reach the missing entry. Future-proof the get
function against any overflows as well.  However, the two entries
VMENTER_L1D_FLUSH_EPT_DISABLED and VMENTER_L1D_FLUSH_NOT_REQUIRED must
not be accepted by the parse function, so disable them there.

2) invalid values must be rejected even if the CPU does not have the
bug, so test for them before checking boot_cpu_has(X86_BUG_L1TF)

... and a small refactoring, since the .cmd field is redundant with
the index in the array.

Reported-by: Bandan Das <bsd@redhat.com>
Cc: stable@vger.kernel.org
Fixes: a7b9020b06ec6d7c3f3b0d4ef1a9eba12654f4f7
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/vmx.c