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 <paulus@ozlabs.org>
master
Paul Mackerras 4 days ago committed by GitHub
parent fabe9a4feb
commit da695e7927
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -1749,7 +1749,7 @@ begin


irq_valid := ex1.msr(MSR_EE) and irq_valid := ex1.msr(MSR_EE) and
(pmu_to_x.intr or dec_sign or dhd_pending or (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 if valid_in = '1' then
v.prev_op := e_in.insn_type; v.prev_op := e_in.insn_type;

Loading…
Cancel
Save