diff options
| -rw-r--r-- | arch/parisc/kernel/process.c | 2 | ||||
| -rw-r--r-- | arch/parisc/kernel/sys_parisc.c | 8 |
2 files changed, 5 insertions, 5 deletions
diff --git a/arch/parisc/kernel/process.c b/arch/parisc/kernel/process.c index d4b94b395c16..2c05a9292a81 100644 --- a/arch/parisc/kernel/process.c +++ b/arch/parisc/kernel/process.c | |||
| @@ -309,7 +309,7 @@ copy_thread(unsigned long clone_flags, unsigned long usp, | |||
| 309 | cregs->ksp = (unsigned long)stack | 309 | cregs->ksp = (unsigned long)stack |
| 310 | + (pregs->gr[21] & (THREAD_SIZE - 1)); | 310 | + (pregs->gr[21] & (THREAD_SIZE - 1)); |
| 311 | cregs->gr[30] = usp; | 311 | cregs->gr[30] = usp; |
| 312 | if (p->personality == PER_HPUX) { | 312 | if (personality(p->personality) == PER_HPUX) { |
| 313 | #ifdef CONFIG_HPUX | 313 | #ifdef CONFIG_HPUX |
| 314 | cregs->kpc = (unsigned long) &hpux_child_return; | 314 | cregs->kpc = (unsigned long) &hpux_child_return; |
| 315 | #else | 315 | #else |
diff --git a/arch/parisc/kernel/sys_parisc.c b/arch/parisc/kernel/sys_parisc.c index c9b932260f47..7426e40699bd 100644 --- a/arch/parisc/kernel/sys_parisc.c +++ b/arch/parisc/kernel/sys_parisc.c | |||
| @@ -225,12 +225,12 @@ long parisc_personality(unsigned long personality) | |||
| 225 | long err; | 225 | long err; |
| 226 | 226 | ||
| 227 | if (personality(current->personality) == PER_LINUX32 | 227 | if (personality(current->personality) == PER_LINUX32 |
| 228 | && personality == PER_LINUX) | 228 | && personality(personality) == PER_LINUX) |
| 229 | personality = PER_LINUX32; | 229 | personality = (personality & ~PER_MASK) | PER_LINUX32; |
| 230 | 230 | ||
| 231 | err = sys_personality(personality); | 231 | err = sys_personality(personality); |
| 232 | if (err == PER_LINUX32) | 232 | if (personality(err) == PER_LINUX32) |
| 233 | err = PER_LINUX; | 233 | err = (err & ~PER_MASK) | PER_LINUX; |
| 234 | 234 | ||
| 235 | return err; | 235 | return err; |
| 236 | } | 236 | } |
