> diff -urNp race/include/asm-i386/system.h race-fix/include/asm-i386/system.h
> --- race/include/asm-i386/system.h Tue Jul 23 18:46:44 2002
> +++ race-fix/include/asm-i386/system.h Tue Jul 23 18:47:10 2002
> @@ -143,6 +143,8 @@ struct __xchg_dummy { unsigned long a[10
> #define __xg(x) ((struct __xchg_dummy *)(x))
>
>
> +#ifdef CONFIG_X86_CMPXCHG
> +#define __ARCH_HAS_GET_SET_64BIT 1
> /*
> * The semantics of XCHGCMP8B are a bit strange, this is why
> * there is a loop and the loading of %%eax and %%edx has to
> @@ -167,7 +169,7 @@ static inline void __set_64bit (unsigned
> "lock cmpxchg8b (%0)\n\t"
> "jnz 1b"
> : /* no outputs */
> - : "D"(ptr),
> + : "r"(ptr),
> "b"(low),
> "c"(high)
> : "ax","dx","memory");
The condition is invalid, "cmpxchg" != "cmpxchg8b" and CONFIG_X86_CMPXCHG
is (correctly) set for the i486 which doesn't support the latter. You
probably need a separate option, e.g. CONFIG_X86_CMPXCHG8B, and verify the
presence of the instruction with the feature flags if the option is set
(check_config() seems the right place).
-- + Maciej W. Rozycki, Technical University of Gdansk, Poland + +--------------------------------------------------------------+ + e-mail: macro@ds2.pg.gda.pl, PGP key available +- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/