Lines Matching refs:area
1337 int map_vm_area(struct vm_struct *area, pgprot_t prot, struct page **pages) in map_vm_area() argument
1339 unsigned long addr = (unsigned long)area->addr; in map_vm_area()
1340 unsigned long end = addr + get_vm_area_size(area); in map_vm_area()
1378 struct vm_struct *area; in __get_vm_area_node() local
1389 area = kzalloc_node(sizeof(*area), gfp_mask & GFP_RECLAIM_MASK, node); in __get_vm_area_node()
1390 if (unlikely(!area)) in __get_vm_area_node()
1398 kfree(area); in __get_vm_area_node()
1402 setup_vmalloc_vm(area, va, flags, caller); in __get_vm_area_node()
1404 return area; in __get_vm_area_node()
1499 struct vm_struct *area; in __vunmap() local
1508 area = find_vmap_area((unsigned long)addr)->vm; in __vunmap()
1509 if (unlikely(!area)) { in __vunmap()
1515 debug_check_no_locks_freed(area->addr, get_vm_area_size(area)); in __vunmap()
1516 debug_check_no_obj_freed(area->addr, get_vm_area_size(area)); in __vunmap()
1522 for (i = 0; i < area->nr_pages; i++) { in __vunmap()
1523 struct page *page = area->pages[i]; in __vunmap()
1529 kvfree(area->pages); in __vunmap()
1532 kfree(area); in __vunmap()
1628 struct vm_struct *area; in vmap() local
1637 area = get_vm_area_caller(size, flags, __builtin_return_address(0)); in vmap()
1638 if (!area) in vmap()
1641 if (map_vm_area(area, prot, pages)) { in vmap()
1642 vunmap(area->addr); in vmap()
1646 return area->addr; in vmap()
1653 static void *__vmalloc_area_node(struct vm_struct *area, gfp_t gfp_mask, in __vmalloc_area_node() argument
1664 nr_pages = get_vm_area_size(area) >> PAGE_SHIFT; in __vmalloc_area_node()
1667 area->nr_pages = nr_pages; in __vmalloc_area_node()
1671 PAGE_KERNEL, node, area->caller); in __vmalloc_area_node()
1675 area->pages = pages; in __vmalloc_area_node()
1676 if (!area->pages) { in __vmalloc_area_node()
1677 remove_vm_area(area->addr); in __vmalloc_area_node()
1678 kfree(area); in __vmalloc_area_node()
1682 for (i = 0; i < area->nr_pages; i++) { in __vmalloc_area_node()
1692 area->nr_pages = i; in __vmalloc_area_node()
1695 area->pages[i] = page; in __vmalloc_area_node()
1700 if (map_vm_area(area, prot, pages)) in __vmalloc_area_node()
1702 return area->addr; in __vmalloc_area_node()
1707 (area->nr_pages*PAGE_SIZE), area->size); in __vmalloc_area_node()
1708 vfree(area->addr); in __vmalloc_area_node()
1733 struct vm_struct *area; in __vmalloc_node_range() local
1741 area = __get_vm_area_node(size, align, VM_ALLOC | VM_UNINITIALIZED | in __vmalloc_node_range()
1743 if (!area) in __vmalloc_node_range()
1746 addr = __vmalloc_area_node(area, gfp_mask, prot, node); in __vmalloc_node_range()
1755 clear_vm_uninitialized_flag(area); in __vmalloc_node_range()
1757 kmemleak_vmalloc(area, size, gfp_mask); in __vmalloc_node_range()
1858 struct vm_struct *area; in vmalloc_user() local
1866 area = find_vm_area(ret); in vmalloc_user()
1867 area->flags |= VM_USERMAP; in vmalloc_user()
1963 struct vm_struct *area; in vmalloc_32_user() local
1969 area = find_vm_area(ret); in vmalloc_32_user()
1970 area->flags |= VM_USERMAP; in vmalloc_32_user()
2233 struct vm_struct *area; in remap_vmalloc_range_partial() local
2240 area = find_vm_area(kaddr); in remap_vmalloc_range_partial()
2241 if (!area) in remap_vmalloc_range_partial()
2244 if (!(area->flags & VM_USERMAP)) in remap_vmalloc_range_partial()
2247 if (kaddr + size > area->addr + area->size) in remap_vmalloc_range_partial()
2328 struct vm_struct *area; in alloc_vm_area() local
2330 area = get_vm_area_caller(size, VM_IOREMAP, in alloc_vm_area()
2332 if (area == NULL) in alloc_vm_area()
2339 if (apply_to_page_range(&init_mm, (unsigned long)area->addr, in alloc_vm_area()
2341 free_vm_area(area); in alloc_vm_area()
2345 return area; in alloc_vm_area()
2349 void free_vm_area(struct vm_struct *area) in free_vm_area() argument
2352 ret = remove_vm_area(area->addr); in free_vm_area()
2353 BUG_ON(ret != area); in free_vm_area()
2354 kfree(area); in free_vm_area()
2474 int area, area2, last_area, term_area; in pcpu_get_vm_areas() local
2480 for (last_area = 0, area = 0; area < nr_vms; area++) { in pcpu_get_vm_areas()
2481 start = offsets[area]; in pcpu_get_vm_areas()
2482 end = start + sizes[area]; in pcpu_get_vm_areas()
2485 BUG_ON(!IS_ALIGNED(offsets[area], align)); in pcpu_get_vm_areas()
2486 BUG_ON(!IS_ALIGNED(sizes[area], align)); in pcpu_get_vm_areas()
2490 last_area = area; in pcpu_get_vm_areas()
2492 for (area2 = area + 1; area2 < nr_vms; area2++) { in pcpu_get_vm_areas()
2511 for (area = 0; area < nr_vms; area++) { in pcpu_get_vm_areas()
2512 vas[area] = kzalloc(sizeof(struct vmap_area), GFP_KERNEL); in pcpu_get_vm_areas()
2513 vms[area] = kzalloc(sizeof(struct vm_struct), GFP_KERNEL); in pcpu_get_vm_areas()
2514 if (!vas[area] || !vms[area]) in pcpu_get_vm_areas()
2521 area = term_area = last_area; in pcpu_get_vm_areas()
2522 start = offsets[area]; in pcpu_get_vm_areas()
2523 end = start + sizes[area]; in pcpu_get_vm_areas()
2555 term_area = area; in pcpu_get_vm_areas()
2568 term_area = area; in pcpu_get_vm_areas()
2576 area = (area + nr_vms - 1) % nr_vms; in pcpu_get_vm_areas()
2577 if (area == term_area) in pcpu_get_vm_areas()
2579 start = offsets[area]; in pcpu_get_vm_areas()
2580 end = start + sizes[area]; in pcpu_get_vm_areas()
2585 for (area = 0; area < nr_vms; area++) { in pcpu_get_vm_areas()
2586 struct vmap_area *va = vas[area]; in pcpu_get_vm_areas()
2588 va->va_start = base + offsets[area]; in pcpu_get_vm_areas()
2589 va->va_end = va->va_start + sizes[area]; in pcpu_get_vm_areas()
2598 for (area = 0; area < nr_vms; area++) in pcpu_get_vm_areas()
2599 setup_vmalloc_vm(vms[area], vas[area], VM_ALLOC, in pcpu_get_vm_areas()
2606 for (area = 0; area < nr_vms; area++) { in pcpu_get_vm_areas()
2607 kfree(vas[area]); in pcpu_get_vm_areas()
2608 kfree(vms[area]); in pcpu_get_vm_areas()