mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
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 <[email protected]> Acked-by: Mike Frysinger <[email protected]> Acked-by: Paul Mundt <[email protected]> Acked-by: Hans-Christian Egtvedt <[email protected]> Acked-by: Benjamin Herrenschmidt <[email protected]> Acked-by: Chris Metcalf <[email protected]> Acked-by: Richard Henderson <[email protected]> CC: Mikael Starvik <[email protected]> Acked-by: David Howells <[email protected]> CC: Yoshinori Sato <[email protected]> CC: Tony Luck <[email protected]> CC: Hirokazu Takata <[email protected]> CC: Geert Uytterhoeven <[email protected]> CC: Michal Simek <[email protected]> Acked-by: Ralf Baechle <[email protected]> CC: Kyle McMartin <[email protected]> CC: Martin Schwidefsky <[email protected]> CC: Chen Liqin <[email protected]> CC: "David S. Miller" <[email protected]> CC: Ingo Molnar <[email protected]> CC: Chris Zankel <[email protected]> Signed-off-by: Len Brown <[email protected]>
This commit is contained in:
parent
9fb0bfe140
commit
df013ffb81
13 changed files with 15 additions and 0 deletions
|
|
@ -11,6 +11,7 @@ config SUPERH
|
|||
select HAVE_DMA_ATTRS
|
||||
select HAVE_IRQ_WORK
|
||||
select HAVE_PERF_EVENTS
|
||||
select ARCH_HAVE_NMI_SAFE_CMPXCHG if (GUSA_RB || CPU_SH4A)
|
||||
select PERF_USE_VMALLOC
|
||||
select HAVE_KERNEL_GZIP
|
||||
select HAVE_KERNEL_BZIP2
|
||||
|
|
|
|||
Loading…
Reference in a new issue