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:
parent
5e143436d0
commit
88b9ef4526
|
@ -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;
|
||||||
|
|
Loading…
Reference in New Issue