]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
ARM: 9384/2: mm: Make tlbflush routines CFI safe
authorArd Biesheuvel <ardb@kernel.org>
Tue, 23 Apr 2024 07:25:41 +0000 (08:25 +0100)
committerRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
Mon, 29 Apr 2024 13:14:15 +0000 (14:14 +0100)
commit6b0ef2792c223636a86f2c9c3fcb26502a03d5a7
tree6cb3954b3a7b9dd5b6ad6b938167893004132653
parent4cece764965020c22cff7665b18a012006359095
ARM: 9384/2: mm: Make tlbflush routines CFI safe

Instead of avoiding CFI entirely on the TLB flush helpers, reorganize
the code so that the CFI machinery can deal with it. The important
things to take into account are:
- functions in asm called indirectly from C need to be defined using
  SYM_TYPED_FUNC_START()
- a reference to the asm function needs to be visible to the compiler,
  in order to get it to emit the typeid symbol.

The latter means that defining the cpu_tlb_fns structs is best done from
C code, so that the references in the static initializers will be
visible to the compiler.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Tested-by: Kees Cook <keescook@chromium.org>
Reviewed-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
arch/arm/mm/Makefile
arch/arm/mm/proc-macros.S
arch/arm/mm/tlb-fa.S
arch/arm/mm/tlb-v4.S
arch/arm/mm/tlb-v4wb.S
arch/arm/mm/tlb-v4wbi.S
arch/arm/mm/tlb-v6.S
arch/arm/mm/tlb-v7.S
arch/arm/mm/tlb.c [new file with mode: 0644]