diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2024-04-23 08:48:42 +0100 |
---|---|---|
committer | Russell King (Oracle) <rmk+kernel@armlinux.org.uk> | 2024-04-29 14:14:20 +0100 |
commit | 393999fa96273bab8d6efb2f4724030916afd61b (patch) | |
tree | fe7a36bcb0b937781ba4a3c54fc020c99251f441 /arch/arm/mm/Makefile | |
parent | 51db13aa8d09ecd33ff712d888a8cfe5ac89d6de (diff) | |
download | linux-393999fa96273bab8d6efb2f4724030916afd61b.tar.gz linux-393999fa96273bab8d6efb2f4724030916afd61b.tar.bz2 linux-393999fa96273bab8d6efb2f4724030916afd61b.zip |
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>
Diffstat (limited to 'arch/arm/mm/Makefile')
-rw-r--r-- | arch/arm/mm/Makefile | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm/mm/Makefile b/arch/arm/mm/Makefile index 17665381be96..f1f231f20ff9 100644 --- a/arch/arm/mm/Makefile +++ b/arch/arm/mm/Makefile @@ -90,6 +90,7 @@ obj-$(CONFIG_CPU_V6) += proc-v6.o obj-$(CONFIG_CPU_V6K) += proc-v6.o obj-$(CONFIG_CPU_V7) += proc-v7.o proc-v7-bugs.o obj-$(CONFIG_CPU_V7M) += proc-v7m.o +obj-$(CONFIG_CFI_CLANG) += proc.o obj-$(CONFIG_OUTER_CACHE) += l2c-common.o obj-$(CONFIG_CACHE_B15_RAC) += cache-b15-rac.o |