hw/intc: Fix LoongArch ipi device emulation
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. When call this function 'address_space_stl()', it will trigger loongarch_ipi_writel(), the addr arg is 0x1008 ('CORE_SET_OFF'), and qemu_irq_raise will be called in this case. Signed-off-by: Xiaojuan Yang <yangxiaojuan@loongson.cn> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20220930095139.867115-3-yangxiaojuan@loongson.cn> Signed-off-by: Song Gao <gaosong@loongson.cn>
This commit is contained in:
parent
7bf36a5c52
commit
5ef4a4af8b
@ -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);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user