Displaying 3 results from an estimated 3 matches for "msixtbl_pt_cleanup".
2013 Nov 26
6
[PATCH v5] x86: properly handle MSI-X unmask operation from guests
...l 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_handler(struct vcpu *v)
+{
+ unsigned long ctrl_address = v->arch.pending_msix_unmask.ctrl_address;
+
+ if ( ctrl_address == 0 )
+ return 1;
+
+...
2013 Nov 22
10
[PATCH v4] x86: properly handle MSI-X unmask operation from guests
...st_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);
local_irq_restore(flags);
}
+
+int msix_post_handler(struct vcpu *v)
+{
+ int rc;
+
+ if ( v->arch.pending_msix_unmask.valid == 0 )
+ return 0;
+
+ v->arch.pending_msix_unmask.valid = 0;
+...
2013 May 08
11
[PATCH 1/2] xen, libxc: init msix addr/data with value from qemu via hypercall
...);
struct pirq;
-int msixtbl_pt_register(struct domain *, struct pirq *, uint64_t gtable);
+int msixtbl_pt_register(struct domain *, struct pirq *, uint64_t gtable,
+ uint16_t entry_nr, uint32_t msi_ad[3]);
void msixtbl_pt_unregister(struct domain *, struct pirq *);
void msixtbl_pt_cleanup(struct domain *d);
--
1.7.3