Displaying 2 results from an estimated 2 matches for "pending_msix_unmask".
2013 Nov 22
10
[PATCH v4] x86: properly handle MSI-X unmask operation from guests
...n/arch/x86/hvm/vmsi.c
+++ b/xen/arch/x86/hvm/vmsi.c
@@ -293,7 +293,11 @@ static int msixtbl_write(struct vcpu *v, unsigned long address,
/* exit to device model if address/data has been modified */
if ( test_and_clear_bit(nr_entry, &entry->table_flags) )
+ {
+ v->arch.pending_msix_unmask.valid = 1;
+ v->arch.pending_msix_unmask.ctrl_address = address;
goto out;
+ }
virt = msixtbl_addr_to_virt(entry, address);
if ( !virt )
@@ -528,3 +532,17 @@ void msixtbl_pt_cleanup(struct domain *d)
spin_unlock(&d->arch.hvm_domain.msixtbl_list_lock);...
2013 Nov 26
6
[PATCH v5] x86: properly handle MSI-X unmask operation from guests
...n/arch/x86/hvm/vmsi.c
+++ b/xen/arch/x86/hvm/vmsi.c
@@ -293,7 +293,10 @@ static int msixtbl_write(struct vcpu *v, unsigned long address,
/* exit to device model if address/data has been modified */
if ( test_and_clear_bit(nr_entry, &entry->table_flags) )
+ {
+ v->arch.pending_msix_unmask.ctrl_address = address;
goto out;
+ }
virt = msixtbl_addr_to_virt(entry, address);
if ( !virt )
@@ -528,3 +531,15 @@ void msixtbl_pt_cleanup(struct domain *d)
spin_unlock(&d->arch.hvm_domain.msixtbl_list_lock);
local_irq_restore(flags);
}
+
+bool_t msix_post...