diff options
author | Zane Shelley <zshelle@us.ibm.com> | 2017-08-07 11:27:06 -0500 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2017-08-11 11:41:20 -0400 |
commit | 3e51462dade42ca3d52152d59b2b3b975d772d50 (patch) | |
tree | bbbbfcaf8187a37b36bca4d537dc0681600e4459 /src/usr/diag/prdf/plat/mem | |
parent | 4a73df3691b924e1a7a4d625c083db1d40f239fb (diff) | |
download | talos-hostboot-3e51462dade42ca3d52152d59b2b3b975d772d50.tar.gz talos-hostboot-3e51462dade42ca3d52152d59b2b3b975d772d50.zip |
PRD: infinite loop in VcmFalseAlarm::init()
Change-Id: I3aa05539fae4c185eb56287f821517f339fe405b
CQ: SW397809
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/44294
Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com>
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com>
Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/44472
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/plat/mem')
-rw-r--r-- | src/usr/diag/prdf/plat/mem/prdfMemTdFalseAlarm.H | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/usr/diag/prdf/plat/mem/prdfMemTdFalseAlarm.H b/src/usr/diag/prdf/plat/mem/prdfMemTdFalseAlarm.H index 9b497f8be..ae619c287 100644 --- a/src/usr/diag/prdf/plat/mem/prdfMemTdFalseAlarm.H +++ b/src/usr/diag/prdf/plat/mem/prdfMemTdFalseAlarm.H @@ -136,6 +136,8 @@ class TdFalseAlarm /** Threshold for each entries in the map. */ const TimeBasedThreshold iv_th; + protected: // instance variables + /** A map containing the thresholds for each key. */ std::map<uint32_t, TimeBasedThreshold> iv_thMap; }; @@ -200,7 +202,9 @@ class VcmFalseAlarm : public TdFalseAlarm uint32_t key = initThMap( i_rank ); // Clear out the list of DRAMs if the threshold time has elapsed. - if ( elapsed(i_rank, io_sc) ) iv_dramMap[key].clear(); + // Note that we cannot call elapsed() because it will do a recursive + // call to init(). + if ( iv_thMap[key].timeElapsed(io_sc) ) iv_dramMap[key].clear(); return key; } |