diff options
author | Doug Gilbert <dgilbert@us.ibm.com> | 2014-04-29 10:46:53 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-05-08 15:39:21 -0500 |
commit | 679df937c8d61247dfff4c0cbe21d7a8af43e7b0 (patch) | |
tree | 4c9bec7424f15e37f1c00e4f0be2144c25f6d484 /src/usr | |
parent | bef228d12666fb96a6a6e66b1e464aa6c6c0d53c (diff) | |
download | talos-hostboot-679df937c8d61247dfff4c0cbe21d7a8af43e7b0.tar.gz talos-hostboot-679df937c8d61247dfff4c0cbe21d7a8af43e7b0.zip |
Data exception when lots of FRU's don't have VPD provided by FSP
Change-Id: I05d15ed1ab28449e95f84614615b4b21b7fe7a62
RTC:98409
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/10841
Tested-by: Jenkins Server
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr')
-rw-r--r-- | src/usr/fsi/fsidd.C | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/usr/fsi/fsidd.C b/src/usr/fsi/fsidd.C index 3b84eac76..440b8ccd6 100644 --- a/src/usr/fsi/fsidd.C +++ b/src/usr/fsi/fsidd.C @@ -2796,13 +2796,19 @@ errlHndl_t FsiDD::verifyPresent( TARGETING::Target* i_target ) uint32_t mlevp_data = 0x12345678; if( iv_ffdcTask == 0 ) { - errlHndl_t tmp_err = read( chipinfo.master, - FSI_MLEVP0_018, - &mlevp_data ); - if( tmp_err ) + // doing a read for MLEVP will end up calling verifyPresent(..) + // again so make sure chipinfo.master is valid or there will be + // an infinite loop until stack space is exhausted. + if(chipinfo.master != NULL) { - delete tmp_err; - mlevp_data = 0x12345678; + errlHndl_t tmp_err = read( chipinfo.master, + FSI_MLEVP0_018, + &mlevp_data ); + if( tmp_err ) + { + delete tmp_err; + mlevp_data = 0x12345678; + } } } |