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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
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