KASAN_SHADOW_START
#define TASK_SIZE (KASAN_SHADOW_START)
{ KASAN_SHADOW_START, "Kasan shadow start"},
kasan_pgd_populate(KASAN_SHADOW_START, KASAN_SHADOW_END, true);
BUILD_BUG_ON(pgd_index(KASAN_SHADOW_START) !=
(void*)pgd_page_vaddr(*pgd_offset_k(KASAN_SHADOW_START)),
set_pgd(&tmp_pgd_table[pgd_index(KASAN_SHADOW_START)],
clear_pgds(KASAN_SHADOW_START, KASAN_SHADOW_END);
set_pte_at(&init_mm, KASAN_SHADOW_START + i*PAGE_SIZE,
for (addr = 0; addr < KASAN_SHADOW_START; addr += PMD_SIZE)
#define PAGE_END KASAN_SHADOW_START
if (!root_level_aligned(KASAN_SHADOW_START)) {
pgd_t *pgdp = pgd_offset_k(KASAN_SHADOW_START);
kasan_pgd_populate(KASAN_SHADOW_START, KASAN_SHADOW_END, NUMA_NO_NODE,
if (!root_level_aligned(KASAN_SHADOW_START))
clone_next_level(KASAN_SHADOW_START, tmp_pg_dir, pud[0]);
clear_shadow(KASAN_SHADOW_START, KASAN_SHADOW_END);
{ KASAN_SHADOW_START, "Kasan shadow start" },
#define KASAN_SHADOW_END (round_up(KASAN_SHADOW_START + KASAN_SHADOW_SIZE, PGDIR_SIZE) - 1)
#define XKPRANGE_CC_SHADOW_OFFSET (KASAN_SHADOW_START + XKPRANGE_CC_KASAN_OFFSET)
#define XKPRANGE_UC_SHADOW_OFFSET (KASAN_SHADOW_START + XKPRANGE_UC_KASAN_OFFSET)
#define XKPRANGE_WC_SHADOW_OFFSET (KASAN_SHADOW_START + XKPRANGE_WC_KASAN_OFFSET)
#define XKVRANGE_VC_SHADOW_OFFSET (KASAN_SHADOW_START + XKVRANGE_VC_KASAN_OFFSET)
BUILD_BUG_ON(!IS_ALIGNED(KASAN_SHADOW_START, PGDIR_SIZE));
clear_pgds(KASAN_SHADOW_START, KASAN_SHADOW_END);
kasan_pgd_populate(KASAN_SHADOW_START, KASAN_SHADOW_END, NUMA_NO_NODE, true);
unlikely(addr < KASAN_SHADOW_START)) {
#define FIXADDR_TOP (KASAN_SHADOW_START - PAGE_SIZE)
#define KASAN_SHADOW_END (-(-KASAN_SHADOW_START >> KASAN_SHADOW_SCALE_SHIFT))
#define FIXADDR_TOP (KASAN_SHADOW_START - PAGE_SIZE)
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 addr = KASAN_SHADOW_START;
BUILD_BUG_ON(KASAN_SHADOW_START & ~PGDIR_MASK);
for (addr = KASAN_SHADOW_START; addr != KASAN_SHADOW_END; addr += PGDIR_SIZE)
flush_tlb_kernel_range(KASAN_SHADOW_START, KASAN_SHADOW_END);
pgd_t *pgd = pgd_offset_k(KASAN_SHADOW_START);
BUILD_BUG_ON(!IS_ALIGNED(KASAN_SHADOW_START, PGDIR_SIZE));
address_markers[i++].start_address = KASAN_SHADOW_START;
#define PAGE_END KASAN_SHADOW_START
preallocate_pgd_pages_range(KASAN_SHADOW_START, KASAN_SHADOW_END, "kasan");
print_ml("kasan", KASAN_SHADOW_START, KASAN_SHADOW_END);
kasan_early_populate_pgd(early_pg_dir + pgd_index(KASAN_SHADOW_START),
KASAN_SHADOW_START, KASAN_SHADOW_END);
kasan_early_populate_pgd(pgd_offset_k(KASAN_SHADOW_START),
KASAN_SHADOW_START, KASAN_SHADOW_END);
kasan_early_clear_pgd(pgd_offset_k(KASAN_SHADOW_START),
KASAN_SHADOW_START, KASAN_SHADOW_END);
address_markers[KASAN_SHADOW_START_NR].start_address = KASAN_SHADOW_START;
BUILD_BUG_ON(__NO_KASLR_END_KERNEL > KASAN_SHADOW_START);
boot_debug("KASAN shadow area: 0x%016lx-0x%016lx\n", KASAN_SHADOW_START, KASAN_SHADOW_END);
vmax = min(vmax, KASAN_SHADOW_START);
#define KASAN_SHADOW_END (KASAN_SHADOW_START + KASAN_SHADOW_SIZE)
rc |= add_marker(KASAN_SHADOW_START, KASAN_SHADOW_END, "Kasan Shadow");
if (WARN_ON_ONCE(!(start >= KASAN_SHADOW_START && end <= KASAN_SHADOW_END) &&
#define KASAN_SHADOW_END (KASAN_SHADOW_START + KASAN_SHADOW_SIZE)
kasan_map_memory((void *)KASAN_SHADOW_START, KASAN_SHADOW_SIZE);
#define KASAN_SHADOW_END (KASAN_SHADOW_START + \
address_markers[KASAN_SHADOW_START_NR].start_address = KASAN_SHADOW_START;
unsigned long addr = KASAN_SHADOW_START & PGDIR_MASK;
clear_pgds(KASAN_SHADOW_START & PGDIR_MASK, KASAN_SHADOW_END);
kasan_populate_early_shadow((void *)(KASAN_SHADOW_START & PGDIR_MASK),
#define KASAN_SHADOW_END (KASAN_SHADOW_START + KASAN_SHADOW_SIZE)
KASAN_SHADOW_START, KASAN_SHADOW_START + KASAN_SHADOW_SIZE,
unsigned long vaddr = KASAN_SHADOW_START;
BUILD_BUG_ON(KASAN_SHADOW_OFFSET != KASAN_SHADOW_START -
return addr >= (void *)KASAN_SHADOW_START &&
kasan_shadow_to_mem((void *)KASAN_SHADOW_START));