summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop.h1
-rw-r--r--import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_threads.c4
2 files changed, 3 insertions, 2 deletions
diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop.h b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop.h
index dfad53d7..dcc7355c 100644
--- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop.h
+++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop.h
@@ -308,6 +308,7 @@ typedef struct
typedef struct
{
uint32_t starve_counter;
+ uint8_t entry_pending;
} sgpe_fit_t;
/// SGPE Stop Score Board Structure
diff --git a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_threads.c b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_threads.c
index 87b64191..b13c35cb 100644
--- a/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_threads.c
+++ b/import/chips/p9/procedures/ppe_closed/sgpe/stop_gpe/p9_sgpe_stop_threads.c
@@ -44,8 +44,7 @@ p9_sgpe_stop_exit_thread(void* arg)
// The actual exit sequence
p9_sgpe_stop_exit();
- if ((!G_sgpe_stop_record.group.core[VECTOR_ENTRY]) &&
- (!G_sgpe_stop_record.group.qswu[VECTOR_ENTRY]))
+ if (!G_sgpe_stop_record.fit.entry_pending)
{
#if !SKIP_IPC
@@ -115,6 +114,7 @@ p9_sgpe_stop_enter_thread(void* arg)
p9_sgpe_ack_pgpe_ctrl_stop_updates();
}
+ G_sgpe_stop_record.fit.entry_pending = 0;
PK_TRACE_INF("Setup: Entry done. Enable Type2/3/5/6 Interrupt");
g_oimr_override &= ~(BITS64(47, 2) | BITS64(50, 2));
pk_irq_vec_restore(&ctx);
OpenPOWER on IntegriCloud