Signed-off-by: Cédric Le Goater <clg@kaod.org>
---
hw/intc/xive_spapr.c | 5 +++++
hw/ppc/spapr.c | 4 ++++
include/hw/ppc/xive.h | 1 +
3 files changed, 10 insertions(+)
diff --git a/hw/intc/xive_spapr.c b/hw/intc/xive_spapr.c
index eb8a5c081e51..4f689f8b97c0 100644
--- a/hw/intc/xive_spapr.c
+++ b/hw/intc/xive_spapr.c
@@ -36,6 +36,11 @@ ICSState *xive_ics_get(XIVE *x, uint32_t lisn)
return ics_valid_irq(ics, lisn) ? ics : NULL;
}
+void xive_ics_pic_print_info(XIVE *x, Monitor *mon)
+{
+ ics_pic_print_info(ICS_BASE(&x->ipi_xs), mon);
+}
+
static XiveICSState *xive_ics_find(sPAPRMachineState *spapr, uint32_t lisn)
{
XICSFabricClass *xic = XICS_FABRIC_GET_CLASS(spapr);
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 816661f4c9ad..ca3a6bc2ea16 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -3399,6 +3399,10 @@ static void spapr_pic_print_info(InterruptStatsProvider *obj,
icp_pic_print_info(ICP(cpu->intc), mon);
}
+ if (spapr_ovec_test(spapr->ov5_cas, OV5_XIVE_EXPLOIT)) {
+ xive_ics_pic_print_info(spapr->xive, mon);
+ }
+
ics_pic_print_info(spapr->ics, mon);
}
diff --git a/include/hw/ppc/xive.h b/include/hw/ppc/xive.h
index dc5309264422..ee9b32d8c884 100644
--- a/include/hw/ppc/xive.h
+++ b/include/hw/ppc/xive.h
@@ -75,5 +75,6 @@ void xive_ics_create(XiveICSState *xs, XIVE *x, uint32_t offset,
uint32_t nr_irqs, uint32_t shift, uint32_t flags,
Error **errp);
ICSState *xive_ics_get(XIVE *x, uint32_t lisn);
+void xive_ics_pic_print_info(XIVE *x, Monitor *mon);
#endif /* PPC_XIVE_H */
--
2.7.5