[PATCH] powerpc: Unify udbg (#2)
[powerpc.git] / include / asm-powerpc / thread_info.h
index ab17db7..ac1e80e 100644 (file)
@@ -37,8 +37,7 @@ struct thread_info {
        int             preempt_count;          /* 0 => preemptable,
                                                   <0 => BUG */
        struct restart_block restart_block;
-       /* set by force_successful_syscall_return */
-       unsigned char   syscall_noerror;
+       void *nvgprs_frame;
        /* low level flags - has atomic operations done on it */
        unsigned long   flags ____cacheline_aligned_in_smp;
 };
@@ -65,23 +64,27 @@ struct thread_info {
 
 /* thread information allocation */
 
-#ifdef CONFIG_DEBUG_STACK_USAGE
-#define THREAD_INFO_GFP                GFP_KERNEL | __GFP_ZERO
-#else
-#define THREAD_INFO_GFP                GFP_KERNEL
-#endif
-
 #if THREAD_SHIFT >= PAGE_SHIFT
 
 #define THREAD_ORDER   (THREAD_SHIFT - PAGE_SHIFT)
 
+#ifdef CONFIG_DEBUG_STACK_USAGE
 #define alloc_thread_info(tsk) \
-       ((struct thread_info *)__get_free_pages(THREAD_INFO_GFP, THREAD_ORDER))
+       ((struct thread_info *)__get_free_pages(GFP_KERNEL | \
+               __GFP_ZERO, THREAD_ORDER))
+#else
+#define alloc_thread_info(tsk) \
+       ((struct thread_info *)__get_free_pages(GFP_KERNEL, THREAD_ORDER))
+#endif
 #define free_thread_info(ti)   free_pages((unsigned long)ti, THREAD_ORDER)
 
 #else /* THREAD_SHIFT < PAGE_SHIFT */
 
-#define alloc_thread_info(tsk) kmalloc(THREAD_SIZE, THREAD_INFO_GFP)
+#ifdef CONFIG_DEBUG_STACK_USAGE
+#define alloc_thread_info(tsk) kzalloc(THREAD_SIZE, GFP_KERNEL)
+#else
+#define alloc_thread_info(tsk) kmalloc(THREAD_SIZE, GFP_KERNEL)
+#endif
 #define free_thread_info(ti)   kfree(ti)
 
 #endif /* THREAD_SHIFT < PAGE_SHIFT */
@@ -119,6 +122,9 @@ static inline struct thread_info *current_thread_info(void)
 #define TIF_SINGLESTEP         9       /* singlestepping active */
 #define TIF_MEMDIE             10
 #define TIF_SECCOMP            11      /* secure computing */
+#define TIF_RESTOREALL         12      /* Restore all regs (implies NOERROR) */
+#define TIF_SAVE_NVGPRS                13      /* Save r14-r31 in signal frame */
+#define TIF_NOERROR            14      /* Force successful syscall return */
 
 /* as above, but as bit values */
 #define _TIF_SYSCALL_TRACE     (1<<TIF_SYSCALL_TRACE)
@@ -132,10 +138,14 @@ static inline struct thread_info *current_thread_info(void)
 #define _TIF_SYSCALL_AUDIT     (1<<TIF_SYSCALL_AUDIT)
 #define _TIF_SINGLESTEP                (1<<TIF_SINGLESTEP)
 #define _TIF_SECCOMP           (1<<TIF_SECCOMP)
+#define _TIF_RESTOREALL                (1<<TIF_RESTOREALL)
+#define _TIF_SAVE_NVGPRS       (1<<TIF_SAVE_NVGPRS)
+#define _TIF_NOERROR           (1<<TIF_NOERROR)
 #define _TIF_SYSCALL_T_OR_A    (_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP)
 
 #define _TIF_USER_WORK_MASK    (_TIF_NOTIFY_RESUME | _TIF_SIGPENDING | \
-                                _TIF_NEED_RESCHED)
+                                _TIF_NEED_RESCHED | _TIF_RESTOREALL)
+#define _TIF_PERSYSCALL_MASK   (_TIF_RESTOREALL|_TIF_NOERROR|_TIF_SAVE_NVGPRS)
 
 #endif /* __KERNEL__ */