[PATCH 13/18] arm64: Drop BBML2_NOABORT requirement for HVO
From: James Houghton
Date: Tue Jul 07 2026 - 23:16:48 EST
With PMD updates being done with the Access Flag trick, BBML2_NOABORT is
no longer needed.
Dropping this requirement vastly widens the pool of systems this
optimization is valid for.
Intentionally leave HVO as opt-in, as enabling HVO still introduces the
following regression: if all boot CPUs support HW AF, then any
late-onlined CPUs that do not will not be onlined.
Signed-off-by: James Houghton <jthoughton@xxxxxxxxxx>
---
arch/arm64/kernel/cpufeature.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
index 3b9224b99a5f..c13433316e80 100644
--- a/arch/arm64/kernel/cpufeature.c
+++ b/arch/arm64/kernel/cpufeature.c
@@ -2175,11 +2175,10 @@ static bool has_bbml2_noabort(const struct arm64_cpu_capabilities *caps, int sco
static bool hvo_compatible(const struct arm64_cpu_capabilities *caps, int scope)
{
/*
- * We need BBML2 to support Block -> Table transitions without taking
- * faults, and we need HW AF support to support changing the OA without
- * taking faults.
+ * We need HW AF support to support changing vmemmap mapping level and
+ * OA without taking faults.
*/
- return cpu_supports_bbml2_noabort() && supports_hw_af(scope);
+ return supports_hw_af(scope);
}
static void cpu_enable_pan(const struct arm64_cpu_capabilities *__unused)
--
2.55.0.795.g602f6c329a-goog