diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/include/usr/initservice/initserviceif.H | 48 | ||||
-rw-r--r-- | src/usr/hwpf/hwp/start_payload/start_payload.C | 7 | ||||
-rw-r--r-- | src/usr/initservice/baseinitsvc/initservice.C | 11 | ||||
-rw-r--r-- | src/usr/pnor/pnorrp.C | 2 |
4 files changed, 33 insertions, 35 deletions
diff --git a/src/include/usr/initservice/initserviceif.H b/src/include/usr/initservice/initserviceif.H index aac8885aa..f09433e15 100644 --- a/src/include/usr/initservice/initserviceif.H +++ b/src/include/usr/initservice/initserviceif.H @@ -1,25 +1,25 @@ -// IBM_PROLOG_BEGIN_TAG -// This is an automatically generated prolog. -// -// $Source: src/include/usr/initservice/initserviceif.H $ -// -// IBM CONFIDENTIAL -// -// COPYRIGHT International Business Machines Corp. 2011 -// -// p1 -// -// Object Code Only (OCO) source materials -// Licensed Internal Code Source Materials -// IBM HostBoot Licensed Internal Code -// -// The source code for this program is not published or other- -// wise divested of its trade secrets, irrespective of what has -// been deposited with the U.S. Copyright Office. -// -// Origin: 30 -// -// IBM_PROLOG_END +/* IBM_PROLOG_BEGIN_TAG */ +/* This is an automatically generated prolog. */ +/* */ +/* $Source: src/include/usr/initservice/initserviceif.H $ */ +/* */ +/* IBM CONFIDENTIAL */ +/* */ +/* COPYRIGHT International Business Machines Corp. 2011,2013 */ +/* */ +/* p1 */ +/* */ +/* Object Code Only (OCO) source materials */ +/* Licensed Internal Code Source Materials */ +/* IBM HostBoot Licensed Internal Code */ +/* */ +/* The source code for this program is not published or otherwise */ +/* divested of its trade secrets, irrespective of what has been */ +/* deposited with the U.S. Copyright Office. */ +/* */ +/* Origin: 30 */ +/* */ +/* IBM_PROLOG_END_TAG */ #ifndef __INITSERVICE_INITSERVICEIF_H #define __INITSERVICE_INITSERVICEIF_H @@ -86,10 +86,12 @@ bool unregisterShutdownEvent(msg_q_t i_msgQ); * payload entry-point. * * @return Nothing + * + * @note Never returns. */ void doShutdown ( uint64_t i_status, uint64_t i_payload_base = 0, - uint64_t i_payload_entry = 0 ); + uint64_t i_payload_entry = 0 ) NO_RETURN; } diff --git a/src/usr/hwpf/hwp/start_payload/start_payload.C b/src/usr/hwpf/hwp/start_payload/start_payload.C index 544499b21..205dc105a 100644 --- a/src/usr/hwpf/hwp/start_payload/start_payload.C +++ b/src/usr/hwpf/hwp/start_payload/start_payload.C @@ -358,13 +358,6 @@ errlHndl_t callShutdown ( void ) payloadBase, payloadEntry ); - // Hang out here until shutdown happens - int status = 0x0; - while( 1 ) - { - task_wait( &status, - NULL ); - } } while( 0 ); TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, diff --git a/src/usr/initservice/baseinitsvc/initservice.C b/src/usr/initservice/baseinitsvc/initservice.C index 7267a5dd1..98b9a6a2c 100644 --- a/src/usr/initservice/baseinitsvc/initservice.C +++ b/src/usr/initservice/baseinitsvc/initservice.C @@ -5,7 +5,7 @@ /* */ /* IBM CONFIDENTIAL */ /* */ -/* COPYRIGHT International Business Machines Corp. 2011,2012 */ +/* COPYRIGHT International Business Machines Corp. 2011,2013 */ /* */ /* p1 */ /* */ @@ -551,7 +551,7 @@ void InitService::init( void *io_ptr ) // Set the shutdown status to be the plid to force a TI l_shutdownStatus = l_errl->plid(); - errlCommit( l_errl, INITSVC_COMP_ID ); + errlCommit( l_errl, INITSVC_COMP_ID ); } @@ -619,6 +619,11 @@ void doShutdown ( uint64_t i_status, Singleton<InitService>::instance().doShutdown( i_status, i_payload_base, i_payload_entry ); + + while(1) + { + task_yield(); + }; } void InitService::doShutdown(uint64_t i_status, @@ -673,7 +678,7 @@ void InitService::doShutdown(uint64_t i_status, } l_rb_iter++; } - + shutdown(i_status, i_payload_base, i_payload_entry); } diff --git a/src/usr/pnor/pnorrp.C b/src/usr/pnor/pnorrp.C index 03159fb15..974f91d3a 100644 --- a/src/usr/pnor/pnorrp.C +++ b/src/usr/pnor/pnorrp.C @@ -425,7 +425,6 @@ errlHndl_t PnorRP::readTOC() { //Shutdown if we detected a partition table issue for any reason INITSERVICE::doShutdown( PNOR::RC_PARTITION_TABLE_INVALID); - while(1) { task_yield(); } } ffs_hb_user_t* ffsUserData = NULL; @@ -492,7 +491,6 @@ errlHndl_t PnorRP::readTOC() TRACFCOMP(g_trac_pnor, "E>PnorRp::readTOC: Partition(%s) at base address (0x%.8x) extends past end of flash device", cur_entry->name, iv_TOC[cur_side][secId].flashAddr); INITSERVICE::doShutdown( PNOR::RC_PARTITION_TABLE_INVALID); - while(1) { task_yield(); } } cur_entry++; |