]> git.baikalelectronics.ru Git - kernel.git/commit
arm64: avoid instrumenting atomic_ll_sc.o
authorMark Rutland <mark.rutland@arm.com>
Fri, 27 Apr 2018 10:50:36 +0000 (11:50 +0100)
committerWill Deacon <will.deacon@arm.com>
Fri, 27 Apr 2018 11:14:44 +0000 (12:14 +0100)
commitf0884454509f309438362f33f491115e6692649a
treedb1c43e7d441f727f5eb519c3a3e779a3ebf3b74
parent9474fecb22ba6b23e528bba3dfdd78f2c6aa85e4
arm64: avoid instrumenting atomic_ll_sc.o

Our out-of-line atomics are built with a special calling convention,
preventing pointless stack spilling, and allowing us to patch call sites
with ARMv8.1 atomic instructions.

Instrumentation inserted by the compiler may result in calls to
functions not following this special calling convention, resulting in
registers being unexpectedly clobbered, and various problems resulting
from this.

For example, if a kernel is built with KCOV and ARM64_LSE_ATOMICS, the
compiler inserts calls to __sanitizer_cov_trace_pc in the prologues of
the atomic functions. This has been observed to result in spurious
cmpxchg failures, leading to a hang early on in the boot process.

This patch avoids such issues by preventing instrumentation of our
out-of-line atomics.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/lib/Makefile