Skip to content

Commit 393999f

Browse files
Linus WalleijRussell King (Oracle)
authored andcommitted
ARM: 9389/2: mm: Define prototypes for all per-processor calls
Each CPU type ("proc") has assembly calls for initializing and setting up the MM context, idle and so forth. These calls have the C form of e.g.: void cpu_arm920_init(void); However this prototype is not really specified, instead it is generated by the glue code in <asm/glue-proc.h> and the prototype is implicit from the generic prototype defined in <asm/proc-fns.h> such as cpu_proc_init() in this case. (This is a bit similar to the "interface" or inheritance concept in other languages.) To be able to annotate these assembly calls for CFI, they all need to have a proper C prototype per CPU call. Define these in a new C file that is only compiled when we use CFI, and add __ADDRESSABLE() to each so the compiler knows that these will be addressed (they are not explicitly called in C, they are called by way of cpu_proc_init() etc). It is a bit of definitions, but we do not expect new ARM32 CPUs to appear very much so it should be pretty static. 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>
1 parent 51db13a commit 393999f

2 files changed

Lines changed: 501 additions & 0 deletions

File tree

arch/arm/mm/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ obj-$(CONFIG_CPU_V6) += proc-v6.o
9090
obj-$(CONFIG_CPU_V6K) += proc-v6.o
9191
obj-$(CONFIG_CPU_V7) += proc-v7.o proc-v7-bugs.o
9292
obj-$(CONFIG_CPU_V7M) += proc-v7m.o
93+
obj-$(CONFIG_CFI_CLANG) += proc.o
9394

9495
obj-$(CONFIG_OUTER_CACHE) += l2c-common.o
9596
obj-$(CONFIG_CACHE_B15_RAC) += cache-b15-rac.o

0 commit comments

Comments
 (0)