summaryrefslogtreecommitdiffstats
path: root/src/sbefw
diff options
context:
space:
mode:
Diffstat (limited to 'src/sbefw')
-rw-r--r--src/sbefw/core/sbecmdprocessor.C7
-rw-r--r--src/sbefw/core/sbemain.C4
2 files changed, 9 insertions, 2 deletions
diff --git a/src/sbefw/core/sbecmdprocessor.C b/src/sbefw/core/sbecmdprocessor.C
index c0cf0353..2d4e77b0 100644
--- a/src/sbefw/core/sbecmdprocessor.C
+++ b/src/sbefw/core/sbecmdprocessor.C
@@ -455,6 +455,11 @@ void sbeAsyncCommandProcessor_routine(void *arg)
ReturnCode rc = FAPI2_RC_SUCCESS;
Target<TARGET_TYPE_PROC_CHIP > proc = plat_getChipTarget();
+
+ // Run the procedure atomically
+ PkMachineContext ctx;
+ pk_critical_section_enter(&ctx);
+
SBE_EXEC_HWP(rc, p9_sbe_io_eol_toggle, proc)
if (rc != FAPI2_RC_SUCCESS)
{
@@ -463,6 +468,8 @@ void sbeAsyncCommandProcessor_routine(void *arg)
captureAsyncFFDC(SBE_PRI_GENERIC_EXECUTION_FAILURE,
SBE_SEC_PERIODIC_IO_TOGGLE_FAILED);
}
+
+ pk_critical_section_exit(&ctx);
} while(1);
#endif // PERIODIC_IO_TOGGLE_SUPPORTED
#undef SBE_FUNC
diff --git a/src/sbefw/core/sbemain.C b/src/sbefw/core/sbemain.C
index 327c3339..9bcc53e0 100644
--- a/src/sbefw/core/sbemain.C
+++ b/src/sbefw/core/sbemain.C
@@ -226,7 +226,7 @@ int sbeInitThreads(void)
(void *)0,
(PkAddress)sbeSyncCommandProcessor_stack,
SBE_THREAD_SYNC_CMD_PROC_STACK_SIZE,
- THREAD_PRIORITY_7);
+ THREAD_PRIORITY_6);
if (l_rc)
{
break;
@@ -238,7 +238,7 @@ int sbeInitThreads(void)
(void *)0,
(PkAddress)sbeAsyncCommandProcessor_stack,
SBE_THREAD_ASYNC_CMD_PROC_STACK_SIZE,
- THREAD_PRIORITY_6);
+ THREAD_PRIORITY_7);
if (l_rc)
{
break;
OpenPOWER on IntegriCloud