powerpc: Fix loss of vdso on fork on 32-bit
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 12 Aug 2008 07:03:26 +0000 (17:03 +1000)
committerPaul Mackerras <paulus@samba.org>
Mon, 18 Aug 2008 04:22:34 +0000 (14:22 +1000)
When we fork, init_new_context() improperly resets the vdso_base
of the new context to 0.  That means that the new process loses
access to the vdso for signal trampolines.

The initialization should be unnecessary anyway as the context
on a fresh mm should be 0 in the first place and binfmt_elf
will initialize that value for a newly loaded process.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/include/asm/mmu_context.h

index 9102b8bf0ead02863ac30fcc0f055fa1cf41c743..6b993ef452ff8010c6c539f34145621fa6b3c4dd 100644 (file)
@@ -147,7 +147,6 @@ static inline void get_mmu_context(struct mm_struct *mm)
 static inline int init_new_context(struct task_struct *t, struct mm_struct *mm)
 {
        mm->context.id = NO_CONTEXT;
-       mm->context.vdso_base = 0;
        return 0;
 }