32 lines
1.3 KiB
Diff
32 lines
1.3 KiB
Diff
From: Thiemo Seufer <ths@networkno.de>
|
|
Date: Sat, 12 Aug 2006 23:53:29 +0000 (+0100)
|
|
Subject: [MIPS] Fix O32 personality(2) call with 0xffffffff argument.
|
|
X-Git-Url: http://www.linux-mips.org/git?p=linux.git;a=commitdiff_plain;h=55ceaed731ab2d60d855ebec59586fa3a327eebb;hp=005f7e56e5e4b7cb3e7b1df4b5ab950c5fc293bb
|
|
|
|
[MIPS] Fix O32 personality(2) call with 0xffffffff argument.
|
|
|
|
A sign extension bug did result in sys_personality being invoked with a
|
|
0xffffffffffffffffUL argument, so querying the current personality didn't
|
|
work.
|
|
|
|
Signed-off-by: Thiemo Seufer <ths@networkno.de>
|
|
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
|
|
(cherry picked from 8a43b10e297799553ff13793a84d1369c2af97b8 commit)
|
|
---
|
|
|
|
diff --git a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c
|
|
index dc500e2..4b8cdc3 100644
|
|
--- a/arch/mips/kernel/linux32.c
|
|
+++ b/arch/mips/kernel/linux32.c
|
|
@@ -1053,7 +1053,9 @@ asmlinkage long sys32_newuname(struct ne
|
|
asmlinkage int sys32_personality(unsigned long personality)
|
|
{
|
|
int ret;
|
|
- if (current->personality == PER_LINUX32 && personality == PER_LINUX)
|
|
+ personality &= 0xffffffff;
|
|
+ if (personality(current->personality) == PER_LINUX32 &&
|
|
+ personality == PER_LINUX)
|
|
personality = PER_LINUX32;
|
|
ret = sys_personality(personality);
|
|
if (ret == PER_LINUX32)
|