• Vineet Gupta's avatar
    Ensure that kernel_init_freeable() is not inlined into non __init code · f80b0c90
    Vineet Gupta authored
    Commit d6b21238 "make sure that we always have a return path from
    kernel_execve()" reshuffled kernel_init()/init_post() to ensure that
    kernel_execve() has a caller to return to.
    
    It removed __init annotation for kernel_init() and introduced/calls a
    new routine kernel_init_freeable(). Latter however is inlined by any
    reasonable compiler (ARC gcc 4.4 in this case), causing slight code
    bloat.
    
    This patch forces kernel_init_freeable() as noinline reducing the .text
    
    bloat-o-meter vmlinux vmlinux_new
    add/remove: 1/0 grow/shrink: 0/1 up/down: 374/-334 (40)
    function                        old     new   delta
    kernel_init_freeable              -     374    +374 (.init.text)
    kernel_init                     628     294    -334 (.text)
    Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
    f80b0c90
main.c 21.6 KB