search for: msixtbl_pt_cleanup

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