WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] Re: [PATCH] xen: make events.c compile for ia64.

To: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
Subject: [Xen-devel] Re: [PATCH] xen: make events.c compile for ia64.
From: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Date: Tue, 07 Oct 2008 08:10:44 -0700
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx, xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Tue, 07 Oct 2008 08:11:10 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20081007022519.GD31420%yamahata@xxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <20081007022519.GD31420%yamahata@xxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 2.0.0.16 (X11/20080919)
Isaku Yamahata wrote:
This patch is for the pv_ops patch queue repository. Later more generalization to events.c would be necessary because
it assumes x86. For example, LEGACY_IRQS doesn't make sense for ia64.
Since those bits are for dom0 support and pv_ops xen/ia64 doesn't
support dom0 yet, I made it just compile for ia64 for now.

Yeah, I'd assumed you'd define LEGACY_IRQS to 0.

xen: make events.c compile for ia64.

xen_do_irq() is x86 specific because it calls
exit_idle(), handle_irq().
Move it to arch specific file for ia64 support.

Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>

diff -r 4f7cc06552f8 drivers/xen/events.c
--- a/drivers/xen/events.c      Mon Oct 06 15:24:22 2008 +0900
+++ b/drivers/xen/events.c      Mon Oct 06 16:02:56 2008 +0900
@@ -29,7 +29,6 @@
#include <asm/ptrace.h>
 #include <asm/irq.h>
-#include <asm/idle.h>
 #include <asm/sync_bitops.h>
 #include <asm/xen/hypercall.h>
 #include <asm/xen/hypervisor.h>
@@ -814,33 +813,6 @@
        return IRQ_HANDLED;
 }
-
-static void xen_do_irq(unsigned irq, struct pt_regs *regs)

I was hoping this would be generic enough to work on ia64, if you define an appropriate handle_irq() (and exit_idle, I guess). Is there something else you need to do here?

-{
-       struct pt_regs *old_regs = set_irq_regs(regs);
-
-       if (WARN_ON(irq == -1))
-               return;
-
-       {
-               struct irq_info *info = info_for_irq(irq);
-
-               if (info->type == IRQT_PIRQ)
-                       printk("xen_do_irq: pirq %d, gsi %d, vector %d\n",
-                               irq, info->u.pirq.gsi, info->u.pirq.vector);
-       }
-
-       exit_idle();
-       irq_enter();
-
-       //printk("cpu %d handling irq %d\n", smp_processor_id(), info->irq);
-       handle_irq(irq, regs);
-
-       irq_exit();
-
-       set_irq_regs(old_regs);
-}
-
 /*
  * Search the CPUs pending events bitmasks.  For each one found, map
  * the event number to an irq, and feed it into do_IRQ() for
diff -r 4f7cc06552f8 include/asm-x86/xen/events.h
--- a/include/asm-x86/xen/events.h      Mon Oct 06 15:24:22 2008 +0900
+++ b/include/asm-x86/xen/events.h      Mon Oct 06 16:02:56 2008 +0900
@@ -1,5 +1,7 @@
 #ifndef ASM_X86__XEN__EVENTS_H
 #define ASM_X86__XEN__EVENTS_H
+
+#include <asm/idle.h>
enum ipi_vector {
        XEN_RESCHEDULE_VECTOR,
@@ -15,4 +17,30 @@
        return raw_irqs_disabled_flags(regs->flags);
 }
+static inline void xen_do_irq(unsigned irq, struct pt_regs *regs)
+{
+       struct pt_regs *old_regs = set_irq_regs(regs);
+
+       if (WARN_ON(irq == -1))
+               return;
+
+       {
+               struct irq_info *info = info_for_irq(irq);
+
+               if (info->type == IRQT_PIRQ)
+                       printk("xen_do_irq: pirq %d, gsi %d, vector %d\n",
+                               irq, info->u.pirq.gsi, info->u.pirq.vector);
+       }
+
+       exit_idle();
+       irq_enter();
+
+       //printk("cpu %d handling irq %d\n", smp_processor_id(), info->irq);
+       handle_irq(irq, regs);
+
+       irq_exit();
+
+       set_irq_regs(old_regs);
+}
+
 #endif /* ASM_X86__XEN__EVENTS_H */




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>