• Mark Rutland's avatar
    lkdtm/stackleak: prevent unexpected stack usage · f03a5093
    Mark Rutland authored
    The lkdtm_STACKLEAK_ERASING() test is instrumentable and runs with IRQs
    unmasked, so it's possible for unrelated code to clobber the task stack
    and/or manipulate current->lowest_stack while the test is running,
    resulting in spurious failures.
    
    The regular stackleak erasing code is non-instrumentable and runs with
    IRQs masked, preventing similar issues.
    
    Make the body of the test non-instrumentable, and run it with IRQs
    masked, avoiding such spurious failures.
    Signed-off-by: default avatarMark Rutland <mark.rutland@arm.com>
    Cc: Alexander Popov <alex.popov@linux.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: default avatarKees Cook <keescook@chromium.org>
    Link: https://lore.kernel.org/r/20220427173128.2603085-11-mark.rutland@arm.com
    f03a5093
stackleak.c 3.5 KB