*  (inspired by Andi Kleen's thunk_64.S)
  * Subject to the GNU public license, v.2. No warranty of any kind.
  */
-
        #include <linux/linkage.h>
+       #include <asm/asm.h>
 
 #ifdef CONFIG_TRACE_IRQFLAGS
        /* put return address in eax (arg1) */
        popl %ecx
        popl %eax
        ret
+       _ASM_NOKPROBE(\name)
        .endm
 
        thunk_ra trace_hardirqs_on_thunk,trace_hardirqs_on_caller
 
 #include <linux/linkage.h>
 #include <asm/dwarf2.h>
 #include <asm/calling.h>
+#include <asm/asm.h>
 
        /* rdi: arg1 ... normal C conventions. rax is saved/restored. */
        .macro THUNK name, func, put_ret_addr_in_rdi=0
        call \func
        jmp  restore
        CFI_ENDPROC
+       _ASM_NOKPROBE(\name)
        .endm
 
 #ifdef CONFIG_TRACE_IRQFLAGS
        RESTORE_ARGS
        ret
        CFI_ENDPROC
+       _ASM_NOKPROBE(restore)