• Linus Walleij's avatar
    ARM: 9389/2: mm: Define prototypes for all per-processor calls · 393999fa
    Linus Walleij authored
    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: default avatarKees Cook <keescook@chromium.org>
    Reviewed-by: default avatarSami Tolvanen <samitolvanen@google.com>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Signed-off-by: default avatarRussell King (Oracle) <rmk+kernel@armlinux.org.uk>
    393999fa
Makefile 3.78 KB