[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.