浏览代码

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 年之前
父节点
当前提交
d3584183d2
共有 1 个文件被更改,包括 3 次插入2 次删除
  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						\
 	else						\
 		clear_thread_flag(TIF_ABI_PENDING);	\
 		clear_thread_flag(TIF_ABI_PENDING);	\
 	/* flush_thread will update pgd cache */	\
 	/* 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)
 } while (0)
 
 
 #endif /* !(__ASM_SPARC64_ELF_H) */
 #endif /* !(__ASM_SPARC64_ELF_H) */