diff mbox series

target/loongarch: Adjust the cpu reset action to a proper position

Message ID 20250303063043.3237264-1-lixianglai@loongson.cn (mailing list archive)
State New
Headers show
Series target/loongarch: Adjust the cpu reset action to a proper position | expand

Commit Message

Xianglai Li March 3, 2025, 6:30 a.m. UTC
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(-)

Comments

bibo mao March 3, 2025, 9:15 a.m. UTC | #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);
>   }
>
Igor Mammedov March 3, 2025, 1:21 p.m. UTC | #2
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);
> >   }
> >   
> 
>
diff mbox series

Patch

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);
 }