浏览代码

ARM: 6879/1: fix personality test wrt usage of domain handlers

There are optional bits that may complement a personality ID.  It is
therefore wrong to simply test against the absolute current->personality
value to determine the effective personality.  The PER_LINUX_32BIT is
itself just PER_LINUX with one of those optional bits set.

Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Nicolas Pitre 14 年之前
父节点
当前提交
88b9ef4526
共有 1 个文件被更改,包括 1 次插入2 次删除
  1. 1 2
      arch/arm/kernel/traps.c

+ 1 - 2
arch/arm/kernel/traps.c

@@ -410,8 +410,7 @@ static int bad_syscall(int n, struct pt_regs *regs)
 	struct thread_info *thread = current_thread_info();
 	struct thread_info *thread = current_thread_info();
 	siginfo_t info;
 	siginfo_t info;
 
 
-	if (current->personality != PER_LINUX &&
-	    current->personality != PER_LINUX_32BIT &&
+	if ((current->personality & PER_MASK) != PER_LINUX &&
 	    thread->exec_domain->handler) {
 	    thread->exec_domain->handler) {
 		thread->exec_domain->handler(n, regs);
 		thread->exec_domain->handler(n, regs);
 		return regs->ARM_r0;
 		return regs->ARM_r0;