diff --git a/sys/arm64/arm64/machdep.c b/sys/arm64/arm64/machdep.c index bb7689c1910..7aa20357acf 100644 --- a/sys/arm64/arm64/machdep.c +++ b/sys/arm64/arm64/machdep.c @@ -973,7 +973,7 @@ initarm(struct arm64_bootparams *abp) * segments also get excluded from phys_avail. */ #if defined(KASAN) - pmap_bootstrap_san(KERNBASE - abp->kern_delta); + pmap_bootstrap_san(); #endif physmem_init_kernel_globals(); diff --git a/sys/arm64/arm64/pmap.c b/sys/arm64/arm64/pmap.c index 9849a58dd07..d9d224f44fb 100644 --- a/sys/arm64/arm64/pmap.c +++ b/sys/arm64/arm64/pmap.c @@ -1365,11 +1365,14 @@ pmap_bootstrap(vm_paddr_t kernstart, vm_size_t kernlen) * - Map that entire range using L2 superpages. */ void -pmap_bootstrap_san(vm_paddr_t kernstart) +pmap_bootstrap_san(void) { vm_offset_t va; + vm_paddr_t kernstart; int i, shadow_npages, nkasan_l2; + kernstart = pmap_early_vtophys(KERNBASE); + /* * Rebuild physmap one more time, we may have excluded more regions from * allocation since pmap_bootstrap(). diff --git a/sys/arm64/include/pmap.h b/sys/arm64/include/pmap.h index bb226df2099..e7d23dfb284 100644 --- a/sys/arm64/include/pmap.h +++ b/sys/arm64/include/pmap.h @@ -192,7 +192,7 @@ pmap_vmspace_copy(pmap_t dst_pmap __unused, pmap_t src_pmap __unused) #if defined(KASAN) || defined(KMSAN) struct arm64_bootparams; -void pmap_bootstrap_san(vm_paddr_t); +void pmap_bootstrap_san(void); void pmap_san_enter(vm_offset_t); #endif