summaryrefslogtreecommitdiff
path: root/kernel/locking
diff options
context:
space:
mode:
authorMark Rutland <mark.rutland@arm.com>2023-01-26 16:08:30 +0100
committerIngo Molnar <mingo@kernel.org>2023-01-31 15:01:45 +0100
commit393e2ea30aec634b37004d401863428e120d5e1b (patch)
tree76b46ceae641116cb10e42836e29a56afb354c77 /kernel/locking
parent57a30218fa25c469ed507964bbf028b7a064309a (diff)
cpuidle: drivers: firmware: psci: Dont instrument suspend code
The PSCI suspend code is currently instrumentable, which is not safe as instrumentation (e.g. ftrace) may try to make use of RCU during idle periods when RCU is not watching. To fix this we need to ensure that psci_suspend_finisher() and anything it calls are not instrumented. We can do this fairly simply by marking psci_suspend_finisher() and the psci*_cpu_suspend() functions as noinstr, and the underlying helper functions as __always_inline. When CONFIG_DEBUG_VIRTUAL=y, __pa_symbol() can expand to an out-of-line instrumented function, so we must use __pa_symbol_nodebug() within psci_suspend_finisher(). The raw SMCCC invocation functions are written in assembly, and are not subject to compiler instrumentation. Signed-off-by: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Ingo Molnar <mingo@kernel.org> Link: https://lore.kernel.org/r/20230126151323.349423061@infradead.org
Diffstat (limited to 'kernel/locking')
0 files changed, 0 insertions, 0 deletions