diff options
Diffstat (limited to 'arch/arm/kernel/process.c')
-rw-r--r-- | arch/arm/kernel/process.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index 047d3e40e470..cbd0f51937cc 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c | |||
@@ -459,15 +459,16 @@ unsigned long arch_randomize_brk(struct mm_struct *mm) | |||
459 | * atomic helpers and the signal restart code. Insert it into the | 459 | * atomic helpers and the signal restart code. Insert it into the |
460 | * gate_vma so that it is visible through ptrace and /proc/<pid>/mem. | 460 | * gate_vma so that it is visible through ptrace and /proc/<pid>/mem. |
461 | */ | 461 | */ |
462 | static struct vm_area_struct gate_vma; | 462 | static struct vm_area_struct gate_vma = { |
463 | .vm_start = 0xffff0000, | ||
464 | .vm_end = 0xffff0000 + PAGE_SIZE, | ||
465 | .vm_flags = VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYEXEC, | ||
466 | .vm_mm = &init_mm, | ||
467 | }; | ||
463 | 468 | ||
464 | static int __init gate_vma_init(void) | 469 | static int __init gate_vma_init(void) |
465 | { | 470 | { |
466 | gate_vma.vm_start = 0xffff0000; | 471 | gate_vma.vm_page_prot = PAGE_READONLY_EXEC; |
467 | gate_vma.vm_end = 0xffff0000 + PAGE_SIZE; | ||
468 | gate_vma.vm_page_prot = PAGE_READONLY_EXEC; | ||
469 | gate_vma.vm_flags = VM_READ | VM_EXEC | | ||
470 | VM_MAYREAD | VM_MAYEXEC; | ||
471 | return 0; | 472 | return 0; |
472 | } | 473 | } |
473 | arch_initcall(gate_vma_init); | 474 | arch_initcall(gate_vma_init); |