Hi Mark,

On 18/09/26 6:49 pm, Mark Cave-Ayland wrote:
On 03/09/2026 12:50, Kirill A. Korinsky wrote:

OpenBSD writes zero to an edge triggered decrementer, then enters idle
expecting its interrupt. QEMU defers the already due edge to a timer at
the current virtual time, leaving the guest stalled.

Signed-off-by: Kirill A. Korinsky <[email protected]>
---
  hw/ppc/ppc.c | 1 +
  1 file changed, 1 insertion(+)

diff --git a/hw/ppc/ppc.c b/hw/ppc/ppc.c
index b123b4cc1c..d99e47d532 100644
--- a/hw/ppc/ppc.c
+++ b/hw/ppc/ppc.c
@@ -885,6 +885,7 @@ static void __cpu_ppc_store_decr(PowerPCCPU *cpu, int64_t now, uint64_t *nextp,
       * an edge interrupt, so raise it here too.
       */
      if (((flags & PPC_DECR_UNDERFLOW_LEVEL) && signed_value < 0) ||
+        ((flags & PPC_DECR_UNDERFLOW_TRIGGERED) && value == 0) ||
          ((flags & PPC_DECR_UNDERFLOW_TRIGGERED) && signed_value < 0
            && signed_decr >= 0)) {
          (*raise_excp)(cpu);

LGTM, however since this is core PPC code I'd like a R-B tag from the main PPC maintainers above. Chinmay/Harsh?

Thanks for your review feedback on this series.
Chinmay is on vacation till next week and I had asked Amit and Anushree
offline to provide their review/test feedback on this (considering this
2/5 generic change). I see Kirill has posted v2 based on Amit's review
feedback now. Since it is going to land in 11.2, I think we can give it
a little more time for review feedback (if any), before pulling it in
along with other PPC patches. Let me know if any other concerns? Thanks!

regards,
Harsh


ATB,

Mark.


Reply via email to