select HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET
        select HAVE_ARCH_SECCOMP_FILTER
        select HAVE_ARCH_SOFT_DIRTY
+       select HAVE_ARCH_STACKLEAK
        select HAVE_ARCH_TRACEHOOK
        select HAVE_ARCH_TRANSPARENT_HUGEPAGE
        select HAVE_ARCH_VMAP_STACK
 
        .endm
 #endif
 
+       .macro STACKLEAK_ERASE
+#ifdef CONFIG_GCC_PLUGIN_STACKLEAK
+       brasl   %r14,stackleak_erase_on_task_stack
+#endif
+       .endm
+
        GEN_BR_THUNK %r14
 
        .section .kprobes.text, "ax"
        MBEAR   %r2
        lgr     %r3,%r14
        brasl   %r14,__do_syscall
+       STACKLEAK_ERASE
        lctlg   %c1,%c1,__LC_USER_ASCE
        mvc     __LC_RETURN_PSW(16),STACK_FRAME_OVERHEAD+__PT_PSW(%r15)
        BPON
 ENTRY(ret_from_fork)
        lgr     %r3,%r11
        brasl   %r14,__ret_from_fork
+       STACKLEAK_ERASE
        lctlg   %c1,%c1,__LC_USER_ASCE
        mvc     __LC_RETURN_PSW(16),STACK_FRAME_OVERHEAD+__PT_PSW(%r15)
        BPON
        brasl   %r14,__do_pgm_check
        tmhh    %r8,0x0001              # returning to user space?
        jno     .Lpgm_exit_kernel
+       STACKLEAK_ERASE
        lctlg   %c1,%c1,__LC_USER_ASCE
        BPON
        stpt    __LC_EXIT_TIMER
        mvc     __LC_RETURN_PSW(16),__PT_PSW(%r11)
        tmhh    %r8,0x0001              # returning to user ?
        jno     2f
+       STACKLEAK_ERASE
        lctlg   %c1,%c1,__LC_USER_ASCE
        BPON
        stpt    __LC_EXIT_TIMER