• Mark Rutland's avatar
    arm64: avoid instrumenting atomic_ll_sc.o · 3789c122
    Mark Rutland authored
    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: default avatarMark Rutland <mark.rutland@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    3789c122
Makefile 1.28 KB