arm64: don't restore GPRs when context tracking
authorMark Rutland <mark.rutland@arm.com>
Wed, 11 Jul 2018 13:56:46 +0000 (14:56 +0100)
committerWill Deacon <will.deacon@arm.com>
Thu, 12 Jul 2018 13:49:47 +0000 (14:49 +0100)
Now that syscalls are invoked with pt_regs, we no longer need to ensure
that the argument regsiters are live in the entry assembly, and it's
fine to not restore them after context_tracking_user_exit() has
corrupted them.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/kernel/entry.S

index 156c4e3..c41b84d 100644 (file)
  * Context tracking subsystem.  Used to instrument transitions
  * between user and kernel mode.
  */
-       .macro ct_user_exit, syscall = 0
+       .macro ct_user_exit
 #ifdef CONFIG_CONTEXT_TRACKING
        bl      context_tracking_user_exit
-       .if \syscall == 1
-       /*
-        * Save/restore needed during syscalls.  Restore syscall arguments from
-        * the values already saved on stack during kernel_entry.
-        */
-       ldp     x0, x1, [sp]
-       ldp     x2, x3, [sp, #S_X2]
-       ldp     x4, x5, [sp, #S_X4]
-       ldp     x6, x7, [sp, #S_X6]
-       .endif
 #endif
        .endm