http://linux-acpi.bkbits.net/linux-acpi-test-2.6.5
len.brown@intel.com|ChangeSet|20040330221445|07351 len.brown

# This is a BitKeeper generated diff -Nru style patch.
#
# ChangeSet
#   2004/03/30 17:06:05-05:00 len.brown@intel.com 
#   [ACPI] allow building ACPI w/ CMPXCHG when CONFIG_M386=y
#   http://bugzilla.kernel.org/show_bug.cgi?id=2391
# 
# include/asm-i386/system.h
#   2004/03/30 17:05:19-05:00 len.brown@intel.com +1 -4
#   allow building ACPI w/ CMPXCHG when CONFIG_M386=y
# 
# include/asm-i386/acpi.h
#   2004/03/30 17:05:19-05:00 len.brown@intel.com +0 -9
#   allow building ACPI w/ CMPXCHG when CONFIG_M386=y
# 
# arch/i386/kernel/acpi/boot.c
#   2004/03/30 17:05:19-05:00 len.brown@intel.com +4 -0
#   allow building ACPI w/ CMPXCHG when CONFIG_M386=y
# 
# ChangeSet
#   2004/03/29 17:50:22-08:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-acpi
# 
# MAINTAINERS
#   2004/03/29 17:50:19-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/03/23 02:57:13-08:00 akpm@bix.(none) 
#   Merge http://linux-acpi.bkbits.net/linux-acpi-test-2.6.5
#   into bix.(none):/usr/src/bk-acpi
# 
# arch/x86_64/kernel/setup.c
#   2004/03/23 02:57:10-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# arch/x86_64/kernel/mpparse.c
#   2004/03/23 02:57:10-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# arch/i386/kernel/setup.c
#   2004/03/23 02:57:10-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/03/20 23:31:09-08:00 akpm@bix.(none) 
#   Merge http://linux-acpi.bkbits.net/linux-acpi-test-2.6.5
#   into bix.(none):/usr/src/bk-acpi
# 
# arch/x86_64/kernel/setup.c
#   2004/03/20 23:31:06-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# arch/x86_64/kernel/mpparse.c
#   2004/03/20 23:31:06-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# arch/i386/kernel/setup.c
#   2004/03/20 23:31:06-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/03/20 13:11:13-08:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-acpi
# 
# arch/x86_64/kernel/setup.c
#   2004/03/20 13:11:10-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# arch/x86_64/kernel/mpparse.c
#   2004/03/20 13:11:10-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/03/19 09:57:54-08:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-acpi
# 
# arch/i386/kernel/setup.c
#   2004/03/19 09:57:51-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/03/17 10:56:26-08:00 akpm@bix.(none) 
#   Merge http://linux-acpi.bkbits.net/linux-acpi-test-2.6.5
#   into bix.(none):/usr/src/bk-acpi
# 
# arch/x86_64/kernel/setup.c
#   2004/03/17 10:56:23-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/03/16 20:07:13-08:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-acpi
# 
# MAINTAINERS
#   2004/03/16 20:07:06-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/03/14 02:35:58-08:00 akpm@bix.(none) 
#   Merge http://linux-acpi.bkbits.net/linux-acpi-test-2.6.5
#   into bix.(none):/usr/src/bk-acpi
# 
# MAINTAINERS
#   2004/03/14 02:35:43-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/03/12 10:33:53-08:00 akpm@bix.(none) 
#   Merge bix.(none):/usr/src/bk25 into bix.(none):/usr/src/bk-acpi
# 
# MAINTAINERS
#   2004/03/12 10:33:46-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/03/12 00:33:17-08:00 akpm@bix.(none) 
#   Merge http://linux-acpi.bkbits.net/linux-acpi-test-2.6.4
#   into bix.(none):/usr/src/bk-acpi
# 
# MAINTAINERS
#   2004/03/12 00:33:04-08:00 akpm@bix.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/03/06 12:42:53-08:00 akpm@mnm.(none) 
#   Merge mnm.(none):/usr/src/bk25 into mnm.(none):/usr/src/bk-acpi
# 
# MAINTAINERS
#   2004/03/06 12:42:46-08:00 akpm@mnm.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/03/05 15:03:13-08:00 akpm@mnm.(none) 
#   Merge http://linux-acpi.bkbits.net/linux-acpi-test-2.6.4
#   into mnm.(none):/usr/src/bk-acpi
# 
# MAINTAINERS
#   2004/03/05 15:03:06-08:00 akpm@mnm.(none) +0 -0
#   Auto merged
# 
# ChangeSet
#   2004/03/02 12:01:50-08:00 akpm@mnm.(none) 
#   Merge mnm.(none):/usr/src/bk25 into mnm.(none):/usr/src/bk-acpi
# 
# MAINTAINERS
#   2004/03/02 12:01:43-08:00 akpm@mnm.(none) +0 -0
#   Auto merged
# 
diff -Nru a/arch/i386/kernel/acpi/boot.c b/arch/i386/kernel/acpi/boot.c
--- a/arch/i386/kernel/acpi/boot.c	Tue Mar 30 20:02:13 2004
+++ b/arch/i386/kernel/acpi/boot.c	Tue Mar 30 20:02:13 2004
@@ -67,6 +67,10 @@
 static u64 acpi_lapic_addr __initdata = APIC_DEFAULT_PHYS_BASE;
 #endif
 
+#ifndef __HAVE_ARCH_CMPXCHG
+#warning ACPI uses CMPXCHG, i486 and later hardware
+#endif
+
 /* --------------------------------------------------------------------------
                               Boot-time Configuration
    -------------------------------------------------------------------------- */
diff -Nru a/include/asm-i386/acpi.h b/include/asm-i386/acpi.h
--- a/include/asm-i386/acpi.h	Tue Mar 30 20:02:13 2004
+++ b/include/asm-i386/acpi.h	Tue Mar 30 20:02:13 2004
@@ -54,15 +54,6 @@
 #define ACPI_ENABLE_IRQS()  local_irq_enable()
 #define ACPI_FLUSH_CPU_CACHE()	wbinvd()
 
-/*
- * A brief explanation as GNU inline assembly is a bit hairy
- *  %0 is the output parameter in EAX ("=a")
- *  %1 and %2 are the input parameters in ECX ("c")
- *  and an immediate value ("i") respectively
- *  All actual register references are preceded with "%%" as in "%%edx"
- *  Immediate values in the assembly are preceded by "$" as in "$0x1"
- *  The final asm parameter are the operation altered non-output registers.
- */
 
 static inline int
 __acpi_acquire_global_lock (unsigned int *lock)
diff -Nru a/include/asm-i386/system.h b/include/asm-i386/system.h
--- a/include/asm-i386/system.h	Tue Mar 30 20:02:13 2004
+++ b/include/asm-i386/system.h	Tue Mar 30 20:02:13 2004
@@ -241,6 +241,7 @@
 
 #ifdef CONFIG_X86_CMPXCHG
 #define __HAVE_ARCH_CMPXCHG 1
+#endif
 
 static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
 				      unsigned long new, int size)
@@ -273,10 +274,6 @@
 	((__typeof__(*(ptr)))__cmpxchg((ptr),(unsigned long)(o),\
 					(unsigned long)(n),sizeof(*(ptr))))
     
-#else
-/* Compiling for a 386 proper.	Is it worth implementing via cli/sti?  */
-#endif
-
 #ifdef __KERNEL__
 struct alt_instr { 
 	__u8 *instr; 		/* original instruction */