Commit 411b9496ca for qemu.org

commit 411b9496ca327f333b50a6608bef75fc3f6896aa
Author: Bibo Mao <maobibo@loongson.cn>
Date:   Thu Oct 30 16:17:23 2025 +0800

    target/loongarch: Call function loongarch_la464_init_csr() after realized

    When CPU is realized, it will check capability of host and set guest
    features, such as PMU CSR register number used by VM etc. Here move
    function call with loongarch_la464_init_csr() after CPU is realized.

    Signed-off-by: Bibo Mao <maobibo@loongson.cn>
    Reviewed-by: Song Gao <gaosong@loongson.cn>

diff --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c
index e01e044239..67ad9c3b79 100644
--- a/target/loongarch/cpu.c
+++ b/target/loongarch/cpu.c
@@ -106,11 +106,11 @@ bool loongarch_cpu_has_work(CPUState *cs)
 }
 #endif /* !CONFIG_USER_ONLY */

-static void loongarch_la464_init_csr(Object *obj)
+static void loongarch_la464_init_csr(DeviceState *dev)
 {
 #ifndef CONFIG_USER_ONLY
     static bool initialized;
-    LoongArchCPU *cpu = LOONGARCH_CPU(obj);
+    LoongArchCPU *cpu = LOONGARCH_CPU(dev);
     CPULoongArchState *env = &cpu->env;
     int i, num;

@@ -369,7 +369,6 @@ static void loongarch_la464_initfn(Object *obj)

     cpu->msgint = ON_OFF_AUTO_OFF;
     cpu->ptw = ON_OFF_AUTO_OFF;
-    loongarch_la464_init_csr(obj);
     loongarch_cpu_post_init(obj);
 }

@@ -524,6 +523,7 @@ static void loongarch_cpu_realizefn(DeviceState *dev, Error **errp)

     qemu_init_vcpu(cs);
     cpu_reset(cs);
+    loongarch_la464_init_csr(dev);

     lacc->parent_realize(dev, errp);
 }