提交 94673e96 编写于 作者: D David Miller 提交者: Linus Torvalds

sparc: TIF_ABI_PENDING bit removal

Here are the sparc bits to remove TIF_ABI_PENDING now that
set_personality() is called at the appropriate place in exec.
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
Cc: stable@kernel.org
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 05d43ed8
...@@ -195,17 +195,10 @@ static inline unsigned int sparc64_elf_hwcap(void) ...@@ -195,17 +195,10 @@ static inline unsigned int sparc64_elf_hwcap(void)
#define ELF_PLATFORM (NULL) #define ELF_PLATFORM (NULL)
#define SET_PERSONALITY(ex) \ #define SET_PERSONALITY(ex) \
do { unsigned long new_flags = current_thread_info()->flags; \ do { if ((ex).e_ident[EI_CLASS] == ELFCLASS32) \
new_flags &= _TIF_32BIT; \ set_thread_flag(TIF_32BIT); \
if ((ex).e_ident[EI_CLASS] == ELFCLASS32) \
new_flags |= _TIF_32BIT; \
else \ else \
new_flags &= ~_TIF_32BIT; \ clear_thread_flag(TIF_32BIT); \
if ((current_thread_info()->flags & _TIF_32BIT) \
!= new_flags) \
set_thread_flag(TIF_ABI_PENDING); \
else \
clear_thread_flag(TIF_ABI_PENDING); \
/* flush_thread will update pgd cache */ \ /* flush_thread will update pgd cache */ \
if (personality(current->personality) != PER_LINUX32) \ if (personality(current->personality) != PER_LINUX32) \
set_personality(PER_LINUX | \ set_personality(PER_LINUX | \
......
...@@ -228,12 +228,11 @@ register struct thread_info *current_thread_info_reg asm("g6"); ...@@ -228,12 +228,11 @@ register struct thread_info *current_thread_info_reg asm("g6");
#define TIF_SECCOMP 9 /* secure computing */ #define TIF_SECCOMP 9 /* secure computing */
#define TIF_SYSCALL_AUDIT 10 /* syscall auditing active */ #define TIF_SYSCALL_AUDIT 10 /* syscall auditing active */
#define TIF_SYSCALL_TRACEPOINT 11 /* syscall tracepoint instrumentation */ #define TIF_SYSCALL_TRACEPOINT 11 /* syscall tracepoint instrumentation */
/* flag bit 11 is available */
/* NOTE: Thread flags >= 12 should be ones we have no interest /* NOTE: Thread flags >= 12 should be ones we have no interest
* in using in assembly, else we can't use the mask as * in using in assembly, else we can't use the mask as
* an immediate value in instructions such as andcc. * an immediate value in instructions such as andcc.
*/ */
#define TIF_ABI_PENDING 12 /* flag bit 12 is available */
#define TIF_MEMDIE 13 #define TIF_MEMDIE 13
#define TIF_POLLING_NRFLAG 14 #define TIF_POLLING_NRFLAG 14
#define TIF_FREEZE 15 /* is freezing for suspend */ #define TIF_FREEZE 15 /* is freezing for suspend */
...@@ -248,7 +247,6 @@ register struct thread_info *current_thread_info_reg asm("g6"); ...@@ -248,7 +247,6 @@ register struct thread_info *current_thread_info_reg asm("g6");
#define _TIF_SECCOMP (1<<TIF_SECCOMP) #define _TIF_SECCOMP (1<<TIF_SECCOMP)
#define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT) #define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT)
#define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT) #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
#define _TIF_ABI_PENDING (1<<TIF_ABI_PENDING)
#define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG) #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)
#define _TIF_FREEZE (1<<TIF_FREEZE) #define _TIF_FREEZE (1<<TIF_FREEZE)
......
...@@ -365,14 +365,6 @@ void flush_thread(void) ...@@ -365,14 +365,6 @@ void flush_thread(void)
struct thread_info *t = current_thread_info(); struct thread_info *t = current_thread_info();
struct mm_struct *mm; struct mm_struct *mm;
if (test_ti_thread_flag(t, TIF_ABI_PENDING)) {
clear_ti_thread_flag(t, TIF_ABI_PENDING);
if (test_ti_thread_flag(t, TIF_32BIT))
clear_ti_thread_flag(t, TIF_32BIT);
else
set_ti_thread_flag(t, TIF_32BIT);
}
mm = t->task->mm; mm = t->task->mm;
if (mm) if (mm)
tsb_context_switch(mm); tsb_context_switch(mm);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册