Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 94673e96 authored by David Miller's avatar David Miller Committed by Linus Torvalds
Browse files

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: default avatarDavid S. Miller <davem@davemloft.net>
Cc: stable@kernel.org
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 05d43ed8
Loading
Loading
Loading
Loading
+3 −10
Original line number Diff line number Diff line
@@ -195,17 +195,10 @@ static inline unsigned int sparc64_elf_hwcap(void)
#define ELF_PLATFORM	(NULL)

#define SET_PERSONALITY(ex)				\
do {	unsigned long new_flags = current_thread_info()->flags; \
	new_flags &= _TIF_32BIT;			\
	if ((ex).e_ident[EI_CLASS] == ELFCLASS32)	\
		new_flags |= _TIF_32BIT;		\
do {	if ((ex).e_ident[EI_CLASS] == ELFCLASS32)	\
		set_thread_flag(TIF_32BIT);		\
	else						\
		new_flags &= ~_TIF_32BIT;		\
	if ((current_thread_info()->flags & _TIF_32BIT) \
	    != new_flags)				\
		set_thread_flag(TIF_ABI_PENDING);	\
	else						\
		clear_thread_flag(TIF_ABI_PENDING);	\
		clear_thread_flag(TIF_32BIT);		\
	/* flush_thread will update pgd cache */	\
	if (personality(current->personality) != PER_LINUX32)	\
		set_personality(PER_LINUX |		\
+1 −3
Original line number Diff line number Diff line
@@ -228,12 +228,11 @@ register struct thread_info *current_thread_info_reg asm("g6");
#define TIF_SECCOMP		9	/* secure computing */
#define TIF_SYSCALL_AUDIT	10	/* syscall auditing active */
#define TIF_SYSCALL_TRACEPOINT	11	/* syscall tracepoint instrumentation */
/* flag bit 11 is available */
/* NOTE: Thread flags >= 12 should be ones we have no interest
 *       in using in assembly, else we can't use the mask as
 *       an immediate value in instructions such as andcc.
 */
#define TIF_ABI_PENDING		12
/* flag bit 12 is available */
#define TIF_MEMDIE		13
#define TIF_POLLING_NRFLAG	14
#define TIF_FREEZE		15	/* is freezing for suspend */
@@ -248,7 +247,6 @@ register struct thread_info *current_thread_info_reg asm("g6");
#define _TIF_SECCOMP		(1<<TIF_SECCOMP)
#define _TIF_SYSCALL_AUDIT	(1<<TIF_SYSCALL_AUDIT)
#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_FREEZE		(1<<TIF_FREEZE)

+0 −8
Original line number Diff line number Diff line
@@ -365,14 +365,6 @@ void flush_thread(void)
	struct thread_info *t = current_thread_info();
	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;
	if (mm)
		tsb_context_switch(mm);