• Christopher M. Riedl's avatar
    powerpc/signal64: Remove non-inline calls from setup_sigcontext() · c6c9645e
    Christopher M. Riedl authored
    The majority of setup_sigcontext() can be refactored to execute in an
    "unsafe" context assuming an open uaccess window except for some
    non-inline function calls. Move these out into a separate
    prepare_setup_sigcontext() function which must be called first and
    before opening up a uaccess window. Non-inline function calls should be
    avoided during a uaccess window for a few reasons:
    
    	- KUAP should be enabled for as much kernel code as possible.
    	  Opening a uaccess window disables KUAP which means any code
    	  executed during this time contributes to a potential attack
    	  surface.
    
    	- Non-inline functions default to traceable which means they are
    	  instrumented for ftrace. This adds more code which could run
    	  with KUAP disabled.
    
    	- Powerpc does not currently support the objtool UACCESS checks.
    	  All code running with uaccess must be audited manually which
    	  means: less code -> less work -> fewer problems (in theory).
    
    A follow-up commit converts setup_sigcontext() to be "unsafe".
    Signed-off-by: default avatarChristopher M. Riedl <cmr@codefail.de>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20210227011259.11992-4-cmr@codefail.de
    c6c9645e
signal_64.c 28 KB