ia64/xen-unstable

changeset 3054:dbd4d9fb2071

bitkeeper revision 1.1159.179.6 (419dd936eFhwYzXtzmEE2hYiNXjHZQ)

Pass irq number in regs->orig_eax like the regular i386 code.
author cl349@arcadians.cl.cam.ac.uk
date Fri Nov 19 11:29:58 2004 +0000 (2004-11-19)
parents 33c4dd769467
children 35a34a843c72
files linux-2.6.10-rc2-xen-sparse/arch/xen/i386/kernel/irq.c linux-2.6.10-rc2-xen-sparse/arch/xen/kernel/evtchn.c
line diff
     1.1 --- a/linux-2.6.10-rc2-xen-sparse/arch/xen/i386/kernel/irq.c	Fri Nov 19 11:07:42 2004 +0000
     1.2 +++ b/linux-2.6.10-rc2-xen-sparse/arch/xen/i386/kernel/irq.c	Fri Nov 19 11:29:58 2004 +0000
     1.3 @@ -45,8 +45,10 @@ static union irq_ctx *softirq_ctx[NR_CPU
     1.4   * SMP cross-CPU interrupts have their own specific
     1.5   * handlers).
     1.6   */
     1.7 -unsigned int do_IRQ(int irq, struct pt_regs *regs)
     1.8 -{
     1.9 +fastcall unsigned int do_IRQ(struct pt_regs *regs)
    1.10 +{	
    1.11 +	/* high bits used in ret_from_ code */
    1.12 +	int irq = regs->orig_eax & 0xff;
    1.13  #ifdef CONFIG_4KSTACKS
    1.14  	union irq_ctx *curctx, *irqctx;
    1.15  	u32 *isp;
     2.1 --- a/linux-2.6.10-rc2-xen-sparse/arch/xen/kernel/evtchn.c	Fri Nov 19 11:07:42 2004 +0000
     2.2 +++ b/linux-2.6.10-rc2-xen-sparse/arch/xen/kernel/evtchn.c	Fri Nov 19 11:29:58 2004 +0000
     2.3 @@ -68,7 +68,13 @@ static int irq_bindcount[NR_IRQS];
     2.4  static unsigned long pirq_needs_unmask_notify[NR_PIRQS/sizeof(unsigned long)];
     2.5  
     2.6  /* Upcall to generic IRQ layer. */
     2.7 -extern unsigned int do_IRQ(int irq, struct pt_regs *regs);
     2.8 +#ifdef CONFIG_X86
     2.9 +extern fastcall unsigned int do_IRQ(struct pt_regs *regs);
    2.10 +#define do_IRQ(irq, regs) do {		\
    2.11 +    (regs)->orig_eax = (irq);		\
    2.12 +    do_IRQ((regs));			\
    2.13 +} while (0)
    2.14 +#endif
    2.15  
    2.16  #define VALID_EVTCHN(_chn) ((_chn) != -1)
    2.17