ARM: 9050/1: Kconfig: Select ARCH_HAVE_NMI_SAFE_CMPXCHG where possible
authorDaniel Thompson <daniel.thompson@linaro.org>
Fri, 15 Jan 2021 12:21:10 +0000 (13:21 +0100)
committerRussell King <rmk+kernel@armlinux.org.uk>
Mon, 1 Feb 2021 19:47:59 +0000 (19:47 +0000)
commit9aaf9bb7943be36ebde177a297ff54824961408d
tree867d65fc79036cdc56097ed29532ec36e482b4ae
parent33d6d2bb7e6bf1ec60d1f4982015db8175c4cba9
ARM: 9050/1: Kconfig: Select ARCH_HAVE_NMI_SAFE_CMPXCHG where possible

Currently ARCH_HAVE_NMI_SAFE_CMPXCHG is not set on Arm systems and this
makes it impossible to enable features such as ftrace histogram triggers
on Arm platforms.

Most Arm systems are NMI safe simply because there is no NMI but this isn't
universally true meaning we cannot set ARCH_HAVE_NMI_SAFE_CMPXCHG for all
Arm devices. However the load/store exclusive implementation of cmpxchg is
NMI-safe and this implementation is used ARMv6k and later. Let's select
ARCH_HAVE_NMI_SAFE_CMPXCHG for these systems.

Note that ARMv6 uses load/store exclusive for 32-bit cmpxchg but relies on
interrupt masking for 8- and 16-bit operations. This patch is conservative
and does not change behaviour for CPU_V6.

Signed-off-by: Daniel Thompson <daniel.thompson@linaro.org>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
arch/arm/Kconfig