Messages in this thread | | | Date | Thu, 1 Mar 2007 20:52:07 +0300 | From | Oleg Nesterov <> | Subject | Re: + fully-honor-vdso_enabled.patch added to -mm tree |
| |
John Reiser wrote: > > --- a/arch/i386/kernel/sysenter.c~fully-honor-vdso_enabled > +++ a/arch/i386/kernel/sysenter.c > @@ -22,6 +22,8 @@ > #include <asm/msr.h> > #include <asm/pgtable.h> > #include <asm/unistd.h> > +#include <asm/a.out.h> > +#include <asm/mman.h> > > /* > * Should the kernel map a VDSO page into processes and pass its > @@ -105,10 +107,25 @@ int arch_setup_additional_pages(struct l > { > struct mm_struct *mm = current->mm; > unsigned long addr; > + unsigned long flags; > int ret; > > + switch (vdso_enabled) { > + case 0: /* none */ > + return 0;
This means we don't initialize mm->context.vdso and ->sysenter_return.
Is it ok? For example, setup_rt_frame() uses VDSO_SYM(&__kernel_rt_sigreturn), sysenter_past_esp pushes ->sysenter_return on stack.
Note also that load_elf_binary does
arch_setup_additional_pages() create_elf_tables()
, looks like application can crash after exec if vdso_enabled changes from 0 to 1 in between.
Could you please explain if I missed something?
Oleg.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |