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>
This commit is contained in:
Nicolas Pitre 2011-04-13 05:01:52 +01:00 committed by Russell King
parent 5e143436d0
commit 88b9ef4526
1 changed files with 1 additions and 2 deletions

View File

@ -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 && if ((current->personality & PER_MASK) != PER_LINUX &&
current->personality != PER_LINUX_32BIT &&
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;