linux/arch/m68k
Huang Ying df013ffb81 Add Kconfig option ARCH_HAVE_NMI_SAFE_CMPXCHG
cmpxchg() is widely used by lockless code, including NMI-safe lockless
code.  But on some architectures, the cmpxchg() implementation is not
NMI-safe, on these architectures the lockless code may need a
spin_trylock_irqsave() based implementation.

This patch adds a Kconfig option: ARCH_HAVE_NMI_SAFE_CMPXCHG, so that
NMI-safe lockless code can depend on it or provide different
implementation according to it.

On many architectures, cmpxchg is only NMI-safe for several specific
operand sizes. So, ARCH_HAVE_NMI_SAFE_CMPXCHG define in this patch
only guarantees cmpxchg is NMI-safe for sizeof(unsigned long).

Signed-off-by: Huang Ying <ying.huang@intel.com>
Acked-by: Mike Frysinger <vapier@gentoo.org>
Acked-by: Paul Mundt <lethal@linux-sh.org>
Acked-by: Hans-Christian Egtvedt <hans-christian.egtvedt@atmel.com>
Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Chris Metcalf <cmetcalf@tilera.com>
Acked-by: Richard Henderson <rth@twiddle.net>
CC: Mikael Starvik <starvik@axis.com>
Acked-by: David Howells <dhowells@redhat.com>
CC: Yoshinori Sato <ysato@users.sourceforge.jp>
CC: Tony Luck <tony.luck@intel.com>
CC: Hirokazu Takata <takata@linux-m32r.org>
CC: Geert Uytterhoeven <geert@linux-m68k.org>
CC: Michal Simek <monstr@monstr.eu>
Acked-by: Ralf Baechle <ralf@linux-mips.org>
CC: Kyle McMartin <kyle@mcmartin.ca>
CC: Martin Schwidefsky <schwidefsky@de.ibm.com>
CC: Chen Liqin <liqin.chen@sunplusct.com>
CC: "David S. Miller" <davem@davemloft.net>
CC: Ingo Molnar <mingo@redhat.com>
CC: Chris Zankel <chris@zankel.net>
Signed-off-by: Len Brown <len.brown@intel.com>
2011-08-03 11:12:37 -04:00
..
amiga m68k/amiga: Reclaim Chip RAM for PPC exception handlers 2011-03-16 19:10:40 +01:00
apollo m68k: apollo core - Kill warn_unused_result warnings 2009-01-12 20:56:35 +01:00
atari input/atari: Use the correct mouse interrupt hook 2011-05-19 18:19:11 +02:00
bvme6000 m68k: Switch do_timer() to xtime_update() 2011-01-31 14:55:46 +01:00
configs m68k: merge m68k and m68knommu arch directories 2011-03-25 14:05:13 +10:00
emu m68k/atari: ARAnyM - Add support for network access 2011-03-16 19:10:41 +01:00
fpsp040 Fix common misspellings 2011-03-31 11:26:23 -03:00
hp300 m68k: hp300 - Checkpatch cleanup 2010-05-17 21:15:40 +02:00
ifpsp060 Fix common misspellings 2011-03-31 11:26:23 -03:00
include/asm Merge branch 'setns' 2011-05-28 10:51:01 -07:00
kernel m68k: use kernel processor defines for conditional optimizations 2011-06-14 11:42:29 +10:00
lib m68k: use kernel processor defines for conditional optimizations 2011-06-14 11:42:29 +10:00
mac fix comment typos concerning "consistent" 2010-12-10 16:04:28 +01:00
math-emu m68k: Makefiles - Change to new flags variables 2011-03-16 19:10:41 +01:00
mm mm: now that all old mmu_gather code is gone, remove the storage 2011-05-25 08:39:16 -07:00
mvme16x m68k: Switch do_timer() to xtime_update() 2011-01-31 14:55:46 +01:00
mvme147 m68k: Switch do_timer() to xtime_update() 2011-01-31 14:55:46 +01:00
platform m68knommu: Remove obsolete #include <linux/sys.h> 2011-05-24 15:17:19 +10:00
q40 Fix common misspellings 2011-03-31 11:26:23 -03:00
sun3 m68k: Switch do_timer() to xtime_update() 2011-01-31 14:55:46 +01:00
sun3x include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
tools/amiga Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
install.sh kbuild: use INSTALLKERNEL to select customized installkernel script 2009-09-20 12:18:14 +02:00
Kconfig Add Kconfig option ARCH_HAVE_NMI_SAFE_CMPXCHG 2011-08-03 11:12:37 -04:00
Kconfig.debug m68k: merge m68k and m68knommu arch directories 2011-03-25 14:05:13 +10:00
Kconfig.mmu m68k: merge m68k and m68knommu arch directories 2011-03-25 14:05:13 +10:00
Kconfig.nommu m68knommu: create config options for CPU classes 2011-06-14 11:42:29 +10:00
Makefile m68k: merge m68k and m68knommu arch directories 2011-03-25 14:05:13 +10:00
Makefile_mm m68k: merge m68k and m68knommu arch directories 2011-03-25 14:05:13 +10:00
Makefile_no m68k: merge m68k and m68knommu arch directories 2011-03-25 14:05:13 +10:00