[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [IA64] Bind event channels of VT-i domain to vcpu 0
# HG changeset patch # User awilliam@xxxxxxxxxxx # Node ID 6268aa7b91773953580279954d5cb6fed226255f # Parent c3f71a4ed653b5a643abf985e05d92039b98dec7 [IA64] Bind event channels of VT-i domain to vcpu 0 Signed-off-by: Tsunehisa Doi <Doi.Tsunehisa@xxxxxxxxxxxxxx> --- xen/arch/ia64/vmx/vmx_process.c | 15 +++++++++------ 1 files changed, 9 insertions(+), 6 deletions(-) diff -r c3f71a4ed653 -r 6268aa7b9177 xen/arch/ia64/vmx/vmx_process.c --- a/xen/arch/ia64/vmx/vmx_process.c Mon Oct 02 14:09:49 2006 -0600 +++ b/xen/arch/ia64/vmx/vmx_process.c Mon Oct 02 21:27:49 2006 -0600 @@ -198,7 +198,7 @@ void leave_hypervisor_tail(struct pt_reg { struct domain *d = current->domain; struct vcpu *v = current; - int callback_irq; + // FIXME: Will this work properly if doing an RFI??? if (!is_idle_domain(d) ) { // always comes from guest // struct pt_regs *user_regs = vcpu_regs(current); @@ -226,11 +226,14 @@ void leave_hypervisor_tail(struct pt_reg // v->arch.irq_new_pending = 1; // } - callback_irq = d->arch.hvm_domain.params[HVM_PARAM_CALLBACK_IRQ]; - if (callback_irq != 0 && local_events_need_delivery()) { - /*inject para-device call back irq*/ - v->vcpu_info->evtchn_upcall_mask = 1; - vmx_vcpu_pend_interrupt(v, callback_irq); + if (v->vcpu_id == 0) { + int callback_irq = + d->arch.hvm_domain.params[HVM_PARAM_CALLBACK_IRQ]; + if (callback_irq != 0 && local_events_need_delivery()) { + /*inject para-device call back irq*/ + v->vcpu_info->evtchn_upcall_mask = 1; + vmx_vcpu_pend_interrupt(v, callback_irq); + } } if ( v->arch.irq_new_pending ) { _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |