qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v2 3/3] hw/intc: Fix LoongArch ipi device emulation


From: yangxiaojuan
Subject: Re: [PATCH v2 3/3] hw/intc: Fix LoongArch ipi device emulation
Date: Thu, 29 Sep 2022 11:23:05 +0800
User-agent: Mozilla/5.0 (X11; Linux loongarch64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0


在 2022/9/29 上午10:42, Richard Henderson 写道:
On 9/26/22 23:12, Xiaojuan Yang wrote:
In ipi_send function, it should not to set irq before
writing data to dest cpu iocsr space, as the irq will
trigger after data writing.

Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn>
---
  hw/intc/loongarch_ipi.c | 1 -
  1 file changed, 1 deletion(-)

diff --git a/hw/intc/loongarch_ipi.c b/hw/intc/loongarch_ipi.c
index 4f3c58f872..aa4bf9eb74 100644
--- a/hw/intc/loongarch_ipi.c
+++ b/hw/intc/loongarch_ipi.c
@@ -88,7 +88,6 @@ static void ipi_send(uint64_t val)
      cs = qemu_get_cpu(cpuid);
      cpu = LOONGARCH_CPU(cs);
      env = &cpu->env;
-    loongarch_cpu_set_irq(cpu, IRQ_IPI, 1);
      address_space_stl(&env->address_space_iocsr, 0x1008,
                        data, MEMTXATTRS_UNSPECIFIED, NULL);
 

Did you mean to move the call below the set?
Otherwise, where does the irq get raised?

When call this function 'address_space_stl(&env->address_space_iocsr, 0x1008, ... ...)',  it will trigger  loongarch_ipi_writel(), the addr arg is 0x1008 ('CORE_SET_OFFSET'), and qemu_irq_raise will be called in this case.

Thanks.
Xiaojuan Yang


reply via email to

[Prev in Thread] Current Thread [Next in Thread]