|
@@ -464,15 +464,16 @@ unsigned long arch_randomize_brk(struct mm_struct *mm)
|
|
|
* atomic helpers and the signal restart code. Insert it into the
|
|
|
* gate_vma so that it is visible through ptrace and /proc/<pid>/mem.
|
|
|
*/
|
|
|
-static struct vm_area_struct gate_vma;
|
|
|
+static struct vm_area_struct gate_vma = {
|
|
|
+ .vm_start = 0xffff0000,
|
|
|
+ .vm_end = 0xffff0000 + PAGE_SIZE,
|
|
|
+ .vm_flags = VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYEXEC,
|
|
|
+ .vm_mm = &init_mm,
|
|
|
+};
|
|
|
|
|
|
static int __init gate_vma_init(void)
|
|
|
{
|
|
|
- gate_vma.vm_start = 0xffff0000;
|
|
|
- gate_vma.vm_end = 0xffff0000 + PAGE_SIZE;
|
|
|
- gate_vma.vm_page_prot = PAGE_READONLY_EXEC;
|
|
|
- gate_vma.vm_flags = VM_READ | VM_EXEC |
|
|
|
- VM_MAYREAD | VM_MAYEXEC;
|
|
|
+ gate_vma.vm_page_prot = PAGE_READONLY_EXEC;
|
|
|
return 0;
|
|
|
}
|
|
|
arch_initcall(gate_vma_init);
|