Skip to content

Commit 393999f

Browse files
linuswRussell 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 <[email protected]> Reviewed-by: Sami Tolvanen <[email protected]> Signed-off-by: Linus Walleij <[email protected]> Signed-off-by: Russell King (Oracle) <[email protected]>
1 parent 51db13a commit 393999f

File tree

2 files changed

+501
-0
lines changed

2 files changed

+501
-0
lines changed

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)