summaryrefslogtreecommitdiffstats
path: root/src/usr/pnor
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2013-10-12 14:44:20 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2013-10-15 15:56:58 -0500
commit35221ecd39216bf311fc0e497af57aea33b18d45 (patch)
treebc8b96cdad7f0b9b06ce9c1852c2cba74cb7723a /src/usr/pnor
parent7e9f61fd1751f40af0a5eabb1cb0fac7a3913666 (diff)
downloadtalos-hostboot-35221ecd39216bf311fc0e497af57aea33b18d45.tar.gz
talos-hostboot-35221ecd39216bf311fc0e497af57aea33b18d45.zip
Fix race conditions in initservice shutdown path.
Change-Id: I0da3c2050d5d64d20975031e093dd10978684e2b Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/6663 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: Brian H. Horton <brianh@linux.ibm.com> Reviewed-by: Andrea Y. Ma <ayma@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/pnor')
-rw-r--r--src/usr/pnor/pnordd.C4
-rw-r--r--src/usr/pnor/pnorrp.C15
2 files changed, 3 insertions, 16 deletions
diff --git a/src/usr/pnor/pnordd.C b/src/usr/pnor/pnordd.C
index 69ca4baf9..d05e66a28 100644
--- a/src/usr/pnor/pnordd.C
+++ b/src/usr/pnor/pnordd.C
@@ -600,7 +600,7 @@ errlHndl_t PnorDD::writeRegSfc(SfcRange i_range,
uint32_t i_data)
{
errlHndl_t l_err = NULL;
- uint32_t lpc_addr;
+ uint32_t lpc_addr = 0;
switch(i_range)
{
@@ -646,7 +646,7 @@ errlHndl_t PnorDD::readRegSfc(SfcRange i_range,
uint32_t& o_data)
{
errlHndl_t l_err = NULL;
- uint32_t lpc_addr;
+ uint32_t lpc_addr = 0;
switch(i_range)
{
diff --git a/src/usr/pnor/pnorrp.C b/src/usr/pnor/pnorrp.C
index c13f4a306..dd782058f 100644
--- a/src/usr/pnor/pnorrp.C
+++ b/src/usr/pnor/pnorrp.C
@@ -142,19 +142,6 @@ void* wait_for_message( void* unused )
return NULL;
}
-/**
- * @brief Static function wrapper to call doShutdown
- * to avoid deadlock in main task
- */
-void* pnor_shutdown( void* unused )
-{
- TRACFCOMP(g_trac_pnor, "pnor_shutdown> " );
- printk( "PNOR errors causing shutdown\n" );
- INITSERVICE::doShutdown( PNOR::RC_ECC_UE );
- return NULL;
-}
-
-
/********************
Private/Protected Methods
********************/
@@ -727,7 +714,7 @@ errlHndl_t PnorRP::readFromDevice( uint64_t i_offset,
// that happen during shutdown.
iv_shutdownUE = true;
o_fatalError = true;
- task_create( pnor_shutdown, NULL );
+ INITSERVICE::doShutdown( PNOR::RC_ECC_UE, true );
}
// found an error so we need to fix something
else if( ecc_stat != PNOR::ECC::CLEAN )
OpenPOWER on IntegriCloud