Skip to content

Commit

Permalink
um: set __HAVE_ARCH_GATE_AREA for x86_64
Browse files Browse the repository at this point in the history
Implement arch_vma_name() and make get_gate_vma(), in_gate_area() and
in_gate_area_no_mm() a nop.

We need arch_vma_name() to support vDSO.

Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
richardweinberger authored and torvalds committed Jul 26, 2011
1 parent 548f0a4 commit fc9a001
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 1 deletion.
2 changes: 1 addition & 1 deletion arch/um/sys-x86_64/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Licensed under the GPL
#

obj-y = bug.o bugs.o delay.o fault.o ldt.o ptrace.o ptrace_user.o \
obj-y = bug.o bugs.o delay.o fault.o ldt.o ptrace.o ptrace_user.o mem.o \
setjmp.o signal.o stub.o stub_segv.o syscalls.o syscall_table.o \
sysrq.o ksyms.o tls.o

Expand Down
10 changes: 10 additions & 0 deletions arch/um/sys-x86_64/asm/elf.h
Original file line number Diff line number Diff line change
Expand Up @@ -119,4 +119,14 @@ extern long elf_aux_hwcap;

#define SET_PERSONALITY(ex) do ; while(0)

#define __HAVE_ARCH_GATE_AREA 1
#define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
struct linux_binprm;
extern int arch_setup_additional_pages(struct linux_binprm *bprm,
int uses_interp);

extern unsigned long um_vdso_addr;
#define AT_SYSINFO_EHDR 33
#define ARCH_DLINFO NEW_AUX_ENT(AT_SYSINFO_EHDR, um_vdso_addr)

#endif
26 changes: 26 additions & 0 deletions arch/um/sys-x86_64/mem.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#include "linux/mm.h"
#include "asm/page.h"
#include "asm/mman.h"

const char *arch_vma_name(struct vm_area_struct *vma)
{
if (vma->vm_mm && vma->vm_start == um_vdso_addr)
return "[vdso]";

return NULL;
}

struct vm_area_struct *get_gate_vma(struct mm_struct *mm)
{
return NULL;
}

int in_gate_area(struct mm_struct *mm, unsigned long addr)
{
return 0;
}

int in_gate_area_no_mm(unsigned long addr)
{
return 0;
}

0 comments on commit fc9a001

Please sign in to comment.