#endif
        .endm
 
+       .macro  clear_gp_regs
+       .irp    n,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29
+       mov     x\n, xzr
+       .endr
+       .endm
+
 /*
  * Bad Abort numbers
  *-----------------
        stp     x28, x29, [sp, #16 * 14]
 
        .if     \el == 0
+       clear_gp_regs
        mrs     x21, sp_el0
        ldr_this_cpu    tsk, __entry_task, x20  // Ensure MDSCR_EL1.SS is clear,
        ldr     x19, [tsk, #TSK_TI_FLAGS]       // since we can unmask debug
 
        apply_ssbd 1, x22, x23
 
-       mov     x29, xzr                        // fp pointed to user-space
        .else
        add     x21, sp, #S_FRAME_SIZE
        get_thread_info tsk