• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/mm/

Lines Matching refs:vma

136 	struct vm_area_struct *vma;
147 vma = find_vma(mm, start);
148 if (!vma)
152 if (vma->vm_flags & (VM_IO | VM_PFNMAP) ||
153 !(vm_flags & vma->vm_flags))
162 vmas[i] = vma;
311 printk(" %p: %p", vml, vml->vma);
312 if (vml->vma)
314 kobjsize((void *) vml->vma->vm_start),
315 vml->vma->vm_start,
316 atomic_read(&vml->vma->vm_usage));
331 if ((*ppv)->vma->vm_start > vml->vma->vm_start)
349 if (loop->vma->vm_start > addr)
354 if (vml && vml->vma->vm_end > addr)
355 return vml->vma;
381 if (vml->vma->vm_start == addr)
382 return vml->vma;
383 if (vml->vma->vm_start > addr)
395 struct vm_area_struct *vma;
399 vma = rb_entry(n, struct vm_area_struct, vm_rb);
401 if (start < vma->vm_start)
403 else if (start > vma->vm_start)
406 return vma;
415 static void add_nommu_vma(struct vm_area_struct *vma)
423 if (vma->vm_file) {
424 mapping = vma->vm_file->f_mapping;
427 vma_prio_tree_insert(vma, &mapping->i_mmap);
436 if (vma->vm_start < pvma->vm_start) {
439 else if (vma->vm_start > pvma->vm_start) {
448 if (vma < pvma)
450 else if (vma > pvma)
457 rb_link_node(&vma->vm_rb, parent, p);
458 rb_insert_color(&vma->vm_rb, &nommu_vma_tree);
464 static void delete_nommu_vma(struct vm_area_struct *vma)
469 if (vma->vm_file) {
470 mapping = vma->vm_file->f_mapping;
473 vma_prio_tree_remove(vma, &mapping->i_mmap);
478 rb_erase(&vma->vm_rb, &nommu_vma_tree);
694 static int do_mmap_shared_file(struct vm_area_struct *vma, unsigned long len)
698 ret = vma->vm_file->f_op->mmap(vma->vm_file, vma);
712 static int do_mmap_private(struct vm_area_struct *vma, unsigned long len)
721 if (vma->vm_file) {
722 ret = vma->vm_file->f_op->mmap(vma->vm_file, vma);
725 BUG_ON(ret == 0 && !(vma->vm_flags & VM_MAYSHARE));
742 vma->vm_start = (unsigned long) base;
743 vma->vm_end = vma->vm_start + len;
744 vma->vm_flags |= VM_MAPPED_COPY;
752 if (vma->vm_file) {
757 fpos = vma->vm_pgoff;
762 ret = vma->vm_file->f_op->read(vma->vm_file, base, len, &fpos);
781 vma->vm_start = 0;
802 struct vm_area_struct *vma = NULL;
844 vma = rb_entry(rb, struct vm_area_struct, vm_rb);
846 if (!(vma->vm_flags & VM_MAYSHARE))
850 if (vma->vm_file->f_path.dentry->d_inode != file->f_path.dentry->d_inode)
853 if (vma->vm_pgoff >= pgoff + pglen)
856 vmpglen = vma->vm_end - vma->vm_start + PAGE_SIZE - 1;
858 if (pgoff >= vma->vm_pgoff + vmpglen)
862 if (vma->vm_pgoff != pgoff || vmpglen != pglen) {
869 atomic_inc(&vma->vm_usage);
871 vml->vma = vma;
872 result = (void *) vma->vm_start;
877 vma = NULL;
904 vma = kzalloc(sizeof(struct vm_area_struct), GFP_KERNEL);
905 if (!vma)
908 INIT_LIST_HEAD(&vma->anon_vma_node);
909 atomic_set(&vma->vm_usage, 1);
912 vma->vm_file = file;
913 vma->vm_flags = vm_flags;
914 vma->vm_start = addr;
915 vma->vm_end = addr + len;
916 vma->vm_pgoff = pgoff;
918 vml->vma = vma;
921 if (file && vma->vm_flags & VM_SHARED)
922 ret = do_mmap_shared_file(vma, len);
924 ret = do_mmap_private(vma, len);
929 result = (void *) vma->vm_start;
931 if (vma->vm_flags & VM_MAPPED_COPY) {
936 realalloc += kobjsize(vma);
937 askedalloc += sizeof(*vma);
941 add_nommu_vma(vma);
965 if (vma) {
966 if (vma->vm_file)
967 fput(vma->vm_file);
968 kfree(vma);
981 printk("Allocation of vma for %lu byte allocation from process %d failed\n",
996 static void put_vma(struct vm_area_struct *vma)
998 if (vma) {
1001 if (atomic_dec_and_test(&vma->vm_usage)) {
1002 delete_nommu_vma(vma);
1004 if (vma->vm_ops && vma->vm_ops->close)
1005 vma->vm_ops->close(vma);
1009 if (vma->vm_flags & VM_MAPPED_COPY) {
1010 realalloc -= kobjsize((void *) vma->vm_start);
1011 askedalloc -= vma->vm_end - vma->vm_start;
1012 kfree((void *) vma->vm_start);
1015 realalloc -= kobjsize(vma);
1016 askedalloc -= sizeof(*vma);
1018 if (vma->vm_file)
1019 fput(vma->vm_file);
1020 kfree(vma);
1042 if ((*parent)->vma->vm_start > addr)
1044 if ((*parent)->vma->vm_start == addr &&
1045 ((len == 0) || ((*parent)->vma->vm_end == end)))
1056 put_vma(vml->vma);
1100 put_vma(tmp->vma);
1132 struct vm_area_struct *vma;
1141 vma = find_vma_exact(current->mm, addr);
1142 if (!vma)
1145 if (vma->vm_end != vma->vm_start + old_len)
1148 if (vma->vm_flags & VM_MAYSHARE)
1155 vma->vm_end = vma->vm_start + new_len;
1160 return vma->vm_start;
1175 struct page *follow_page(struct vm_area_struct *vma, unsigned long address,
1181 int remap_pfn_range(struct vm_area_struct *vma, unsigned long from,
1184 vma->vm_start = vma->vm_pgoff << PAGE_SHIFT;
1352 struct vm_area_struct *vma;
1365 vma = find_vma(mm, addr);
1366 if (vma) {
1368 if (addr + len >= vma->vm_end)
1369 len = vma->vm_end - addr;
1372 if (write && vma->vm_flags & VM_MAYWRITE)
1374 else if (!write && vma->vm_flags & VM_MAYREAD)