Browse Source

sparc64: Fix SET_PERSONALITY to not clip bits outside of PER_MASK.

Signed-off-by: David S. Miller <davem@davemloft.net>
David S. Miller 16 years ago
parent
commit
d3584183d2
1 changed files with 3 additions and 2 deletions
  1. 3 2
      arch/sparc/include/asm/elf_64.h

+ 3 - 2
arch/sparc/include/asm/elf_64.h

@@ -208,8 +208,9 @@ do {	unsigned long new_flags = current_thread_info()->flags; \
 	else						\
 		clear_thread_flag(TIF_ABI_PENDING);	\
 	/* flush_thread will update pgd cache */	\
-	if (current->personality != PER_LINUX32)	\
-		set_personality(PER_LINUX);		\
+	if (personality(current->personality) != PER_LINUX32)	\
+		set_personality(PER_LINUX |		\
+			(current->personality & (~PER_MASK)));	\
 } while (0)
 
 #endif /* !(__ASM_SPARC64_ELF_H) */