[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20070301175207.GA849@tv-sign.ru>
Date: Thu, 1 Mar 2007 20:52:07 +0300
From: Oleg Nesterov <oleg@...sign.ru>
To: John Reiser <jreiser@...Wagon.com>
Cc: Andi Kleen <ak@...e.de>, Ingo Molnar <mingo@...e.hu>,
Arjan van de Ven <arjan@...radead.org>,
Paul Mundt <lethal@...ux-sh.org>,
Andrew Morton <akpm@...ux-foundation.org>,
linux-kernel@...r.kernel.org
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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists