[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] Re: [PATCH] xen: make events.c compile for ia64.
Isaku Yamahata wrote: This patch is for the pv_ops patch queue repository. Later more generalization to events.c would be necessary becauseit 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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |