Skip to content

Commit

Permalink
Finalize SBE PSU FFDC collection - Handle setFFDCAddress failed
Browse files Browse the repository at this point in the history
Change-Id: I9d9ac10df9eb44f63203abca14db3bcf8a7c9d16
RTC: 164405
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41608
Reviewed-by: Martin Gloff <mgloff@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Shakeeb A. Pasha B K <shakeebbk@in.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
  • Loading branch information
Dzuy Nguyen authored and dcrowell77 committed Jun 23, 2017
1 parent c4dc940 commit 6a207fa
Showing 1 changed file with 27 additions and 12 deletions.
39 changes: 27 additions & 12 deletions src/usr/sbeio/sbe_psudd.C
Expand Up @@ -358,6 +358,7 @@ errlHndl_t SbePsu::readResponse(TARGETING::Target * i_target,
SBE_TRACFBIN( "Full response:", o_pPsuResponse, sizeof(psuResponse) );
break;
}

//check status and seq ID in response messages
else if ((SBE_PRI_OPERATION_SUCCESSFUL != o_pPsuResponse->primaryStatus) ||
(SBE_SEC_OPERATION_SUCCESSFUL != o_pPsuResponse->secondaryStatus) ||
Expand All @@ -375,6 +376,7 @@ errlHndl_t SbePsu::readResponse(TARGETING::Target * i_target,
o_pPsuResponse->seqID);
SBE_TRACFBIN( "Full response:", o_pPsuResponse, sizeof(psuResponse) );


/*@
* @errortype
* @moduleid SBEIO_PSU
Expand All @@ -400,22 +402,35 @@ errlHndl_t SbePsu::readResponse(TARGETING::Target * i_target,
o_pPsuResponse->mbxReg4);

void * l_ffdcPkg = findFFDCBufferByTarget(i_target);

if(l_ffdcPkg != NULL)
{
SbeFFDCParser * l_ffdc_parser = new SbeFFDCParser();
l_ffdc_parser->parseFFDCData(l_ffdcPkg);
uint8_t l_pkgs = l_ffdc_parser->getTotalPackages();
uint8_t i;
for(i = 0; i < l_pkgs; i++)
//If this is a result of setFFDCAddress command, it fails.
//Deallocate FFDC buffer
if(i_pPsuRequest->command == SBE_PSU_SET_FFDC_ADDRESS)
{
errl->addFFDC( SBEIO_COMP_ID,
l_ffdc_parser->getFFDCPackage(i),
l_ffdc_parser->getPackageLength(i),
0,
SBEIO_UDT_PARAMETERS,
false );
SBE_TRACF(ERR_MRK, "sbe_psudd.C: readResponse: "
"Set FFDC Address failed.");
PageManager::freePage(l_ffdcPkg);
iv_ffdcPackageBuffer.erase(i_target);
}
else
{
SbeFFDCParser * l_ffdc_parser = new SbeFFDCParser();
l_ffdc_parser->parseFFDCData(l_ffdcPkg);
uint8_t l_pkgs = l_ffdc_parser->getTotalPackages();
uint8_t i;
for(i = 0; i < l_pkgs; i++)
{
errl->addFFDC( SBEIO_COMP_ID,
l_ffdc_parser->getFFDCPackage(i),
l_ffdc_parser->getPackageLength(i),
0,
SBEIO_UDT_PARAMETERS,
false );
}
delete l_ffdc_parser;
}
delete l_ffdc_parser;
}

errl->addProcedureCallout(HWAS::EPUB_PRC_HB_CODE,
Expand Down

0 comments on commit 6a207fa

Please sign in to comment.