mirror of
https://github.com/torvalds/linux
synced 2024-09-25 14:01:32 +00:00
um: set __HAVE_ARCH_GATE_AREA for x86_64
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>
This commit is contained in:
parent
548f0a4e02
commit
fc9a00187b
|
@ -4,7 +4,7 @@
|
||||||
# Licensed under the GPL
|
# 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 \
|
setjmp.o signal.o stub.o stub_segv.o syscalls.o syscall_table.o \
|
||||||
sysrq.o ksyms.o tls.o
|
sysrq.o ksyms.o tls.o
|
||||||
|
|
||||||
|
|
|
@ -119,4 +119,14 @@ extern long elf_aux_hwcap;
|
||||||
|
|
||||||
#define SET_PERSONALITY(ex) do ; while(0)
|
#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
|
#endif
|
||||||
|
|
26
arch/um/sys-x86_64/mem.c
Normal file
26
arch/um/sys-x86_64/mem.c
Normal file
|
@ -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;
|
||||||
|
}
|
Loading…
Reference in a new issue