aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Piggin <npiggin@gmail.com>2025-05-12 13:10:39 +1000
committerCédric Le Goater <clg@redhat.com>2025-07-21 08:03:52 +0200
commitd16214ed2c57a31b5de7e2c115c65b831170a60e (patch)
tree0b73db5d8922fbd91ae04a93841f180b81f961ce
parentcc15d50b6e8a4090d667755259ea36144b79d22f (diff)
downloadqemu-d16214ed2c57a31b5de7e2c115c65b831170a60e.zip
qemu-d16214ed2c57a31b5de7e2c115c65b831170a60e.tar.gz
qemu-d16214ed2c57a31b5de7e2c115c65b831170a60e.tar.bz2
ppc/xive: Add xive_tctx_pipr_present() to present new interrupt
xive_tctx_pipr_update() is used for multiple things. In an effort to make things simpler and less overloaded, split out the function that is used to present a new interrupt to the tctx. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> Reviewed-by: Glenn Miles <milesg@linux.ibm.com> Reviewed-by: Michael Kowal <kowal@linux.ibm.com> Tested-by: Gautam Menghani <gautam@linux.ibm.com> Link: https://lore.kernel.org/qemu-devel/20250512031100.439842-31-npiggin@gmail.com Signed-off-by: Cédric Le Goater <clg@redhat.com>
-rw-r--r--hw/intc/xive.c8
-rw-r--r--hw/intc/xive2.c2
-rw-r--r--include/hw/ppc/xive.h2
3 files changed, 10 insertions, 2 deletions
diff --git a/hw/intc/xive.c b/hw/intc/xive.c
index c92e819..038c358 100644
--- a/hw/intc/xive.c
+++ b/hw/intc/xive.c
@@ -225,6 +225,12 @@ void xive_tctx_pipr_update(XiveTCTX *tctx, uint8_t ring, uint8_t priority,
xive_tctx_notify(tctx, ring, group_level);
}
+void xive_tctx_pipr_present(XiveTCTX *tctx, uint8_t ring, uint8_t priority,
+ uint8_t group_level)
+{
+ xive_tctx_pipr_update(tctx, ring, priority, group_level);
+}
+
/*
* XIVE Thread Interrupt Management Area (TIMA)
*/
@@ -2040,7 +2046,7 @@ void xive_router_end_notify(XiveRouter *xrtr, XiveEAS *eas)
xive_get_field32(END_W7_F1_LOG_SERVER_ID, end.w7),
&match)) {
trace_xive_presenter_notify(nvt_blk, nvt_idx, match.ring, 0);
- xive_tctx_pipr_update(match.tctx, match.ring, priority, 0);
+ xive_tctx_pipr_present(match.tctx, match.ring, priority, 0);
return;
}
diff --git a/hw/intc/xive2.c b/hw/intc/xive2.c
index f51fd38..fe40f7f 100644
--- a/hw/intc/xive2.c
+++ b/hw/intc/xive2.c
@@ -1652,7 +1652,7 @@ static void xive2_router_end_notify(Xive2Router *xrtr, uint8_t end_blk,
group_level = xive_get_group_level(crowd, cam_ignore, nvx_blk, nvx_idx);
trace_xive_presenter_notify(nvx_blk, nvx_idx, ring, group_level);
- xive_tctx_pipr_update(tctx, ring, priority, group_level);
+ xive_tctx_pipr_present(tctx, ring, priority, group_level);
return;
}
diff --git a/include/hw/ppc/xive.h b/include/hw/ppc/xive.h
index 8152a9d..0d6b11e 100644
--- a/include/hw/ppc/xive.h
+++ b/include/hw/ppc/xive.h
@@ -562,6 +562,8 @@ void xive_tctx_reset(XiveTCTX *tctx);
void xive_tctx_destroy(XiveTCTX *tctx);
void xive_tctx_pipr_update(XiveTCTX *tctx, uint8_t ring, uint8_t priority,
uint8_t group_level);
+void xive_tctx_pipr_present(XiveTCTX *tctx, uint8_t ring, uint8_t priority,
+ uint8_t group_level);
void xive_tctx_reset_signal(XiveTCTX *tctx, uint8_t ring);
void xive_tctx_notify(XiveTCTX *tctx, uint8_t ring, uint8_t group_level);
uint64_t xive_tctx_accept(XiveTCTX *tctx, uint8_t ring);