Commit 9562f3dc authored by Sami Tolvanen's avatar Sami Tolvanen Committed by Kees Cook
Browse files

arm64: add __nocfi to __apply_alternatives



__apply_alternatives makes indirect calls to functions whose address
is taken in assembly code using the alternative_cb macro. With
non-canonical CFI, the compiler won't replace these function
references with the jump table addresses, which trips CFI. Disable CFI
checking in the function to work around the issue.

Signed-off-by: default avatarSami Tolvanen <samitolvanen@google.com>
Reviewed-by: default avatarKees Cook <keescook@chromium.org>
Tested-by: default avatarNathan Chancellor <nathan@kernel.org>
Signed-off-by: default avatarKees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20210408182843.1754385-16-samitolvanen@google.com
parent cbdac841
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -133,7 +133,7 @@ static void clean_dcache_range_nopatch(u64 start, u64 end)
	} while (cur += d_size, cur < end);
}

static void __apply_alternatives(void *alt_region,  bool is_module,
static void __nocfi __apply_alternatives(void *alt_region,  bool is_module,
					 unsigned long *feature_mask)
{
	struct alt_instr *alt;