• Mark Rutland's avatar
    stackleak: add on/off stack variants · 8111e67d
    Mark Rutland authored
    The stackleak_erase() code dynamically handles being on a task stack or
    another stack. In most cases, this is a fixed property of the caller,
    which the caller is aware of, as an architecture might always return
    using the task stack, or might always return using a trampoline stack.
    
    This patch adds stackleak_erase_on_task_stack() and
    stackleak_erase_off_task_stack() functions which callers can use to
    avoid on_thread_stack() check and associated redundant work when the
    calling stack is known. The existing stackleak_erase() is retained as a
    safe default.
    
    There should be no functional change as a result of this patch.
    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: Kees Cook <keescook@chromium.org>
    Signed-off-by: default avatarKees Cook <keescook@chromium.org>
    Link: https://lore.kernel.org/r/20220427173128.2603085-13-mark.rutland@arm.com
    8111e67d
stackleak.c 4.48 KB