Daniel Walker wrote: > On Sat, 2007-01-06 at 23:26 -0800, Andrew Morton wrote: > > >> diff -puN include/asm-i386/spinlock.h~spin_lock_irq-enable-interrupts-while-spinning-i386-implementation-fix include/asm-i386/spinlock.h >> --- a/include/asm-i386/spinlock.h~spin_lock_irq-enable-interrupts-while-spinning-i386-implementation-fix >> +++ a/include/asm-i386/spinlock.h >> @@ -86,17 +86,19 @@ static inline void __raw_spin_lock_flags >> static inline void __raw_spin_lock_irq(raw_spinlock_t *lock) >> { >> asm volatile("\n1:\t" >> - LOCK_PREFIX " ; decb %0\n\t" >> + LOCK_PREFIX " ; decb %[slock]\n\t" >> "jns 3f\n" >> STI_STRING "\n" >> "2:\t" >> "rep;nop\n\t" >> - "cmpb $0,%0\n\t" >> + "cmpb $0,%[slock]\n\t" >> "jle 2b\n\t" >> CLI_STRING "\n" >> "jmp 1b\n" >> "3:\n\t" >> - : "+m" (lock->slock) : : "memory"); >> + : [slock] "+m" (lock->slock) >> + : __CLI_STI_INPUT_ARGS >> + : "memory" CLI_STI_CLOBBERS); >> } >> #endif >> > > Now it fails with CONFIG_PARAVIRT off . > Now it compiles both ways. Or at least asm-offsets.c does. Testing full build... Zach