On 1/15/26 22:20, Manos Pitsidianakis wrote:
diff --git a/target/arm/cpu64.c b/target/arm/cpu64.c
index 
bf303813701972648fa6751ffe352ba074ca6442..8dd9eb46c783a799a53891a6ddad40b930e95eb4
 100644
--- a/target/arm/cpu64.c
+++ b/target/arm/cpu64.c
@@ -329,9 +329,20 @@ void arm_cpu_sme_finalize(ARMCPU *cpu, Error **errp)
  {
      uint32_t vq_map = cpu->sme_vq.map;
      uint32_t vq_init = cpu->sme_vq.init;
-    uint32_t vq_supported = cpu->sme_vq.supported;
+    uint32_t vq_supported;
      uint32_t vq;
+ if (hvf_enabled()) {
+        if (hvf_arm_sme2_supported()) {
+            vq_supported = hvf_arm_sme2_get_svl();
+        } else {
+            assert(!cpu_isar_feature(aa64_sme, cpu));
+            vq_supported = 0;
+        }
+    } else {
+        vq_supported = cpu->sme_vq.supported;
+    }

While this mirrors what we do for kvm and sve, I don't think this is sustainable. I think cpu->sme_vq should be initialized in hvf_arm_set_cpu_features_from_host.


r~

Reply via email to