psci: use function_nocfi for cpu_resume
authorSami Tolvanen <samitolvanen@google.com>
Thu, 8 Apr 2021 18:28:36 +0000 (11:28 -0700)
committerKees Cook <keescook@chromium.org>
Thu, 8 Apr 2021 23:04:22 +0000 (16:04 -0700)
commit167d0da23f2422a7986278c1379c472a88186c75
treeac237ec9864ce67ce06774b6e24e5e09f8a7c16a
parent6c4df54ed293f6383efb97fca0e643b8dcbc3769
psci: use function_nocfi for cpu_resume

With CONFIG_CFI_CLANG, the compiler replaces function pointers with
jump table addresses, which results in __pa_symbol returning the
physical address of the jump table entry. As the jump table contains
an immediate jump to an EL1 virtual address, this typically won't
work as intended. Use function_nocfi to get the actual address of
cpu_resume.

Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Tested-by: Nathan Chancellor <nathan@kernel.org>
Signed-off-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20210408182843.1754385-12-samitolvanen@google.com
drivers/firmware/psci/psci.c