[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [IA64] Send events to VTI domain through level triggered irq.
# HG changeset patch # User awilliam@xxxxxxxxxxxx # Node ID 21267b552cc91e1106a02c0fc4cb7265c4682a99 # Parent 74de984434c95c74e8d757e3d7b02039bcbe1c60 [IA64] Send events to VTI domain through level triggered irq. Signed-off-by: Anthony Xu <anthony.xu@xxxxxxxxx> --- xen/arch/ia64/vmx/vmx_process.c | 22 ++++------------------ 1 files changed, 4 insertions(+), 18 deletions(-) diff -r 74de984434c9 -r 21267b552cc9 xen/arch/ia64/vmx/vmx_process.c --- a/xen/arch/ia64/vmx/vmx_process.c Thu Dec 07 05:36:30 2006 -0700 +++ b/xen/arch/ia64/vmx/vmx_process.c Thu Dec 07 05:43:04 2006 -0700 @@ -206,28 +206,14 @@ void leave_hypervisor_tail(struct pt_reg do_softirq(); local_irq_disable(); -// if (user_regs != regs) -// printk("WARNING: checking pending interrupt in nested interrupt!!!\n"); - - /* FIXME: Check event pending indicator, and set - * pending bit if necessary to inject back to guest. - * Should be careful about window between this check - * and above assist, since IOPACKET_PORT shouldn't be - * injected into vmx domain. - * - * Now hardcode the vector as 0x10 temporarily - */ -// if (event_pending(v)&&(!(VLSAPIC_INSVC(v,0)&(1UL<<0x10)))) { -// VCPU(v, irr[0]) |= 1UL << 0x10; -// v->arch.irq_new_pending = 1; -// } - if (v->vcpu_id == 0) { int callback_irq = d->arch.hvm_domain.params[HVM_PARAM_CALLBACK_IRQ]; - if (callback_irq != 0) { + if (callback_irq != 0 && local_events_need_delivery()) { /* change level for para-device callback irq */ - viosapic_set_irq(d, callback_irq, local_events_need_delivery()); + /* use level irq to send discrete event */ + viosapic_set_irq(d, callback_irq, 1); + viosapic_set_irq(d, callback_irq, 0); } } _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |