|
Lines 82-88
ia64_elf32_init (struct pt_regs *regs)
|
Link Here
|
|---|
|
vma->vm_ops = &ia32_shared_page_vm_ops; | vma->vm_ops = &ia32_shared_page_vm_ops; |
down_write(¤t->mm->mmap_sem); | down_write(¤t->mm->mmap_sem); |
{ | { |
insert_vm_struct(current->mm, vma); |
if (insert_vm_struct(current->mm, vma)) { |
|
kmem_cache_free(vm_area_cachep, vma); |
|
up_write(¤t->mm->mmap_sem); |
|
return; |
|
} |
} | } |
up_write(¤t->mm->mmap_sem); | up_write(¤t->mm->mmap_sem); |
} | } |
|
Lines 101-107
ia64_elf32_init (struct pt_regs *regs)
|
Link Here
|
|---|
|
vma->vm_flags = VM_READ|VM_WRITE|VM_MAYREAD|VM_MAYWRITE; | vma->vm_flags = VM_READ|VM_WRITE|VM_MAYREAD|VM_MAYWRITE; |
down_write(¤t->mm->mmap_sem); | down_write(¤t->mm->mmap_sem); |
{ | { |
insert_vm_struct(current->mm, vma); |
if (insert_vm_struct(current->mm, vma)) { |
|
kmem_cache_free(vm_area_cachep, vma); |
|
up_write(¤t->mm->mmap_sem); |
|
return; |
|
} |
} | } |
up_write(¤t->mm->mmap_sem); | up_write(¤t->mm->mmap_sem); |
} | } |
|
Lines 149-155
ia32_setup_arg_pages (struct linux_binpr
|
Link Here
|
|---|
|
unsigned long stack_base; | unsigned long stack_base; |
struct vm_area_struct *mpnt; | struct vm_area_struct *mpnt; |
struct mm_struct *mm = current->mm; | struct mm_struct *mm = current->mm; |
int i; |
int i, ret; |
| |
stack_base = IA32_STACK_TOP - MAX_ARG_PAGES*PAGE_SIZE; | stack_base = IA32_STACK_TOP - MAX_ARG_PAGES*PAGE_SIZE; |
mm->arg_start = bprm->p + stack_base; | mm->arg_start = bprm->p + stack_base; |
|
Lines 182-189
ia32_setup_arg_pages (struct linux_binpr
|
Link Here
|
|---|
|
else | else |
mpnt->vm_flags = VM_STACK_FLAGS; | mpnt->vm_flags = VM_STACK_FLAGS; |
mpnt->vm_page_prot = (mpnt->vm_flags & VM_EXEC)? | mpnt->vm_page_prot = (mpnt->vm_flags & VM_EXEC)? |
PAGE_COPY_EXEC: PAGE_COPY; |
PAGE_COPY_EXEC: PAGE_COPY; |
insert_vm_struct(current->mm, mpnt); |
if ((ret = insert_vm_struct(current->mm, mpnt))) { |
|
up_write(¤t->mm->mmap_sem); |
|
kmem_cache_free(vm_area_cachep, mpnt); |
|
return ret; |
|
} |
current->mm->total_vm = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT; | current->mm->total_vm = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT; |
} | } |
| |