Re: + spin_lock_irq-enable-interrupts-while-spinning-i386-implementation.patch added to -mm tree

Ravikiran G Thirumalai
2007-01-07T21:07:20Z

On Sun, Jan 07, 2007 at 12:05:03PM -0800, Andrew Morton wrote:
> On Sun, 07 Jan 2007 05:24:45 -0800
> Daniel Walker <dwalker@mvista.com> wrote:
>
> > Now it fails with CONFIG_PARAVIRT off .
> >
> > scripts/kconfig/conf -s arch/i386/Kconfig
> > CHK include/linux/version.h
> > CHK include/linux/compile.h
> > CHK include/linux/utsrelease.h
> > UPD include/linux/compile.h
> > CC arch/i386/kernel/asm-offsets.s
> > In file included from include/linux/spinlock.h:88,
> > from include/linux/module.h:10,
> > from include/linux/crypto.h:22,
> > from arch/i386/kernel/asm-offsets.c:8:
> > include/asm/spinlock.h: In function '__raw_spin_lock_irq':
> > include/asm/spinlock.h:100: error: expected string literal before '__CLI_STI_INPUT_ARGS'
>
> bah.
>
> --- a/include/asm-i386/spinlock.h~spin_lock_irq-enable-interrupts-while-spinning-i386-implementation-fix-fix
> +++ a/include/asm-i386/spinlock.h
> @@ -14,6 +14,7 @@
> #define STI_STRING "sti"
> #define CLI_STI_CLOBBERS
> #define CLI_STI_INPUT_ARGS
> +#define __CLI_STI_INPUT_ARGS
> #endif /* CONFIG_PARAVIRT */

Apologies for the broken patch and thanks for the fix,
But, the above is needed to fix the build even with CONFIG_PARAVIRT!!!
Apparently because arch/i386/mm/boot_ioremap.c undefs CONFIG_PARAVIRT.

Question is, now we have 2 versions of spin_locks_irq implementation
with CONFIG_PARAVIRT -- one with regular cli sti and other with virtualized
CLI/STI -- sounds odd!

Thanks,
Kiran