<p>Richard Spiegel has uploaded this change for <strong>review</strong>.</p><p><a href="https://review.coreboot.org/25703">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">soc/amd/common/block/pi/heapmanager.c: Simplify code<br><br>There are sections of code that are almost identical and they can be<br>converted to auxiliary procedures. For allocating heap, 3 sizes are used<br>often so they could be stored in temporary variables. These 2 changes<br>will make code shorter, with less indentation problems and overall easier<br>to read. The actual logic of the code is not changed.<br><br>BUG=b:77940747<br>TEST=Build and boot grunt.<br><br>Change-Id: Ib4c69981eab7452228ccae9ed9bc288c8baceffe<br>Signed-off-by: Richard Spiegel <richard.spiegel@silverbackltd.com><br>---<br>M src/soc/amd/common/block/pi/heapmanager.c<br>1 file changed, 79 insertions(+), 86 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://review.coreboot.org:29418/coreboot refs/changes/03/25703/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/src/soc/amd/common/block/pi/heapmanager.c b/src/soc/amd/common/block/pi/heapmanager.c</span><br><span>index a469a45..aa3a40d 100644</span><br><span>--- a/src/soc/amd/common/block/pi/heapmanager.c</span><br><span>+++ b/src/soc/amd/common/block/pi/heapmanager.c</span><br><span>@@ -30,6 +30,44 @@</span><br><span> memset(BiosManagerPtr, 0, BIOS_HEAP_SIZE);</span><br><span> }</span><br><span> </span><br><span style="color: hsl(120, 100%, 40%);">+static AGESA_STATUS FindNode(uint32_t handle, BIOS_BUFFER_NODE **pointer)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ UINT32 AllocNodeOffset;</span><br><span style="color: hsl(120, 100%, 40%);">+ UINT8 *BiosHeapBaseAddr;</span><br><span style="color: hsl(120, 100%, 40%);">+ BIOS_BUFFER_NODE *AllocNodePtr;</span><br><span style="color: hsl(120, 100%, 40%);">+ BIOS_HEAP_MANAGER *BiosHeapBasePtr;</span><br><span style="color: hsl(120, 100%, 40%);">+ AGESA_STATUS Status = AGESA_SUCCESS;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ BiosHeapBaseAddr = agesa_heap_base();</span><br><span style="color: hsl(120, 100%, 40%);">+ BiosHeapBasePtr = (BIOS_HEAP_MANAGER *)BiosHeapBaseAddr;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ AllocNodeOffset = BiosHeapBasePtr->StartOfAllocatedNodes;</span><br><span style="color: hsl(120, 100%, 40%);">+ AllocNodePtr = (BIOS_BUFFER_NODE *)(BiosHeapBaseAddr + AllocNodeOffset);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ while (handle != AllocNodePtr->BufferHandle) {</span><br><span style="color: hsl(120, 100%, 40%);">+ if (AllocNodePtr->NextNodeOffset == 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+ Status = AGESA_BOUNDS_CHK;</span><br><span style="color: hsl(120, 100%, 40%);">+ break;</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ AllocNodeOffset = AllocNodePtr->NextNodeOffset;</span><br><span style="color: hsl(120, 100%, 40%);">+ AllocNodePtr = (BIOS_BUFFER_NODE *)(BiosHeapBaseAddr +</span><br><span style="color: hsl(120, 100%, 40%);">+ AllocNodeOffset);</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+ *pointer = AllocNodePtr;</span><br><span style="color: hsl(120, 100%, 40%);">+ return Status;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+static void ConcatenateNodes(BIOS_BUFFER_NODE *FirstNodePtr,</span><br><span style="color: hsl(120, 100%, 40%);">+ BIOS_BUFFER_NODE *SecondNodePtr)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+ FirstNodePtr->BufferSize += SecondNodePtr->BufferSize +</span><br><span style="color: hsl(120, 100%, 40%);">+ sizeof(BIOS_BUFFER_NODE);</span><br><span style="color: hsl(120, 100%, 40%);">+ FirstNodePtr->NextNodeOffset = SecondNodePtr->NextNodeOffset;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Zero out the SecondNode header */</span><br><span style="color: hsl(120, 100%, 40%);">+ memset((UINT8 *)SecondNodePtr, 0, sizeof(BIOS_BUFFER_NODE));</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> #if IS_ENABLED(CONFIG_LATE_CBMEM_INIT)</span><br><span> #error "Only EARLY_CBMEM_INIT is supported."</span><br><span> #endif</span><br><span>@@ -42,9 +80,12 @@</span><br><span> UINT32 CurrNodeOffset;</span><br><span> UINT32 PrevNodeOffset;</span><br><span> UINT32 FreedNodeOffset;</span><br><span style="color: hsl(120, 100%, 40%);">+ UINT32 FreedNodeSize;</span><br><span> UINT32 BestFitNodeOffset;</span><br><span style="color: hsl(120, 100%, 40%);">+ UINT32 BestFitNodeSize;</span><br><span> UINT32 BestFitPrevNodeOffset;</span><br><span> UINT32 NextFreeOffset;</span><br><span style="color: hsl(120, 100%, 40%);">+ UINT32 MinimumSize;</span><br><span> BIOS_BUFFER_NODE *CurrNodePtr;</span><br><span> BIOS_BUFFER_NODE *FreedNodePtr;</span><br><span> BIOS_BUFFER_NODE *BestFitNodePtr;</span><br><span>@@ -52,11 +93,14 @@</span><br><span> BIOS_BUFFER_NODE *NextFreePtr;</span><br><span> BIOS_HEAP_MANAGER *BiosHeapBasePtr;</span><br><span> AGESA_BUFFER_PARAMS *AllocParams;</span><br><span style="color: hsl(120, 100%, 40%);">+ AGESA_STATUS Status;</span><br><span> </span><br><span> AllocParams = ((AGESA_BUFFER_PARAMS *)ConfigPtr);</span><br><span> AllocParams->BufferPointer = NULL;</span><br><span style="color: hsl(120, 100%, 40%);">+ MinimumSize = AllocParams->BufferLength + sizeof(BIOS_BUFFER_NODE);</span><br><span> </span><br><span> AvailableHeapSize = BIOS_HEAP_SIZE - sizeof(BIOS_HEAP_MANAGER);</span><br><span style="color: hsl(120, 100%, 40%);">+ BestFitNodeSize = AvailableHeapSize; /* init with largest possible */</span><br><span> BiosHeapBaseAddr = agesa_heap_base();</span><br><span> BiosHeapBasePtr = (BIOS_HEAP_MANAGER *)BiosHeapBaseAddr;</span><br><span> </span><br><span>@@ -85,37 +129,29 @@</span><br><span> BiosHeapBasePtr->StartOfAllocatedNodes = CurrNodeOffset;</span><br><span> BiosHeapBasePtr->StartOfFreedNodes = FreedNodeOffset;</span><br><span> } else {</span><br><span style="color: hsl(0, 100%, 40%);">- /* Find out whether BufferHandle has been allocated on the heap.</span><br><span style="color: hsl(120, 100%, 40%);">+ /*</span><br><span style="color: hsl(120, 100%, 40%);">+ * Find out whether BufferHandle has been allocated on the heap.</span><br><span> * If it has, return AGESA_BOUNDS_CHK.</span><br><span> */</span><br><span style="color: hsl(0, 100%, 40%);">- CurrNodeOffset = BiosHeapBasePtr->StartOfAllocatedNodes;</span><br><span style="color: hsl(0, 100%, 40%);">- CurrNodePtr = (BIOS_BUFFER_NODE *)(BiosHeapBaseAddr</span><br><span style="color: hsl(0, 100%, 40%);">- + CurrNodeOffset);</span><br><span style="color: hsl(120, 100%, 40%);">+ Status = FindNode(AllocParams->BufferHandle, &CurrNodePtr);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (Status == AGESA_SUCCESS)</span><br><span style="color: hsl(120, 100%, 40%);">+ return AGESA_BOUNDS_CHK;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- while (CurrNodeOffset != 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- CurrNodePtr = (BIOS_BUFFER_NODE *)(BiosHeapBaseAddr</span><br><span style="color: hsl(0, 100%, 40%);">- + CurrNodeOffset);</span><br><span style="color: hsl(0, 100%, 40%);">- if (CurrNodePtr->BufferHandle ==</span><br><span style="color: hsl(0, 100%, 40%);">- AllocParams->BufferHandle) {</span><br><span style="color: hsl(0, 100%, 40%);">- return AGESA_BOUNDS_CHK;</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- CurrNodeOffset = CurrNodePtr->NextNodeOffset;</span><br><span style="color: hsl(0, 100%, 40%);">- /* If BufferHandle has not been allocated on the heap,</span><br><span style="color: hsl(0, 100%, 40%);">- * CurrNodePtr here points to the end of the allocated</span><br><span style="color: hsl(0, 100%, 40%);">- * nodes list.</span><br><span style="color: hsl(0, 100%, 40%);">- */</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(120, 100%, 40%);">+ /*</span><br><span style="color: hsl(120, 100%, 40%);">+ * If status ditn't returned AGESA_SUCCESS, CurrNodePtr here</span><br><span style="color: hsl(120, 100%, 40%);">+ * points to the end of the allocated nodes list.</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span> /* Find the node that best fits the requested buffer size */</span><br><span> FreedNodeOffset = BiosHeapBasePtr->StartOfFreedNodes;</span><br><span> PrevNodeOffset = FreedNodeOffset;</span><br><span> BestFitNodeOffset = 0;</span><br><span> BestFitPrevNodeOffset = 0;</span><br><span style="color: hsl(0, 100%, 40%);">- while (FreedNodeOffset != 0) { /* todo: simplify this */</span><br><span style="color: hsl(120, 100%, 40%);">+ while (FreedNodeOffset != 0) {</span><br><span> FreedNodePtr = (BIOS_BUFFER_NODE *)(BiosHeapBaseAddr</span><br><span> + FreedNodeOffset);</span><br><span style="color: hsl(0, 100%, 40%);">- if (FreedNodePtr->BufferSize >=</span><br><span style="color: hsl(0, 100%, 40%);">- (AllocParams->BufferLength +</span><br><span style="color: hsl(0, 100%, 40%);">- sizeof(BIOS_BUFFER_NODE))) {</span><br><span style="color: hsl(120, 100%, 40%);">+ FreedNodeSize = FreedNodePtr->BufferSize;</span><br><span style="color: hsl(120, 100%, 40%);">+ if (FreedNodeSize >= MinimumSize) {</span><br><span> if (BestFitNodeOffset == 0) {</span><br><span> /*</span><br><span> * First node that fits the requested</span><br><span>@@ -123,21 +159,19 @@</span><br><span> */</span><br><span> BestFitNodeOffset = FreedNodeOffset;</span><br><span> BestFitPrevNodeOffset = PrevNodeOffset;</span><br><span style="color: hsl(120, 100%, 40%);">+ BestFitNodeSize = FreedNodeSize;</span><br><span> } else {</span><br><span> /*</span><br><span> * Find out whether current node is a</span><br><span> * betterfit than the previous nodes</span><br><span> */</span><br><span style="color: hsl(0, 100%, 40%);">- BestFitNodePtr = (BIOS_BUFFER_NODE *)</span><br><span style="color: hsl(0, 100%, 40%);">- (BiosHeapBaseAddr +</span><br><span style="color: hsl(0, 100%, 40%);">- BestFitNodeOffset);</span><br><span style="color: hsl(0, 100%, 40%);">- if (BestFitNodePtr->BufferSize ></span><br><span style="color: hsl(0, 100%, 40%);">- FreedNodePtr->BufferSize) {</span><br><span style="color: hsl(120, 100%, 40%);">+ if (BestFitNodeSize > FreedNodeSize) {</span><br><span> </span><br><span> BestFitNodeOffset =</span><br><span> FreedNodeOffset;</span><br><span> BestFitPrevNodeOffset =</span><br><span> PrevNodeOffset;</span><br><span style="color: hsl(120, 100%, 40%);">+ BestFitNodeSize = FreedNodeSize;</span><br><span> }</span><br><span> }</span><br><span> }</span><br><span>@@ -162,22 +196,19 @@</span><br><span> * If BestFitNode is larger than the requested buffer,</span><br><span> * fragment the node further</span><br><span> */</span><br><span style="color: hsl(0, 100%, 40%);">- if (BestFitNodePtr->BufferSize ></span><br><span style="color: hsl(0, 100%, 40%);">- (AllocParams->BufferLength + sizeof(BIOS_BUFFER_NODE))) {</span><br><span style="color: hsl(0, 100%, 40%);">- NextFreeOffset = BestFitNodeOffset +</span><br><span style="color: hsl(0, 100%, 40%);">- AllocParams->BufferLength +</span><br><span style="color: hsl(0, 100%, 40%);">- sizeof(BIOS_BUFFER_NODE);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (BestFitNodePtr->BufferSize > MinimumSize) {</span><br><span style="color: hsl(120, 100%, 40%);">+ NextFreeOffset = BestFitNodeOffset + MinimumSize;</span><br><span> NextFreePtr = (BIOS_BUFFER_NODE *) (BiosHeapBaseAddr +</span><br><span> NextFreeOffset);</span><br><span style="color: hsl(0, 100%, 40%);">- NextFreePtr->BufferSize = BestFitNodePtr->BufferSize -</span><br><span style="color: hsl(0, 100%, 40%);">- (AllocParams->BufferLength +</span><br><span style="color: hsl(0, 100%, 40%);">- sizeof(BIOS_BUFFER_NODE));</span><br><span style="color: hsl(120, 100%, 40%);">+ NextFreePtr->BufferSize = BestFitNodeSize - MinimumSize;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ /* Remove BestFitNode from list of Freed nodes */</span><br><span> NextFreePtr->NextNodeOffset =</span><br><span> BestFitNodePtr->NextNodeOffset;</span><br><span> } else {</span><br><span> /*</span><br><span style="color: hsl(0, 100%, 40%);">- * Otherwise, next free node is</span><br><span style="color: hsl(0, 100%, 40%);">- * NextNodeOffset of BestFitNode</span><br><span style="color: hsl(120, 100%, 40%);">+ * Otherwise, next free node is NextNodeOffset of</span><br><span style="color: hsl(120, 100%, 40%);">+ * BestFitNode. Remove it from list of Freed nodes.</span><br><span> */</span><br><span> NextFreeOffset = BestFitNodePtr->NextNodeOffset;</span><br><span> }</span><br><span>@@ -197,7 +228,6 @@</span><br><span> BestFitNodePtr->BufferHandle = AllocParams->BufferHandle;</span><br><span> BestFitNodePtr->NextNodeOffset = 0;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- /* Remove BestFitNode from list of Freed nodes */</span><br><span> AllocParams->BufferPointer = (UINT8 *)BestFitNodePtr +</span><br><span> sizeof(BIOS_BUFFER_NODE);</span><br><span> }</span><br><span>@@ -264,14 +294,7 @@</span><br><span> /* If the freed node is adjacent to the first node in</span><br><span> * the list, concatenate both nodes</span><br><span> */</span><br><span style="color: hsl(0, 100%, 40%);">- AllocNodePtr->BufferSize += FreedNodePtr->BufferSize +</span><br><span style="color: hsl(0, 100%, 40%);">- sizeof(BIOS_BUFFER_NODE);</span><br><span style="color: hsl(0, 100%, 40%);">- AllocNodePtr->NextNodeOffset =</span><br><span style="color: hsl(0, 100%, 40%);">- FreedNodePtr->NextNodeOffset;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Zero out the FreedNode header */</span><br><span style="color: hsl(0, 100%, 40%);">- memset((UINT8 *)FreedNodePtr, 0,</span><br><span style="color: hsl(0, 100%, 40%);">- sizeof(BIOS_BUFFER_NODE));</span><br><span style="color: hsl(120, 100%, 40%);">+ ConcatenateNodes(AllocNodePtr, FreedNodePtr);</span><br><span> } else {</span><br><span> /* Otherwise, add freed node to the start of the list</span><br><span> * Update NextNodeOffset and BufferSize to include the</span><br><span>@@ -302,14 +325,7 @@</span><br><span> if (NextNodeOffset == EndNodeOffset) {</span><br><span> NextNodePtr = (BIOS_BUFFER_NODE *)(BiosHeapBaseAddr</span><br><span> + NextNodeOffset);</span><br><span style="color: hsl(0, 100%, 40%);">- AllocNodePtr->BufferSize += NextNodePtr->BufferSize +</span><br><span style="color: hsl(0, 100%, 40%);">- sizeof(BIOS_BUFFER_NODE);</span><br><span style="color: hsl(0, 100%, 40%);">- AllocNodePtr->NextNodeOffset =</span><br><span style="color: hsl(0, 100%, 40%);">- NextNodePtr->NextNodeOffset;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Zero out the NextNode header */</span><br><span style="color: hsl(0, 100%, 40%);">- memset((UINT8 *)NextNodePtr, 0,</span><br><span style="color: hsl(0, 100%, 40%);">- sizeof(BIOS_BUFFER_NODE));</span><br><span style="color: hsl(120, 100%, 40%);">+ ConcatenateNodes(AllocNodePtr, NextNodePtr);</span><br><span> } else {</span><br><span> /*AllocNodePtr->NextNodeOffset =</span><br><span> * FreedNodePtr->NextNodeOffset; */</span><br><span>@@ -324,53 +340,30 @@</span><br><span> EndNodeOffset = PrevNodeOffset + PrevNodePtr->BufferSize +</span><br><span> sizeof(BIOS_BUFFER_NODE);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- if (AllocNodeOffset == EndNodeOffset) {</span><br><span style="color: hsl(0, 100%, 40%);">- PrevNodePtr->NextNodeOffset =</span><br><span style="color: hsl(0, 100%, 40%);">- AllocNodePtr->NextNodeOffset;</span><br><span style="color: hsl(0, 100%, 40%);">- PrevNodePtr->BufferSize += AllocNodePtr->BufferSize +</span><br><span style="color: hsl(0, 100%, 40%);">- sizeof(BIOS_BUFFER_NODE);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- /* Zero out the AllocNode header */</span><br><span style="color: hsl(0, 100%, 40%);">- memset((UINT8 *)AllocNodePtr, 0,</span><br><span style="color: hsl(0, 100%, 40%);">- sizeof(BIOS_BUFFER_NODE));</span><br><span style="color: hsl(0, 100%, 40%);">- } else {</span><br><span style="color: hsl(120, 100%, 40%);">+ if (AllocNodeOffset == EndNodeOffset)</span><br><span style="color: hsl(120, 100%, 40%);">+ ConcatenateNodes(PrevNodePtr, AllocNodePtr);</span><br><span style="color: hsl(120, 100%, 40%);">+ else</span><br><span> PrevNodePtr->NextNodeOffset = AllocNodeOffset;</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span> }</span><br><span> return AGESA_SUCCESS;</span><br><span> }</span><br><span> </span><br><span> AGESA_STATUS agesa_LocateBuffer (UINT32 Func, UINTN Data, VOID *ConfigPtr)</span><br><span> {</span><br><span style="color: hsl(0, 100%, 40%);">- UINT32 AllocNodeOffset;</span><br><span style="color: hsl(0, 100%, 40%);">- UINT8 *BiosHeapBaseAddr;</span><br><span> BIOS_BUFFER_NODE *AllocNodePtr;</span><br><span style="color: hsl(0, 100%, 40%);">- BIOS_HEAP_MANAGER *BiosHeapBasePtr;</span><br><span> AGESA_BUFFER_PARAMS *AllocParams;</span><br><span style="color: hsl(120, 100%, 40%);">+ AGESA_STATUS Status;</span><br><span> </span><br><span> AllocParams = (AGESA_BUFFER_PARAMS *)ConfigPtr;</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- BiosHeapBaseAddr = agesa_heap_base();</span><br><span style="color: hsl(0, 100%, 40%);">- BiosHeapBasePtr = (BIOS_HEAP_MANAGER *)BiosHeapBaseAddr;</span><br><span style="color: hsl(120, 100%, 40%);">+ Status = FindNode(AllocParams->BufferHandle, &AllocNodePtr);</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- AllocNodeOffset = BiosHeapBasePtr->StartOfAllocatedNodes;</span><br><span style="color: hsl(0, 100%, 40%);">- AllocNodePtr = (BIOS_BUFFER_NODE *)(BiosHeapBaseAddr + AllocNodeOffset);</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- while (AllocParams->BufferHandle != AllocNodePtr->BufferHandle) {</span><br><span style="color: hsl(0, 100%, 40%);">- if (AllocNodePtr->NextNodeOffset == 0) {</span><br><span style="color: hsl(0, 100%, 40%);">- AllocParams->BufferPointer = NULL;</span><br><span style="color: hsl(0, 100%, 40%);">- AllocParams->BufferLength = 0;</span><br><span style="color: hsl(0, 100%, 40%);">- return AGESA_BOUNDS_CHK;</span><br><span style="color: hsl(0, 100%, 40%);">- }</span><br><span style="color: hsl(0, 100%, 40%);">- AllocNodeOffset = AllocNodePtr->NextNodeOffset;</span><br><span style="color: hsl(0, 100%, 40%);">- AllocNodePtr = (BIOS_BUFFER_NODE *)(BiosHeapBaseAddr +</span><br><span style="color: hsl(0, 100%, 40%);">- AllocNodeOffset);</span><br><span style="color: hsl(120, 100%, 40%);">+ if (Status == AGESA_SUCCESS) {</span><br><span style="color: hsl(120, 100%, 40%);">+ AllocParams->BufferPointer = (UINT8 *)((UINT8 *)AllocNodePtr</span><br><span style="color: hsl(120, 100%, 40%);">+ + sizeof(BIOS_BUFFER_NODE));</span><br><span style="color: hsl(120, 100%, 40%);">+ AllocParams->BufferLength = AllocNodePtr->BufferSize;</span><br><span> }</span><br><span> </span><br><span style="color: hsl(0, 100%, 40%);">- AllocParams->BufferPointer = (UINT8 *)((UINT8 *)AllocNodePtr</span><br><span style="color: hsl(0, 100%, 40%);">- + sizeof(BIOS_BUFFER_NODE));</span><br><span style="color: hsl(0, 100%, 40%);">- AllocParams->BufferLength = AllocNodePtr->BufferSize;</span><br><span style="color: hsl(0, 100%, 40%);">-</span><br><span style="color: hsl(0, 100%, 40%);">- return AGESA_SUCCESS;</span><br><span style="color: hsl(120, 100%, 40%);">+ return Status;</span><br><span> </span><br><span> }</span><br><span></span><br></pre><p>To view, visit <a href="https://review.coreboot.org/25703">change 25703</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://review.coreboot.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://review.coreboot.org/25703"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: coreboot </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>
<div style="display:none"> Gerrit-Change-Id: Ib4c69981eab7452228ccae9ed9bc288c8baceffe </div>
<div style="display:none"> Gerrit-Change-Number: 25703 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: Richard Spiegel <richard.spiegel@silverbackltd.com> </div>