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 --- 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, if ( len != 8 || !index ) goto out; val >>= 32; + address += 4; } /* Exit to device model when unmasking and address/data got modified. */