From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jim Mattson Subject: [PATCH 2/2] KVM: VMX: Use just one page for I/O permission bitmaps Date: Fri, 1 Dec 2017 10:21:10 -0800 Message-ID: <20171201182110.7143-2-jmattson@google.com> References: <20171201182110.7143-1-jmattson@google.com> Cc: Jim Mattson To: kvm@vger.kernel.org, P J P Return-path: Received: from mail-io0-f195.google.com ([209.85.223.195]:38079 "EHLO mail-io0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752073AbdLASVk (ORCPT ); Fri, 1 Dec 2017 13:21:40 -0500 Received: by mail-io0-f195.google.com with SMTP id d14so12184425ioc.5 for ; Fri, 01 Dec 2017 10:21:40 -0800 (PST) In-Reply-To: <20171201182110.7143-1-jmattson@google.com> Sender: kvm-owner@vger.kernel.org List-ID: Since we no longer allow any I/O ports to be passed through to the guest, we can use the same page for I/O bitmap A and I/O bitmap B. Signed-off-by: Jim Mattson --- arch/x86/kvm/vmx.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index d16abd1808eb..0c216a137b02 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -943,8 +943,7 @@ static DEFINE_PER_CPU(struct list_head, blocked_vcpu_on_cpu); static DEFINE_PER_CPU(spinlock_t, blocked_vcpu_on_cpu_lock); enum { - VMX_IO_BITMAP_A, - VMX_IO_BITMAP_B, + VMX_IO_BITMAP, VMX_MSR_BITMAP_LEGACY, VMX_MSR_BITMAP_LONGMODE, VMX_MSR_BITMAP_LEGACY_X2APIC_APICV, @@ -958,8 +957,7 @@ enum { static unsigned long *vmx_bitmap[VMX_BITMAP_NR]; -#define vmx_io_bitmap_a (vmx_bitmap[VMX_IO_BITMAP_A]) -#define vmx_io_bitmap_b (vmx_bitmap[VMX_IO_BITMAP_B]) +#define vmx_io_bitmap (vmx_bitmap[VMX_IO_BITMAP]) #define vmx_msr_bitmap_legacy (vmx_bitmap[VMX_MSR_BITMAP_LEGACY]) #define vmx_msr_bitmap_longmode (vmx_bitmap[VMX_MSR_BITMAP_LONGMODE]) #define vmx_msr_bitmap_legacy_x2apic_apicv (vmx_bitmap[VMX_MSR_BITMAP_LEGACY_X2APIC_APICV]) @@ -5444,8 +5442,8 @@ static void vmx_vcpu_setup(struct vcpu_vmx *vmx) int i; /* I/O */ - vmcs_write64(IO_BITMAP_A, __pa(vmx_io_bitmap_a)); - vmcs_write64(IO_BITMAP_B, __pa(vmx_io_bitmap_b)); + vmcs_write64(IO_BITMAP_A, __pa(vmx_io_bitmap)); + vmcs_write64(IO_BITMAP_B, __pa(vmx_io_bitmap)); if (enable_shadow_vmcs) { vmcs_write64(VMREAD_BITMAP, __pa(vmx_vmread_bitmap)); @@ -6753,9 +6751,7 @@ static __init int hardware_setup(void) memset(vmx_vmread_bitmap, 0xff, PAGE_SIZE); memset(vmx_vmwrite_bitmap, 0xff, PAGE_SIZE); - memset(vmx_io_bitmap_a, 0xff, PAGE_SIZE); - - memset(vmx_io_bitmap_b, 0xff, PAGE_SIZE); + memset(vmx_io_bitmap, 0xff, PAGE_SIZE); memset(vmx_msr_bitmap_legacy, 0xff, PAGE_SIZE); memset(vmx_msr_bitmap_longmode, 0xff, PAGE_SIZE); -- 2.15.0.531.g2ccb3012c9-goog