From 7d8519f63ab703e519efe1e8a6d8ccd65b8a803b Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Fri, 8 Apr 2016 22:33:17 +0200 Subject: [PATCH] x86/vMSI-X: fix qword write covering vector control field Along with using the upper 32 bits of the written value, the address also needs advancing, so that msix_write_completion() will use the correct address for re-invocation of msixtbl_write(). Signed-off-by: Jan Beulich Acked-by: Andrew Cooper --- xen/arch/x86/hvm/vmsi.c | 1 + 1 file changed, 1 insertion(+) diff --git a/xen/arch/x86/hvm/vmsi.c b/xen/arch/x86/hvm/vmsi.c index 58b16c3bfc..d450a3c6bb 100644 --- a/xen/arch/x86/hvm/vmsi.c +++ b/xen/arch/x86/hvm/vmsi.c @@ -295,6 +295,7 @@ static int msixtbl_write(struct vcpu *v, unsigned long address, if ( len != 8 || !index ) goto out; val >>= 32; + address += 4; } /* Exit to device model when unmasking and address/data got modified. */ -- 2.30.2