Re: [git-pull -tip] x86: declaration patches

Sam Ravnborg
2009-04-10T17:27:36Z

Hi Jaswinder.

> diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h
> index 7309c0a..2f35e81 100644
> --- a/arch/x86/include/asm/hw_irq.h
> +++ b/arch/x86/include/asm/hw_irq.h
> @@ -81,6 +81,11 @@ extern void eisa_set_level_irq(unsigned int irq);
> /* SMP */
> extern void smp_apic_timer_interrupt(struct pt_regs *);
> extern void smp_spurious_interrupt(struct pt_regs *);
> +#ifdef CONFIG_X86_32
> +extern void smp_generic_interrupt(struct pt_regs *);
> +#else
> +extern asmlinkage void smp_generic_interrupt(struct pt_regs *);
> +#endif
> extern void smp_error_interrupt(struct pt_regs *);
> #ifdef CONFIG_SMP
> extern void smp_reschedule_interrupt(struct pt_regs *);
> @@ -93,6 +98,15 @@ extern asmlinkage void smp_invalidate_interrupt(struct pt_regs *);
> #endif
> #endif
>
> +#ifdef CONFIG_X86_IO_APIC
> +#ifdef CONFIG_X86_32
> +extern void smp_irq_move_cleanup_interrupt(void);
> +#else
> +extern asmlinkage void smp_irq_move_cleanup_interrupt(void);
> +#endif
> +#endif

The above is a lot ifdefs just to:
1) use asmlinkage only on 64 bit
2) hide the prototype if do not implement the function

Is there any relevant cost associated with asmlinkage or could we just make it
always asmlinkage?

> +#ifdef CONFIG_X86_64
> +asmlinkage
> +#endif
> +void smp_irq_move_cleanup_interrupt(void)
> {
> unsigned vector, me;
>

> /*
> * Handler for GENERIC_INTERRUPT_VECTOR.
> */
> +#ifdef CONFIG_X86_64
> +asmlinkage
> +#endif
> void smp_generic_interrupt(struct pt_regs *regs)
> {

Another one.

Sam