target/loongarch: Fix SWI interrupt delivery via CSR_ESTAT
In TCG mode, helper_csrwr_estat() updates CSR.ESTAT.IS[1:0] (SWI0/SWI1) when the guest writes CSR_ESTAT, but it did not update the CPU interrupt request state. As a result, software interrupts could be observed as pending in CSR.ESTAT while no interrupt exception was taken. Update CPU_INTERRUPT_HARD after modifying CSR_ESTAT, matching the behavior of loongarch_cpu_set_irq(). The helper runs without the Big QEMU Lock (BQL), so take the BQL while calling cpu_interrupt(). Fixes: 5b1dedfe848b ("target/loongarch: Add LoongArch CSR instruction") Reported-by: Andrew S. Rightenburg <andrew@rail5.org> Signed-off-by: Andrew S. Rightenburg <andrew@rail5.org> Signed-off-by: Bibo Mao <maobibo@loongson.cn> Reviewed-by: Song Gao <17746591750@163.com> Message-ID: <20260806120315.1059413-1-maobibo@loongson.cn> Signed-off-by: Song Gao <gaosong@loongson.cn>