Lines Matching refs:page_cnt

418 static long arena_alloc_pages(struct bpf_arena *arena, long uaddr, long page_cnt, int node_id)  in arena_alloc_pages()  argument
428 if (page_cnt > page_cnt_max) in arena_alloc_pages()
435 if (pgoff > page_cnt_max - page_cnt) in arena_alloc_pages()
441 pages = kvcalloc(page_cnt, sizeof(struct page *), GFP_KERNEL); in arena_alloc_pages()
448 ret = mtree_insert_range(&arena->mt, pgoff, pgoff + page_cnt - 1, in arena_alloc_pages()
452 page_cnt, 0, page_cnt_max - 1, GFP_KERNEL); in arena_alloc_pages()
457 node_id, page_cnt, pages); in arena_alloc_pages()
470 kern_vm_start + uaddr32 + page_cnt * PAGE_SIZE, pages); in arena_alloc_pages()
472 for (i = 0; i < page_cnt; i++) in arena_alloc_pages()
490 static void zap_pages(struct bpf_arena *arena, long uaddr, long page_cnt) in zap_pages() argument
496 PAGE_SIZE * page_cnt, NULL); in zap_pages()
499 static void arena_free_pages(struct bpf_arena *arena, long uaddr, long page_cnt) in arena_free_pages() argument
509 uaddr_end = min(arena->user_vm_end, full_uaddr + (page_cnt << PAGE_SHIFT)); in arena_free_pages()
513 page_cnt = (uaddr_end - full_uaddr) >> PAGE_SHIFT; in arena_free_pages()
519 mtree_store_range(&arena->mt, pgoff, pgoff + page_cnt - 1, NULL, GFP_KERNEL); in arena_free_pages()
521 if (page_cnt > 1) in arena_free_pages()
523 zap_pages(arena, full_uaddr, page_cnt); in arena_free_pages()
526 for (i = 0; i < page_cnt; i++, kaddr += PAGE_SIZE, full_uaddr += PAGE_SIZE) { in arena_free_pages()
530 if (page_cnt == 1 && page_mapped(page)) /* mapped by some user process */ in arena_free_pages()
544 __bpf_kfunc void *bpf_arena_alloc_pages(void *p__map, void *addr__ign, u32 page_cnt, in bpf_arena_alloc_pages() argument
550 if (map->map_type != BPF_MAP_TYPE_ARENA || flags || !page_cnt) in bpf_arena_alloc_pages()
553 return (void *)arena_alloc_pages(arena, (long)addr__ign, page_cnt, node_id); in bpf_arena_alloc_pages()
556 __bpf_kfunc void bpf_arena_free_pages(void *p__map, void *ptr__ign, u32 page_cnt) in bpf_arena_free_pages() argument
561 if (map->map_type != BPF_MAP_TYPE_ARENA || !page_cnt || !ptr__ign) in bpf_arena_free_pages()
563 arena_free_pages(arena, (long)ptr__ign, page_cnt); in bpf_arena_free_pages()