Lines Matching refs:start

92 static void __vmemmap_use_sub_pmd(unsigned long start, unsigned long end)
100 memset(__va(start), 0, sizeof(struct page));
103 static void vmemmap_use_sub_pmd(unsigned long start, unsigned long end)
109 if (unused_pmd_start == start) {
116 __vmemmap_use_sub_pmd(start, end);
119 static void vmemmap_use_new_sub_pmd(unsigned long start, unsigned long end)
121 void *page = __va(ALIGN_DOWN(start, PMD_SIZE));
126 __vmemmap_use_sub_pmd(start, end);
129 if (!IS_ALIGNED(start, PMD_SIZE))
130 memset(page, PAGE_UNUSED, start - __pa(page));
141 static bool vmemmap_unuse_sub_pmd(unsigned long start, unsigned long end)
143 void *page = __va(ALIGN_DOWN(start, PMD_SIZE));
146 memset(__va(start), PAGE_UNUSED, end - start);
192 static void try_free_pte_table(pmd_t *pmd, unsigned long start)
198 pte = pte_offset_kernel(pmd, start);
289 static void try_free_pmd_table(pud_t *pud, unsigned long start)
291 const unsigned long end = start + PUD_SIZE;
299 if (start < KASAN_SHADOW_END && end > KASAN_SHADOW_START)
302 pmd = pmd_offset(pud, start);
364 static void try_free_pud_table(p4d_t *p4d, unsigned long start)
366 const unsigned long end = start + P4D_SIZE;
374 if (start < KASAN_SHADOW_END && end > KASAN_SHADOW_START)
378 pud = pud_offset(p4d, start);
418 static void try_free_p4d_table(pgd_t *pgd, unsigned long start)
420 const unsigned long end = start + PGDIR_SIZE;
428 if (start < KASAN_SHADOW_END && end > KASAN_SHADOW_START)
432 p4d = p4d_offset(pgd, start);
441 static int modify_pagetable(unsigned long start, unsigned long end, bool add,
449 if (WARN_ON_ONCE(!PAGE_ALIGNED(start | end)))
451 for (addr = start; addr < end; addr = next) {
473 flush_tlb_kernel_range(start, end);
477 static int add_pagetable(unsigned long start, unsigned long end, bool direct)
479 return modify_pagetable(start, end, true, direct);
482 static int remove_pagetable(unsigned long start, unsigned long end, bool direct)
484 return modify_pagetable(start, end, false, direct);
490 static int vmem_add_range(unsigned long start, unsigned long size)
492 return add_pagetable(start, start + size, true);
498 static void vmem_remove_range(unsigned long start, unsigned long size)
500 remove_pagetable(start, start + size, true);
506 int __meminit vmemmap_populate(unsigned long start, unsigned long end, int node,
513 ret = add_pagetable(start, end, false);
515 remove_pagetable(start, end, false);
520 void vmemmap_free(unsigned long start, unsigned long end,
524 remove_pagetable(start, end, false);
528 void vmem_remove_mapping(unsigned long start, unsigned long size)
531 vmem_remove_range(start, size);
535 int vmem_add_mapping(unsigned long start, unsigned long size)
539 if (start + size > VMEM_MAX_PHYS ||
540 start + size < start)
544 ret = vmem_add_range(start, size);
546 vmem_remove_range(start, size);