aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordavem <davem>2001-11-29 22:52:03 +0000
committerdavem <davem>2001-11-29 22:52:03 +0000
commit7b8823cab0a3fc8b43ccd9280c7e2c66e6e2f51b (patch)
tree10fa0c38bfb607130e1d2c47ef8f6f5bf5ea54a0
parentabb9d649d80f9cc8b77d6c1687da584b6d637dc7 (diff)
downloadnetdev-vger-cvs-7b8823cab0a3fc8b43ccd9280c7e2c66e6e2f51b.tar.gz
With the revert of the bogus kernel/exec_domain.c
changes in 2.4.17-pre1, we can go back to the older and simpler sparc64_personality implementation from revision 1.52 of arch/sparc64/kernel/sys_sparc.c
-rw-r--r--arch/sparc64/kernel/sys_sparc.c26
1 files changed, 7 insertions, 19 deletions
diff --git a/arch/sparc64/kernel/sys_sparc.c b/arch/sparc64/kernel/sys_sparc.c
index 05f5c515e..1e63e7194 100644
--- a/arch/sparc64/kernel/sys_sparc.c
+++ b/arch/sparc64/kernel/sys_sparc.c
@@ -1,4 +1,4 @@
-/* $Id: sys_sparc.c,v 1.54 2001-10-28 20:49:13 davem Exp $
+/* $Id: sys_sparc.c,v 1.55 2001-11-29 22:52:03 davem Exp $
* linux/arch/sparc64/kernel/sys_sparc.c
*
* This file contains various random system calls that
@@ -255,27 +255,15 @@ extern asmlinkage long sys_personality(unsigned long);
asmlinkage int sparc64_personality(unsigned long personality)
{
- unsigned long ret, trying, orig_ret;
-
- trying = ret = personality;
-
- if (current->personality == PER_LINUX32 &&
- trying == PER_LINUX)
- trying = ret = PER_LINUX32;
-
- /* For PER_LINUX32 we want to retain &default_exec_domain. */
- if (trying == PER_LINUX32)
- ret = PER_LINUX;
-
- orig_ret = ret;
- ret = sys_personality(ret);
+ int ret;
- if (orig_ret == PER_LINUX && trying == PER_LINUX32) {
- current->personality = PER_LINUX32;
+ if (current->personality == PER_LINUX32 && personality == PER_LINUX)
+ personality = PER_LINUX32;
+ ret = sys_personality(personality);
+ if (ret == PER_LINUX32)
ret = PER_LINUX;
- }
- return (int) ret;
+ return ret;
}
/* Linux version of mmap */