target/loongarch/cpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
The commit 5a99a10da6cf ("target/loongarch: fix vcpu reset command word issue")
fixes the error in the cpu reset ioctl command word delivery process,
so that the command word can be delivered correctly, and adds the judgment
and processing of the error return value, which exposes another problem that
under loongarch, the cpu reset action is earlier than the creation of vcpu.
An error occurs when the cpu reset command is sent.
Now adjust the order of cpu reset and vcpu create actions to fix this problem
Signed-off-by: Xianglai Li <lixianglai@loongson.cn>
---
Bibo Mao <maobibo@loongson.cn>
Huacai Chen <chenhuacai@loongson.cn>
Song Gao <gaosong@loongson.cn>
Xianglai Li <lixianglai@loongson.cn>
target/loongarch/cpu.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c
index 3788f895c1..67aa7875b6 100644
--- a/target/loongarch/cpu.c
+++ b/target/loongarch/cpu.c
@@ -640,8 +640,8 @@ static void loongarch_cpu_realizefn(DeviceState *dev, Error **errp)
loongarch_cpu_register_gdb_regs_for_features(cs);
- cpu_reset(cs);
qemu_init_vcpu(cs);
+ cpu_reset(cs);
lacc->parent_realize(dev, errp);
}
--
2.39.1
Xianglai, There is a similar modification already, just wait a moment :) https://lists.nongnu.org/archive/html/qemu-devel/2025-02/msg01537.html Regards Bibo Mao On 2025/3/3 下午2:30, Xianglai Li wrote: > The commit 5a99a10da6cf ("target/loongarch: fix vcpu reset command word issue") > fixes the error in the cpu reset ioctl command word delivery process, > so that the command word can be delivered correctly, and adds the judgment > and processing of the error return value, which exposes another problem that > under loongarch, the cpu reset action is earlier than the creation of vcpu. > An error occurs when the cpu reset command is sent. > > Now adjust the order of cpu reset and vcpu create actions to fix this problem > > Signed-off-by: Xianglai Li <lixianglai@loongson.cn> > --- > Bibo Mao <maobibo@loongson.cn> > Huacai Chen <chenhuacai@loongson.cn> > Song Gao <gaosong@loongson.cn> > Xianglai Li <lixianglai@loongson.cn> > > target/loongarch/cpu.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c > index 3788f895c1..67aa7875b6 100644 > --- a/target/loongarch/cpu.c > +++ b/target/loongarch/cpu.c > @@ -640,8 +640,8 @@ static void loongarch_cpu_realizefn(DeviceState *dev, Error **errp) > > loongarch_cpu_register_gdb_regs_for_features(cs); > > - cpu_reset(cs); > qemu_init_vcpu(cs); > + cpu_reset(cs); > > lacc->parent_realize(dev, errp); > } >
On Mon, 3 Mar 2025 17:15:13 +0800 bibo mao <maobibo@loongson.cn> wrote: > Xianglai, > > There is a similar modification already, just wait a moment :) > https://lists.nongnu.org/archive/html/qemu-devel/2025-02/msg01537.html Please ignore my patch (commit message gives good enough justification for refactoring but that's it). this patch commit message however points to the concrete issue wrong reset ordering causes, hence I think it's better to merge this variant. Acked-by: Igor Mammedov <imammedo@redhat.com> > > > Regards > Bibo Mao > > On 2025/3/3 下午2:30, Xianglai Li wrote: > > The commit 5a99a10da6cf ("target/loongarch: fix vcpu reset command word issue") > > fixes the error in the cpu reset ioctl command word delivery process, > > so that the command word can be delivered correctly, and adds the judgment > > and processing of the error return value, which exposes another problem that > > under loongarch, the cpu reset action is earlier than the creation of vcpu. > > An error occurs when the cpu reset command is sent. > > > > Now adjust the order of cpu reset and vcpu create actions to fix this problem > > > > Signed-off-by: Xianglai Li <lixianglai@loongson.cn> > > --- > > Bibo Mao <maobibo@loongson.cn> > > Huacai Chen <chenhuacai@loongson.cn> > > Song Gao <gaosong@loongson.cn> > > Xianglai Li <lixianglai@loongson.cn> > > > > target/loongarch/cpu.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c > > index 3788f895c1..67aa7875b6 100644 > > --- a/target/loongarch/cpu.c > > +++ b/target/loongarch/cpu.c > > @@ -640,8 +640,8 @@ static void loongarch_cpu_realizefn(DeviceState *dev, Error **errp) > > > > loongarch_cpu_register_gdb_regs_for_features(cs); > > > > - cpu_reset(cs); > > qemu_init_vcpu(cs); > > + cpu_reset(cs); > > > > lacc->parent_realize(dev, errp); > > } > > > >
© 2016 - 2025 Red Hat, Inc.