4.19-stable review patch.  If anyone has any objections, please let me know.

------------------

From: KarimAllah Ahmed <[email protected]>

commit 22a7cdcae6a4a3c8974899e62851d270956f58ce upstream.

The spec only requires the posted interrupt descriptor address to be
64-bytes aligned (i.e. bits[0:5] == 0). Using page_address_valid also
forces the address to be page aligned.

Only validate that the address does not cross the maximum physical address
without enforcing a page alignment.

Cc: Paolo Bonzini <[email protected]>
Cc: Radim Krčmář <[email protected]>
Cc: Thomas Gleixner <[email protected]>
Cc: Ingo Molnar <[email protected]>
Cc: Borislav Petkov <[email protected]>
Cc: H. Peter Anvin <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Fixes: 6de84e581c0 ("nVMX x86: check posted-interrupt descriptor addresss on 
vmentry of L2")
Signed-off-by: KarimAllah Ahmed <[email protected]>
Reviewed-by: Jim Mattson <[email protected]>
Reviewed-by: Krish Sadhuhan <[email protected]>
Signed-off-by: Radim Krčmář <[email protected]>
From: Mark Mielke <[email protected]>
Signed-off-by: Greg Kroah-Hartman <[email protected]>

---
 arch/x86/kvm/vmx.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -11733,7 +11733,7 @@ static int nested_vmx_check_apicv_contro
            !nested_exit_intr_ack_set(vcpu) ||
            (vmcs12->posted_intr_nv & 0xff00) ||
            (vmcs12->posted_intr_desc_addr & 0x3f) ||
-           (!page_address_valid(vcpu, vmcs12->posted_intr_desc_addr))))
+           (vmcs12->posted_intr_desc_addr >> cpuid_maxphyaddr(vcpu))))
                return -EINVAL;
 
        /* tpr shadow is needed by all apicv features. */


Reply via email to