KASAN_SHADOW_END
#define KASAN_SHADOW_START ((KASAN_SHADOW_END >> 3) + KASAN_SHADOW_OFFSET)
{ KASAN_SHADOW_END, "Kasan shadow end"},
BUILD_BUG_ON((KASAN_SHADOW_END - (1UL << 29)) != KASAN_SHADOW_OFFSET);
kasan_pgd_populate(KASAN_SHADOW_START, KASAN_SHADOW_END, true);
pgd_index(KASAN_SHADOW_END));
clear_pgds(KASAN_SHADOW_START, KASAN_SHADOW_END);
for (addr = KASAN_SHADOW_END; addr < MODULES_VADDR; addr += PMD_SIZE)
#define _KASAN_SHADOW_START(va) (KASAN_SHADOW_END - (UL(1) << ((va) - KASAN_SHADOW_SCALE_SHIFT)))
KASAN_SHADOW_END - (1UL << (64 - KASAN_SHADOW_SCALE_SHIFT)));
BUILD_BUG_ON(!IS_ALIGNED(KASAN_SHADOW_END, SHADOW_ALIGN));
kasan_pgd_populate(KASAN_SHADOW_START, KASAN_SHADOW_END, NUMA_NO_NODE,
if (!root_level_aligned(KASAN_SHADOW_END))
clone_next_level(KASAN_SHADOW_END, tmp_pg_dir, pud[1]);
clear_shadow(KASAN_SHADOW_START, KASAN_SHADOW_END);
(void *)KASAN_SHADOW_END);
{ KASAN_SHADOW_END, "Kasan shadow end" },
BUILD_BUG_ON(!IS_ALIGNED(KASAN_SHADOW_END + 1, PGDIR_SIZE));
if (KASAN_SHADOW_END < vm_map_base) {
clear_pgds(KASAN_SHADOW_START, KASAN_SHADOW_END);
kasan_pgd_populate(KASAN_SHADOW_START, KASAN_SHADOW_END, NUMA_NO_NODE, true);
if (unlikely(addr > KASAN_SHADOW_END) ||
kasan_update_early_region(KASAN_SHADOW_START, KASAN_SHADOW_END,
ret = kasan_init_shadow_page_tables(KASAN_SHADOW_START, KASAN_SHADOW_END);
ret = kasan_init_shadow_page_tables(KASAN_SHADOW_START, KASAN_SHADOW_END);
unsigned long end = KASAN_SHADOW_END;
for (addr = KASAN_SHADOW_START; addr != KASAN_SHADOW_END; addr += PGDIR_SIZE)
flush_tlb_kernel_range(KASAN_SHADOW_START, KASAN_SHADOW_END);
BUILD_BUG_ON(!IS_ALIGNED(KASAN_SHADOW_END, PGDIR_SIZE));
address_markers[i++].start_address = KASAN_SHADOW_END;
#define KASAN_SHADOW_START ((KASAN_SHADOW_END - KASAN_SHADOW_SIZE) & PGDIR_MASK)
preallocate_pgd_pages_range(KASAN_SHADOW_START, KASAN_SHADOW_END, "kasan");
print_ml("kasan", KASAN_SHADOW_START, KASAN_SHADOW_END);
KASAN_SHADOW_END - (1UL << (64 - KASAN_SHADOW_SCALE_SHIFT)));
KASAN_SHADOW_START, KASAN_SHADOW_END);
KASAN_SHADOW_START, KASAN_SHADOW_END);
ptr = (p4d_t *)pgd_page_vaddr(pgdp_get(pgd_offset_k(KASAN_SHADOW_END)));
set_pgd(&tmp_pg_dir[pgd_index(KASAN_SHADOW_END)],
ptr = (pud_t *)p4d_page_vaddr(p4dp_get(base_p4d + p4d_index(KASAN_SHADOW_END)));
set_p4d(&base_p4d[p4d_index(KASAN_SHADOW_END)],
KASAN_SHADOW_START, KASAN_SHADOW_END);
address_markers[KASAN_SHADOW_END_NR].start_address = KASAN_SHADOW_END;
boot_debug("KASAN shadow area: 0x%016lx-0x%016lx\n", KASAN_SHADOW_START, KASAN_SHADOW_END);
rc |= add_marker(KASAN_SHADOW_START, KASAN_SHADOW_END, "Kasan Shadow");
if (WARN_ON_ONCE(!(start >= KASAN_SHADOW_START && end <= KASAN_SHADOW_END) &&
address_markers[KASAN_SHADOW_END_NR].start_address = KASAN_SHADOW_END;
unsigned long end = KASAN_SHADOW_END;
ptr = (void *)pgd_page_vaddr(*pgd_offset_k(KASAN_SHADOW_END));
set_pgd(&early_top_pgt[pgd_index(KASAN_SHADOW_END)],
clear_pgds(KASAN_SHADOW_START & PGDIR_MASK, KASAN_SHADOW_END);
(void *)KASAN_SHADOW_END);
addr < (void *)KASAN_SHADOW_END;