From da695e7927076d4a99abad5c06ec687674f475ca Mon Sep 17 00:00:00 2001 From: Paul Mackerras Date: Fri, 10 Oct 2025 10:31:43 +1100 Subject: [PATCH] execute1: Fix bug where LPCR[HEIC] disabled interrupts in problem state (#453) LPCR[HEIC] should only disable external interrupts in hypervisor mode, and not in problem state (user mode). This fixes the expression for irq_valid to do that. Signed-off-by: Paul Mackerras --- execute1.vhdl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/execute1.vhdl b/execute1.vhdl index 43831f3..15d5333 100644 --- a/execute1.vhdl +++ b/execute1.vhdl @@ -1749,7 +1749,7 @@ begin irq_valid := ex1.msr(MSR_EE) and (pmu_to_x.intr or dec_sign or dhd_pending or - (ext_irq_in and not ctrl.lpcr_heic)); + (ext_irq_in and (not ctrl.lpcr_heic or ex1.msr(MSR_PR)))); if valid_in = '1' then v.prev_op := e_in.insn_type;