qemu-e2k/hw/intc
Frank Chang 078189b327 hw/intc: Update APLIC IDC after claiming iforce register
Currently, QEMU only sets the iforce register to 0 and returns early
when claiming the iforce register. However, this may leave mip.meip
remains at 1 if a spurious external interrupt triggered by iforce
register is the only pending interrupt to be claimed, and the interrupt
cannot be lowered as expected.

This commit fixes this issue by calling riscv_aplic_idc_update() to
update the IDC status after the iforce register is claimed.

Signed-off-by: Frank Chang <frank.chang@sifive.com>
Reviewed-by: Jim Shu <jim.shu@sifive.com>
Reviewed-by: Alistair Francis <alistair.francis@wdc.com>
Message-ID: <20240321104951.12104-1-frank.chang@sifive.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
2024-03-22 15:29:44 +10:00
..
allwinner-a10-pic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
apic_common.c hw/i386/x86: Fix PIC interrupt handling if APIC is globally disabled 2024-02-14 06:09:32 -05:00
apic.c hw/intc/apic: fix memory leak 2024-03-09 18:51:45 +01:00
arm_gic_common.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
arm_gic_kvm.c migration: simplify blockers 2023-10-20 08:51:41 +02:00
arm_gic.c arm: spelling fixes 2023-07-25 17:13:53 +03:00
arm_gicv2m.c
arm_gicv3_common.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
arm_gicv3_cpuif_common.c
arm_gicv3_cpuif.c hw/intc/arm_gicv3_cpuif: Mark up VNCR offsets for GIC CPU registers 2024-01-09 14:44:45 +00:00
arm_gicv3_dist.c
arm_gicv3_its_common.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
arm_gicv3_its_kvm.c hw/intc/arm_gicv3: Include missing 'qemu/error-report.h' header 2023-12-19 17:57:44 +00:00
arm_gicv3_its.c hw/intc/arm_gicv3_its: Avoid shadowing variable in do_process_its_cmd() 2023-09-29 10:07:18 +02:00
arm_gicv3_kvm.c migration: simplify blockers 2023-10-20 08:51:41 +02:00
arm_gicv3_redist.c arm: spelling fixes 2023-07-25 17:13:53 +03:00
arm_gicv3.c
armv7m_nvic.c hw/intc/armv7m_nvic: add "num-prio-bits" property 2024-01-09 14:42:40 +00:00
aspeed_vic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
bcm2835_ic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
bcm2836_control.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
etraxfs_pic.c
exynos4210_combiner.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
exynos4210_gic.c
gic_internal.h
gicv3_internal.h
goldfish_pic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
grlib_irqmp.c hw/intc/grlib_irqmp: abort realize when ncpus value is out of range 2024-03-09 19:17:01 +01:00
heathrow_pic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
i8259_common.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
i8259.c
imx_avic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
imx_gpcv2.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
intc.c
ioapic_common.c hw/intc: Check @errp to handle the error of IOAPICCommonClass.realize() 2024-03-12 11:45:33 +01:00
ioapic_internal.h
ioapic.c
Kconfig hw/intc/Kconfig: Fix GIC settings when using "--without-default-devices" 2024-03-01 08:27:33 +01:00
kvm_irqcount.c
loongarch_extioi.c hw/intc/loongarch_extioi: Fix interrupt routing update 2024-03-20 10:19:57 +08:00
loongarch_ipi.c hw/loongarch/virt: Set iocsr address space per-board rather than percpu 2024-01-11 19:22:47 +08:00
loongarch_pch_msi.c
loongarch_pch_pic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
loongson_liointc.c hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
m68k_irqc.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
meson.build meson: Replace softmmu_ss -> system_ss 2023-06-20 10:01:30 +02:00
mips_gic.c accel/tcg: Replace CPUState.env_ptr with cpu_env() 2023-10-04 11:03:54 -07:00
nios2_vic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
omap_intc.c hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
ompic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
openpic_kvm.c
openpic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
pl190.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
pnv_xive2_regs.h pnv/xive2: Add definition for the ESB cache configuration register 2023-06-10 10:19:24 -03:00
pnv_xive2.c ppc/xive: Use address_space routines to access the machine RAM 2023-09-06 11:19:33 +02:00
pnv_xive_regs.h ppc/xive: Handle END triggers between chips with MMIOs 2023-09-06 11:19:33 +02:00
pnv_xive.c hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
ppc-uic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
realview_gic.c
riscv_aclint.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
riscv_aplic.c hw/intc: Update APLIC IDC after claiming iforce register 2024-03-22 15:29:44 +10:00
riscv_imsic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
rx_icu.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
s390_flic_kvm.c hw/intc/s390_flic: Consolidate the use of device_class_set_parent_realize() 2024-02-13 10:59:25 +03:00
s390_flic.c system/cpus: rename qemu_mutex_lock_iothread() to bql_lock() 2024-01-08 10:45:43 -05:00
sh_intc.c
sifive_plic.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
slavio_intctl.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
spapr_xive_kvm.c hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
spapr_xive.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
trace-events i386/tcg: implement x2APIC registers MSR access 2024-02-14 06:09:32 -05:00
trace.h
vgic_common.h
xics_kvm.c
xics_pnv.c
xics_spapr.c
xics.c hw/intc/xics: Include missing 'cpu.h' header 2024-01-30 21:20:20 +03:00
xilinx_intc.c
xive2.c hw/other: spelling fixes 2023-09-21 11:31:16 +03:00
xive.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
xlnx-pmu-iomod-intc.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00
xlnx-zynqmp-ipi.c hw/intc: Constify VMState 2023-12-29 11:17:30 +11:00