diff mbox

x86/vMSI-X: fix qword write covering vector control field

Message ID 56FE57FD02000078000E1F06@prv-mh.provo.novell.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jan Beulich April 1, 2016, 9:14 a.m. UTC
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 <jbeulich@suse.com>
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 <jbeulich@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. */
diff mbox

Patch

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