s390: move on_thread_stack() to processor.h
authorHeiko Carstens <hca@linux.ibm.com>
Mon, 27 Mar 2023 09:37:27 +0000 (11:37 +0200)
committerVasily Gorbik <gor@linux.ibm.com>
Tue, 4 Apr 2023 16:34:56 +0000 (18:34 +0200)
As preparation for the stackleak feature move on_thread_stack() to
processor.h like x86.

Also make it __always_inline, and slightly optimize it by reading
current task's kernel stack pointer from lowcore.

Reviewed-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/include/asm/entry-common.h
arch/s390/include/asm/processor.h

index 000de2b1e67a2a036e40105f7355025263ea3b81..fdd319a622b065c1a96bcbd0b03fbe83e8d4c17e 100644 (file)
@@ -60,9 +60,4 @@ static inline void arch_exit_to_user_mode_prepare(struct pt_regs *regs,
 
 #define arch_exit_to_user_mode_prepare arch_exit_to_user_mode_prepare
 
-static inline bool on_thread_stack(void)
-{
-       return !(((unsigned long)(current->stack) ^ current_stack_pointer) & ~(THREAD_SIZE - 1));
-}
-
 #endif
index 80ac0c1034dc81584bb734aa8d4665ab3784b42f..efffc28cbad8d1ac182a3c3f15275a4113b12eff 100644 (file)
@@ -226,6 +226,13 @@ static __always_inline unsigned long __current_stack_pointer(void)
        return sp;
 }
 
+static __always_inline bool on_thread_stack(void)
+{
+       unsigned long ksp = S390_lowcore.kernel_stack;
+
+       return !((ksp ^ current_stack_pointer) & ~(THREAD_SIZE - 1));
+}
+
 static __always_inline unsigned short stap(void)
 {
        unsigned short cpu_address;