lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sat, 13 Feb 2010 16:30:07 -0800 From: ebiederm@...ssion.com (Eric W. Biederman) To: Yinghai Lu <yinghai@...nel.org> Cc: Rusty Russell <rusty@...tcorp.com.au>, Ingo Molnar <mingo@...e.hu>, Thomas Gleixner <tglx@...utronix.de>, "H. Peter Anvin" <hpa@...or.com>, Andrew Morton <akpm@...ux-foundation.org>, Suresh Siddha <suresh.b.siddha@...el.com>, linux-kernel@...r.kernel.org, Jeremy Fitzhardinge <jeremy@...p.org> Subject: Re: [PATCH 0/8] tip related: radix tree for spareseirq and logical flat clean up Yinghai Lu <yinghai@...nel.org> writes: > > Subject: [PATCH] x86: use vector_desc instead of vector_irq > > Eric pointed out that radix tree version of irq_to_desc will magnify delay on the path > of handle_irq. > use vector_desc to reduce the calling of irq_to_desc. > > next step: need to change all ack, mask, umask, eoi for all irq_chip to take irq_desc > > -v2: irq should be unsigned in 32bit handle_irq according to Eric > also reset vector_desc for lguest in setup_irq > > Signed-off-by: Yinghai Lu <yinghai@...nel.org> > > Index: linux-2.6/arch/x86/kernel/irq_32.c > =================================================================== > --- linux-2.6.orig/arch/x86/kernel/irq_32.c > +++ linux-2.6/arch/x86/kernel/irq_32.c > @@ -76,7 +76,7 @@ static void call_on_stack(void *func, vo > } > > static inline int > -execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq) > +execute_on_irq_stack(int overflow, struct irq_desc *desc) > { > union irq_ctx *curctx, *irqctx; > u32 *isp, arg1, arg2; > @@ -189,24 +189,22 @@ asmlinkage void do_softirq(void) This looks like it will fail to build here. Don't you need to update the assembly to use desc->irq instead of the now removed irq parameter? > > #else > static inline int > -execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq) { return 0; } > +execute_on_irq_stack(int overflow, struct irq_desc *desc) { return 0; } > #endif > > -bool handle_irq(unsigned irq, struct pt_regs *regs) > +bool handle_irq(struct irq_desc *desc, struct pt_regs *regs) > { > - struct irq_desc *desc; > int overflow; > > overflow = check_stack_overflow(); > > - desc = irq_to_desc(irq); > if (unlikely(!desc)) > return false; > > - if (!execute_on_irq_stack(overflow, desc, irq)) { > + if (!execute_on_irq_stack(overflow, desc)) { > if (unlikely(overflow)) > print_stack_overflow(); > - desc->handle_irq(irq, desc); > + desc->handle_irq(desc->irq, desc); > } > > return true; Eric -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists