summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNick Bofferding <bofferdn@us.ibm.com>2017-06-25 23:50:03 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-06-27 13:19:55 -0400
commitdee23601a252d9bb8a42e2e02f6020a1688eee09 (patch)
tree7befc2c31b9f8c3f4a4e601364b5a051f209141d
parent81acff67f91941645a84825f4f77943db16a0692 (diff)
downloadblackbird-hostboot-dee23601a252d9bb8a42e2e02f6020a1688eee09.tar.gz
blackbird-hostboot-dee23601a252d9bb8a42e2e02f6020a1688eee09.zip
Fix size calculation when allocating TPM data
- Allocated max size before clearing TPM related HDAT data - Eliminated duplicate TPM related HDAT data clear Change-Id: I3cb38204e4641ec9e02c6c6dda29bf0fc08c9694 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/42411 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Stephen M. Cprek <smcprek@us.ibm.com> Reviewed-by: Michael Baiocchi <mbaiocch@us.ibm.com> Reviewed-by: Prachi Gupta <pragupta@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
-rw-r--r--src/usr/hdat/hdattpmdata.C10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/usr/hdat/hdattpmdata.C b/src/usr/hdat/hdattpmdata.C
index dddfc6c67..9ef885227 100644
--- a/src/usr/hdat/hdattpmdata.C
+++ b/src/usr/hdat/hdattpmdata.C
@@ -55,8 +55,8 @@ HdatTpmData::HdatTpmData(errlHndl_t &o_errlHndl,
const uint64_t l_baseAddr = static_cast<uint64_t>(i_msAddr.hi) << 32
| i_msAddr.lo;
-
- const uint64_t l_size = ALIGN_PAGE(sizeof(hdatTpmData_t)) + PAGESIZE;
+ const auto maxLogicalSize = hdatTpmDataCalcMaxSize();
+ const uint64_t l_size = ALIGN_PAGE(maxLogicalSize) + PAGESIZE;
const uint64_t l_alignedAddr = ALIGN_PAGE_DOWN(l_baseAddr);
@@ -72,7 +72,7 @@ HdatTpmData::HdatTpmData(errlHndl_t &o_errlHndl,
// TODO RTC 167290 - This memset needs to be revisited for multinode
// support. We may need to do this memset once per node or use some
// other approach to initialization.
- memset(iv_hdatTpmData, 0x0, sizeof(hdatTpmData_t));
+ memset(iv_hdatTpmData, 0x0, maxLogicalSize);
HDAT_DBG("Ctr iv_hdatTpmData addr 0x%.16llX virtual addr 0x%.16llX",
reinterpret_cast<uint64_t>(iv_hdatTpmData),
@@ -149,8 +149,8 @@ errlHndl_t HdatTpmData::hdatLoadTpmData(uint32_t &o_size, uint32_t &o_count)
o_size = hdatTpmDataCalcMaxSize();
- // zero all of it
- memset(iv_hdatTpmData,0,o_size);
+ // Note: HdatTpmData constructor already cleared the memory to the tune of
+ // o_size (hdatTpmDataCalcMaxSize()) bytes
// We add the first two fields for a reference to aid in debugging,
// but the rest will be populated in FSP/OpenPower common code. Any
OpenPOWER on IntegriCloud