xtensa: consolidate kernel stack size related definitions
authorMax Filippov <jcmvbkbc@gmail.com>
Mon, 4 Dec 2017 18:47:43 +0000 (10:47 -0800)
committerMax Filippov <jcmvbkbc@gmail.com>
Sun, 10 Dec 2017 22:48:55 +0000 (14:48 -0800)
Define kernel stack size in kmem_layout and use it in
current_thread_info, GET_THREAD_INFO, THREAD_SIZE and THERAD_SIZE_ORDER
definitions.

Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
arch/xtensa/include/asm/current.h
arch/xtensa/include/asm/kmem_layout.h
arch/xtensa/include/asm/ptrace.h
arch/xtensa/include/asm/thread_info.h

index 47e46dc..5d98a7a 100644 (file)
@@ -11,6 +11,8 @@
 #ifndef _XTENSA_CURRENT_H
 #define _XTENSA_CURRENT_H
 
+#include <asm/thread_info.h>
+
 #ifndef __ASSEMBLY__
 
 #include <linux/thread_info.h>
@@ -26,8 +28,6 @@ static inline struct task_struct *get_current(void)
 
 #else
 
-#define CURRENT_SHIFT 13
-
 #define GET_CURRENT(reg,sp)            \
        GET_THREAD_INFO(reg,sp);        \
        l32i reg, reg, TI_TASK          \
index 561f872..28f9260 100644 (file)
@@ -71,4 +71,7 @@
 
 #endif
 
+#define KERNEL_STACK_SHIFT     13
+#define KERNEL_STACK_SIZE      (1 << KERNEL_STACK_SHIFT)
+
 #endif
index e2d9c5e..05beae3 100644 (file)
@@ -10,6 +10,7 @@
 #ifndef _XTENSA_PTRACE_H
 #define _XTENSA_PTRACE_H
 
+#include <asm/kmem_layout.h>
 #include <uapi/asm/ptrace.h>
 
 /*
@@ -38,8 +39,6 @@
  *             +-----------------------+ --------
  */
 
-#define KERNEL_STACK_SIZE (2 * PAGE_SIZE)
-
 /*  Offsets for exception_handlers[] (3 x 64-entries x 4-byte tables). */
 
 #define EXC_TABLE_KSTK         0x004   /* Kernel Stack */
index 7be2400..71c9865 100644 (file)
@@ -11,7 +11,9 @@
 #ifndef _XTENSA_THREAD_INFO_H
 #define _XTENSA_THREAD_INFO_H
 
-#ifdef __KERNEL__
+#include <asm/kmem_layout.h>
+
+#define CURRENT_SHIFT KERNEL_STACK_SHIFT
 
 #ifndef __ASSEMBLY__
 # include <asm/processor.h>
@@ -84,7 +86,7 @@ struct thread_info {
 static inline struct thread_info *current_thread_info(void)
 {
        struct thread_info *ti;
-        __asm__("extui %0,a1,0,13\n\t"
+        __asm__("extui %0, a1, 0, "__stringify(CURRENT_SHIFT)"\n\t"
                 "xor %0, a1, %0" : "=&r" (ti) : );
        return ti;
 }
@@ -93,7 +95,7 @@ static inline struct thread_info *current_thread_info(void)
 
 /* how to get the thread information struct from ASM */
 #define GET_THREAD_INFO(reg,sp) \
-       extui reg, sp, 0, 13; \
+       extui reg, sp, 0, CURRENT_SHIFT; \
        xor   reg, sp, reg
 #endif
 
@@ -130,8 +132,7 @@ static inline struct thread_info *current_thread_info(void)
  */
 #define TS_USEDFPU             0x0001  /* FPU was used by this task this quantum (SMP) */
 
-#define THREAD_SIZE 8192       //(2*PAGE_SIZE)
-#define THREAD_SIZE_ORDER 1
+#define THREAD_SIZE KERNEL_STACK_SIZE
+#define THREAD_SIZE_ORDER (KERNEL_STACK_SHIFT - PAGE_SHIFT)
 
-#endif /* __KERNEL__ */
 #endif /* _XTENSA_THREAD_INFO */