View | Details | Raw Unified
Collapse All | Expand All

(-) linux-2.6.7-gentoo-r19/arch/ia64/ia32/binfmt_elf32.c (-5 / +17 lines)
 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(&current->mm->mmap_sem);
		down_write(&current->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(&current->mm->mmap_sem);
				return;
			}
		}
		}
		up_write(&current->mm->mmap_sem);
		up_write(&current->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(&current->mm->mmap_sem);
		down_write(&current->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(&current->mm->mmap_sem);
				return;
			}
		}
		}
		up_write(&current->mm->mmap_sem);
		up_write(&current->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(&current->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;
	}
	}
(-) linux-2.6.7-gentoo-r19/arch/ia64/mm/init.c (-2 / +14 lines)
 Lines 129-135   ia64_init_addr_space (void) Link Here 
		vma->vm_end = vma->vm_start + PAGE_SIZE;
		vma->vm_end = vma->vm_start + PAGE_SIZE;
		vma->vm_page_prot = protection_map[VM_DATA_DEFAULT_FLAGS & 0x7];
		vma->vm_page_prot = protection_map[VM_DATA_DEFAULT_FLAGS & 0x7];
		vma->vm_flags = VM_READ|VM_WRITE|VM_MAYREAD|VM_MAYWRITE|VM_GROWSUP;
		vma->vm_flags = VM_READ|VM_WRITE|VM_MAYREAD|VM_MAYWRITE|VM_GROWSUP;
		insert_vm_struct(current->mm, vma);
		down_write(&current->mm->mmap_sem);
		if (insert_vm_struct(current->mm, vma)) {
			up_write(&current->mm->mmap_sem);
			kmem_cache_free(vm_area_cachep, vma);
			return;
		}
		up_write(&current->mm->mmap_sem);
	}
	}
	/* map NaT-page at address zero to speed up speculative dereferencing of NULL: */
	/* map NaT-page at address zero to speed up speculative dereferencing of NULL: */
 Lines 141-147   ia64_init_addr_space (void) Link Here 
			vma->vm_end = PAGE_SIZE;
			vma->vm_end = PAGE_SIZE;
			vma->vm_page_prot = __pgprot(pgprot_val(PAGE_READONLY) | _PAGE_MA_NAT);
			vma->vm_page_prot = __pgprot(pgprot_val(PAGE_READONLY) | _PAGE_MA_NAT);
			vma->vm_flags = VM_READ | VM_MAYREAD | VM_IO | VM_RESERVED;
			vma->vm_flags = VM_READ | VM_MAYREAD | VM_IO | VM_RESERVED;
			insert_vm_struct(current->mm, vma);
			down_write(&current->mm->mmap_sem);
			if (insert_vm_struct(current->mm, vma)) {
				up_write(&current->mm->mmap_sem);
				kmem_cache_free(vm_area_cachep, vma);
				return;
			}
			up_write(&current->mm->mmap_sem);
		}
		}
	}
	}
}
}
(-) linux-2.6.7-gentoo-r19/arch/s390/kernel/compat_exec.c (-2 / +6 lines)
 Lines 39-45   int setup_arg_pages32(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 = STACK_TOP - MAX_ARG_PAGES*PAGE_SIZE;
	stack_base = STACK_TOP - MAX_ARG_PAGES*PAGE_SIZE;
	mm->arg_start = bprm->p + stack_base;
	mm->arg_start = bprm->p + stack_base;
 Lines 68-74   int setup_arg_pages32(struct linux_binpr Link Here 
		/* executable stack setting would be applied here */
		/* executable stack setting would be applied here */
		mpnt->vm_page_prot = PAGE_COPY;
		mpnt->vm_page_prot = PAGE_COPY;
		mpnt->vm_flags = VM_STACK_FLAGS;
		mpnt->vm_flags = VM_STACK_FLAGS;
		insert_vm_struct(mm, mpnt);
		if ((ret = insert_vm_struct(mm, mpnt))) {
			up_write(&mm->mmap_sem);
			kmem_cache_free(vm_area_cachep, mpnt);
			return ret;
		}
		mm->total_vm = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT;
		mm->total_vm = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT;
	} 
	} 
(-) linux-2.6.7-gentoo-r19/arch/x86_64/ia32/ia32_binfmt.c (-2 / +6 lines)
 Lines 330-336   int setup_arg_pages(struct linux_binprm 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 364-370   int setup_arg_pages(struct linux_binprm Link Here 
			mpnt->vm_flags = vm_stack_flags32;
			mpnt->vm_flags = vm_stack_flags32;
 		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(mm, mpnt);
		if ((ret = insert_vm_struct(mm, mpnt))) {
			up_write(&mm->mmap_sem);
			kmem_cache_free(vm_area_cachep, mpnt);
			return ret;
		}
		mm->total_vm = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT;
		mm->total_vm = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT;
	} 
	} 
(-) linux-2.6.7-gentoo-r19/fs/exec.c (-2 / +1 lines)
 Lines 342-348   int setup_arg_pages(struct linux_binprm 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;
	long arg_size;
	long arg_size;
#ifdef CONFIG_STACK_GROWSUP
#ifdef CONFIG_STACK_GROWSUP
 Lines 413-419   int setup_arg_pages(struct linux_binprm Link Here 
	down_write(&mm->mmap_sem);
	down_write(&mm->mmap_sem);
	{
	{
		struct vm_area_struct *vma;
		mpnt->vm_mm = mm;
		mpnt->vm_mm = mm;
#ifdef CONFIG_STACK_GROWSUP
#ifdef CONFIG_STACK_GROWSUP
		mpnt->vm_start = stack_base;
		mpnt->vm_start = stack_base;
(-) linux-2.6.7-gentoo-r19/include/linux/mm.h (-1 / +1 lines)
 Lines 623-629   extern struct vm_area_struct *vma_merge( Link Here 
extern struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *);
extern struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *);
extern int split_vma(struct mm_struct *,
extern int split_vma(struct mm_struct *,
	struct vm_area_struct *, unsigned long addr, int new_below);
	struct vm_area_struct *, unsigned long addr, int new_below);
extern void insert_vm_struct(struct mm_struct *, struct vm_area_struct *);
extern int insert_vm_struct(struct mm_struct *, struct vm_area_struct *);
extern void __vma_link_rb(struct mm_struct *, struct vm_area_struct *,
extern void __vma_link_rb(struct mm_struct *, struct vm_area_struct *,
	struct rb_node **, struct rb_node *);
	struct rb_node **, struct rb_node *);
extern struct vm_area_struct *copy_vma(struct vm_area_struct **,
extern struct vm_area_struct *copy_vma(struct vm_area_struct **,
(-) linux-2.6.7-gentoo-r19/mm/mmap.c (-2 / +3 lines)
 Lines 1722-1728   void exit_mmap(struct mm_struct *mm) Link Here 
 * and into the inode's i_mmap tree.  If vm_file is non-NULL
 * and into the inode's i_mmap tree.  If vm_file is non-NULL
 * then i_mmap_lock is taken here.
 * then i_mmap_lock is taken here.
 */
 */
void insert_vm_struct(struct mm_struct * mm, struct vm_area_struct * vma)
int insert_vm_struct(struct mm_struct * mm, struct vm_area_struct * vma)
{
{
	struct vm_area_struct * __vma, * prev;
	struct vm_area_struct * __vma, * prev;
	struct rb_node ** rb_link, * rb_parent;
	struct rb_node ** rb_link, * rb_parent;
 Lines 1745-1752   void insert_vm_struct(struct mm_struct * Link Here 
	}
	}
	__vma = find_vma_prepare(mm,vma->vm_start,&prev,&rb_link,&rb_parent);
	__vma = find_vma_prepare(mm,vma->vm_start,&prev,&rb_link,&rb_parent);
	if (__vma && __vma->vm_start < vma->vm_end)
	if (__vma && __vma->vm_start < vma->vm_end)
		BUG();
		return -ENOMEM;
	vma_link(mm, vma, prev, rb_link, rb_parent);
	vma_link(mm, vma, prev, rb_link, rb_parent);
	return 0;
}
}
/*
/*