diff options
author | Tony Lindgren <tony@atomide.com> | 2010-12-21 16:53:00 -0800 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2010-12-21 16:53:00 -0800 |
commit | bb3613aa34a81a5e2f1227ccdb801fde04a7da10 (patch) | |
tree | bb79c15d5da41113bd7b83d9e74fbfc4a1bf8569 /arch/mips/kernel/linux32.c | |
parent | 6971071cdda79cad5f53ba390e466d696e7e9006 (diff) | |
parent | bb1c9034b3ce7f29d3d178a87b42b767611d6574 (diff) | |
download | kernel_samsung_aries-bb3613aa34a81a5e2f1227ccdb801fde04a7da10.zip kernel_samsung_aries-bb3613aa34a81a5e2f1227ccdb801fde04a7da10.tar.gz kernel_samsung_aries-bb3613aa34a81a5e2f1227ccdb801fde04a7da10.tar.bz2 |
Merge branch 'pm-next' of ssh://master.kernel.org/pub/scm/linux/kernel/git/khilman/linux-omap-pm into omap-for-linus
Diffstat (limited to 'arch/mips/kernel/linux32.c')
-rw-r--r-- | arch/mips/kernel/linux32.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c index 6343b4a..876a75c 100644 --- a/arch/mips/kernel/linux32.c +++ b/arch/mips/kernel/linux32.c @@ -251,14 +251,15 @@ SYSCALL_DEFINE5(n32_msgrcv, int, msqid, u32, msgp, size_t, msgsz, SYSCALL_DEFINE1(32_personality, unsigned long, personality) { + unsigned int p = personality & 0xffffffff; int ret; - personality &= 0xffffffff; + if (personality(current->personality) == PER_LINUX32 && - personality == PER_LINUX) - personality = PER_LINUX32; - ret = sys_personality(personality); - if (ret == PER_LINUX32) - ret = PER_LINUX; + personality(p) == PER_LINUX) + p = (p & ~PER_MASK) | PER_LINUX32; + ret = sys_personality(p); + if (ret != -1 && personality(ret) == PER_LINUX32) + ret = (ret & ~PER_MASK) | PER_LINUX; return ret; } |