diff --git a/sys/arm64/arm64/pmap.c b/sys/arm64/arm64/pmap.c index 8a73fb1c518..1fefcb491e0 100644 --- a/sys/arm64/arm64/pmap.c +++ b/sys/arm64/arm64/pmap.c @@ -685,8 +685,15 @@ pmap_pte_exists(pmap_t pmap, vm_offset_t va, int level, const char *diag) } bool -pmap_ps_enabled(pmap_t pmap __unused) +pmap_ps_enabled(pmap_t pmap) { + /* + * Promotion requires a hypervisor call when the kernel is running + * in EL1. To stop this disable superpage support on non-stage 1 + * pmaps for now. + */ + if (pmap->pm_stage != PM_STAGE1) + return (false); return (superpages_enabled != 0); }