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 <jbeul...@suse.com>

--- 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. */



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 <jbeul...@suse.com>

--- 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. */
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to