From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Daley Subject: [PATCH] nested vmx: fix I/O port bitmap indexing arithmetic Date: Sat, 30 Nov 2013 11:38:46 +1300 Message-ID: <1385764726-4615-1-git-send-email-mattd@bugfuzz.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: Keir Fraser , Matthew Daley , Eddie Dong , Jan Beulich , Jun Nakajima List-Id: xen-devel@lists.xenproject.org The I/O port bitmap holds 8 ports per element, and hence the port number used when indexing into it should be shifted right by 3 bits, not 4. Signed-off-by: Matthew Daley --- Jan: I'm not sure if this also needs a fixup similar to what you did in SVM code with commit b1e87805bf. xen/arch/x86/hvm/vmx/vvmx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/x86/hvm/vmx/vvmx.c b/xen/arch/x86/hvm/vmx/vvmx.c index 248e975..7fa110e 100644 --- a/xen/arch/x86/hvm/vmx/vvmx.c +++ b/xen/arch/x86/hvm/vmx/vvmx.c @@ -2225,7 +2225,7 @@ int nvmx_n2_vmexit_handler(struct cpu_user_regs *regs, __vmread(EXIT_QUALIFICATION, &qual); port = qual >> 16; bitmap = nvmx->iobitmap[port >> 15]; - if ( bitmap[(port & 0x7fff) >> 4] & (1 << (port & 0x7)) ) + if ( bitmap[(port & 0x7fff) >> 3] & (1 << (port & 0x7)) ) nvcpu->nv_vmexit_pending = 1; if ( !nvcpu->nv_vmexit_pending ) gdprintk(XENLOG_WARNING, "L0 PIO %x.\n", port); -- 1.7.10.4