summaryrefslogtreecommitdiffstats
path: root/src/usr/fsi/fsidd.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/fsi/fsidd.C')
-rw-r--r--src/usr/fsi/fsidd.C18
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;
+ }
}
}
OpenPOWER on IntegriCloud