KFENCE_POOL_SIZE
kfence_pool = memblock_phys_alloc(KFENCE_POOL_SIZE, PAGE_SIZE);
memblock_mark_nomap(kfence_pool, KFENCE_POOL_SIZE);
__map_memblock(pgdp, kfence_pool, kfence_pool + KFENCE_POOL_SIZE,
memblock_clear_nomap(kfence_pool, KFENCE_POOL_SIZE);
unsigned long end = start + KFENCE_POOL_SIZE;
area = __get_vm_area_caller(KFENCE_POOL_SIZE, VM_IOREMAP,
(unsigned long)__kfence_pool + KFENCE_POOL_SIZE,
while (kaddr < kfence_pool + KFENCE_POOL_SIZE) {
linear_map_kf_hash_count = KFENCE_POOL_SIZE >> PAGE_SHIFT;
kfence_pool = memblock_phys_alloc_range(KFENCE_POOL_SIZE, PAGE_SIZE,
KFENCE_POOL_SIZE);
memblock_mark_nomap(kfence_pool, KFENCE_POOL_SIZE);
kfence_pool_end = kfence_pool_start + KFENCE_POOL_SIZE;
update_page_count(mmu_linear_psize, KFENCE_POOL_SIZE >> pshift);
memblock_clear_nomap(kfence_pool, KFENCE_POOL_SIZE);
kfence_pool = memblock_phys_alloc(KFENCE_POOL_SIZE, PAGE_SIZE);
memblock_mark_nomap(kfence_pool, KFENCE_POOL_SIZE);
if (create_physical_mapping(kfence_pool, kfence_pool + KFENCE_POOL_SIZE,
memblock_clear_nomap(kfence_pool, KFENCE_POOL_SIZE);
memblock_phys_free(kfence_pool, KFENCE_POOL_SIZE);
kfence_pool = memblock_phys_alloc(KFENCE_POOL_SIZE, PAGE_SIZE);
memblock_mark_nomap(kfence_pool, KFENCE_POOL_SIZE);
create_linear_mapping_range(kfence_pool, kfence_pool + KFENCE_POOL_SIZE, PAGE_SIZE, NULL);
memblock_clear_nomap(kfence_pool, KFENCE_POOL_SIZE);
unsigned long pool_pages = KFENCE_POOL_SIZE >> PAGE_SHIFT;
rc |= add_marker(kfence_start, kfence_start + KFENCE_POOL_SIZE, "KFence Pool");
return unlikely((unsigned long)((char *)addr - __kfence_pool) < KFENCE_POOL_SIZE && __kfence_pool);
unsigned long free_size = KFENCE_POOL_SIZE;
__kfence_pool = alloc_pages_exact(KFENCE_POOL_SIZE,
free_size = KFENCE_POOL_SIZE - (addr - (unsigned long)__kfence_pool);
for (i = 0; i < KFENCE_POOL_SIZE / PAGE_SIZE; i++) {
for (i = 0; i < KFENCE_POOL_SIZE / PAGE_SIZE; i++) {
memblock_free_late(__pa(addr), KFENCE_POOL_SIZE - (addr - (unsigned long)__kfence_pool));
memblock_free(__kfence_pool, KFENCE_POOL_SIZE);
__kfence_pool = memblock_alloc(KFENCE_POOL_SIZE, PAGE_SIZE);
memblock_free(__kfence_pool, KFENCE_POOL_SIZE);
pr_info("initialized - using %lu bytes for %d objects at 0x%p-0x%p\n", KFENCE_POOL_SIZE,
(void *)(__kfence_pool + KFENCE_POOL_SIZE));
const unsigned long nr_pages_pool = KFENCE_POOL_SIZE / PAGE_SIZE;