Lines Matching refs:off
331 int off = chunk->map[i] & ~1; in pcpu_count_occupied_pages() local
334 if (!PAGE_ALIGNED(off) && i > 0) { in pcpu_count_occupied_pages()
337 if (!(prev & 1) && prev <= round_down(off, PAGE_SIZE)) in pcpu_count_occupied_pages()
338 off = round_down(off, PAGE_SIZE); in pcpu_count_occupied_pages()
349 return max_t(int, PFN_DOWN(end) - PFN_UP(off), 0); in pcpu_count_occupied_pages()
504 static int pcpu_fit_in_area(struct pcpu_chunk *chunk, int off, int this_size, in pcpu_fit_in_area() argument
507 int cand_off = off; in pcpu_fit_in_area()
510 int head = ALIGN(cand_off, align) - off; in pcpu_fit_in_area()
524 page_start = PFN_DOWN(head + off); in pcpu_fit_in_area()
525 page_end = PFN_UP(head + off + size); in pcpu_fit_in_area()
528 pcpu_next_unpop(chunk, &rs, &re, PFN_UP(off + this_size)); in pcpu_fit_in_area()
561 int i, off; in pcpu_alloc_area() local
569 off = *p; in pcpu_alloc_area()
570 if (off & 1) in pcpu_alloc_area()
573 this_size = (p[1] & ~1) - off; in pcpu_alloc_area()
575 head = pcpu_fit_in_area(chunk, off, this_size, size, align, in pcpu_alloc_area()
593 *p = off += head; in pcpu_alloc_area()
623 *++p = off += head; in pcpu_alloc_area()
628 p[1] = off + size; in pcpu_alloc_area()
648 return off; in pcpu_alloc_area()
675 int off = 0; in pcpu_free_area() local
686 off = chunk->map[k]; in pcpu_free_area()
687 if (off < freeme) in pcpu_free_area()
689 else if (off > freeme) in pcpu_free_area()
694 BUG_ON(off != freeme); in pcpu_free_area()
700 *p = off &= ~1; in pcpu_free_area()
701 chunk->free_size += (p[1] & ~1) - off; in pcpu_free_area()
819 static int pcpu_populate_chunk(struct pcpu_chunk *chunk, int off, int size);
820 static void pcpu_depopulate_chunk(struct pcpu_chunk *chunk, int off, int size);
881 int slot, off, new_alloc, cpu, ret; in pcpu_alloc() local
921 off = pcpu_alloc_area(chunk, size, align, is_atomic, in pcpu_alloc()
923 if (off >= 0) in pcpu_alloc()
955 off = pcpu_alloc_area(chunk, size, align, is_atomic, in pcpu_alloc()
957 if (off >= 0) in pcpu_alloc()
1000 page_start = PFN_DOWN(off); in pcpu_alloc()
1001 page_end = PFN_UP(off + size); in pcpu_alloc()
1011 pcpu_free_area(chunk, off, &occ_pages); in pcpu_alloc()
1030 memset((void *)pcpu_chunk_addr(chunk, cpu, 0) + off, 0, size); in pcpu_alloc()
1032 ptr = __addr_to_pcpu_ptr(chunk->base_addr + off); in pcpu_alloc()
1236 int off, occ_pages; in free_percpu() local
1248 off = addr - chunk->base_addr; in free_percpu()
1250 pcpu_free_area(chunk, off, &occ_pages); in free_percpu()