<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:DengXian;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@DengXian";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Reviewed-by: Bret Barkelew <bret.barkelew@microsoft.com></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">- Bret</p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> devel@edk2.groups.io <devel@edk2.groups.io> on behalf of Michael Kubacki via groups.io <michael.kubacki=outlook.com@groups.io><br>
<b>Sent:</b> Friday, April 10, 2020 1:02:18 PM<br>
<b>To:</b> devel@edk2.groups.io <devel@edk2.groups.io><br>
<b>Cc:</b> Chao Zhang <chao.b.zhang@intel.com>; Hao A Wu <hao.a.wu@intel.com>; Jian J Wang <jian.j.wang@intel.com>; Jiewen Yao <jiewen.yao@intel.com>; Sean Brogan <sean.brogan@microsoft.com><br>
<b>Subject:</b> [EXTERNAL] [edk2-devel] [PATCH v2 7/7] SecurityPkg/HddPassword: Use BaseLib linked list iteration macros</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">From: Michael Kubacki <michael.kubacki@microsoft.com><br>
<br>
REF:https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D1959&amp;data=02%7C01%7CBret.Barkelew%40microsoft.com%7C0cb7a3e5e3ef4f9c776808d7dd8a2c7e%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637221457829007406&amp;sdata=TzvNo4r7FXEx%2BLEifMTR8HHL%2BGGpl8WkOiABJS1IqF8%3D&amp;reserved=0<br>
<br>
Replaces usage of the linked list iteration macros defined in<br>
HddPasswordDxe.h with the common definition in BaseLib.h.<br>
<br>
Cc: Chao Zhang <chao.b.zhang@intel.com><br>
Cc: Hao A Wu <hao.a.wu@intel.com><br>
Cc: Jian J Wang <jian.j.wang@intel.com><br>
Cc: Jiewen Yao <jiewen.yao@intel.com><br>
Cc: Sean Brogan <sean.brogan@microsoft.com><br>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com><br>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com><br>
---<br>
 SecurityPkg/HddPassword/HddPasswordDxe.c | 13 +++++++------<br>
 SecurityPkg/HddPassword/HddPasswordDxe.h |  7 +------<br>
 2 files changed, 8 insertions(+), 12 deletions(-)<br>
<br>
diff --git a/SecurityPkg/HddPassword/HddPasswordDxe.c b/SecurityPkg/HddPassword/HddPasswordDxe.c<br>
index a25b3471d073..32b55a6a8b72 100644<br>
--- a/SecurityPkg/HddPassword/HddPasswordDxe.c<br>
+++ b/SecurityPkg/HddPassword/HddPasswordDxe.c<br>
@@ -2,6 +2,7 @@<br>
   HDD password driver which is used to support HDD security feature.<br>
 <br>
   Copyright (c) 2019, Intel Corporation. All rights reserved.<BR><br>
+  Copyright (c) Microsoft Corporation.<BR><br>
 <br>
   SPDX-License-Identifier: BSD-2-Clause-Patent<br>
 <br>
@@ -115,7 +116,7 @@ BuildHddPasswordDeviceInfo (<br>
   // Build HDD password device info and save them to LockBox.<br>
   //<br>
   DevInfoLength = 0;<br>
-  EFI_LIST_FOR_EACH (Entry, &mHddPasswordConfigFormList) {<br>
+  BASE_LIST_FOR_EACH (Entry, &mHddPasswordConfigFormList) {<br>
     ConfigFormEntry = BASE_CR (Entry, HDD_PASSWORD_CONFIG_FORM_ENTRY, Link);<br>
 <br>
     //<br>
@@ -164,7 +165,7 @@ BuildHddPasswordDeviceInfo (<br>
   ASSERT (DevInfo != NULL);<br>
 <br>
   TempDevInfo = DevInfo;<br>
-  EFI_LIST_FOR_EACH (Entry, &mHddPasswordConfigFormList) {<br>
+  BASE_LIST_FOR_EACH (Entry, &mHddPasswordConfigFormList) {<br>
     ConfigFormEntry = BASE_CR (Entry, HDD_PASSWORD_CONFIG_FORM_ENTRY, Link);<br>
 <br>
     if ((!PasswordIsFullZero (ConfigFormEntry->Password)) ||<br>
@@ -472,7 +473,7 @@ HddPasswordEndOfDxeEventNotify (<br>
   //<br>
   // Zero passsword and freeze lock device.<br>
   //<br>
-  EFI_LIST_FOR_EACH (Entry, &mHddPasswordConfigFormList) {<br>
+  BASE_LIST_FOR_EACH (Entry, &mHddPasswordConfigFormList) {<br>
     ConfigFormEntry = BASE_CR (Entry, HDD_PASSWORD_CONFIG_FORM_ENTRY, Link);<br>
 <br>
     ZeroMem (ConfigFormEntry->Password, HDD_PASSWORD_MAX_LENGTH);<br>
@@ -2026,7 +2027,7 @@ HddPasswordGetConfigFormEntryByIndex (<br>
   CurrentIndex    = 0;<br>
   ConfigFormEntry = NULL;<br>
 <br>
-  EFI_LIST_FOR_EACH (Entry, &mHddPasswordConfigFormList) {<br>
+  BASE_LIST_FOR_EACH (Entry, &mHddPasswordConfigFormList) {<br>
     if (CurrentIndex == Index) {<br>
       ConfigFormEntry = BASE_CR (Entry, HDD_PASSWORD_CONFIG_FORM_ENTRY, Link);<br>
       break;<br>
@@ -2408,7 +2409,7 @@ HddPasswordConfigUpdateForm (<br>
   ConfigFormEntry = NULL;<br>
   EntryExisted    = FALSE;<br>
 <br>
-  EFI_LIST_FOR_EACH (Entry, &mHddPasswordConfigFormList) {<br>
+  BASE_LIST_FOR_EACH (Entry, &mHddPasswordConfigFormList) {<br>
     ConfigFormEntry = BASE_CR (Entry, HDD_PASSWORD_CONFIG_FORM_ENTRY, Link);<br>
 <br>
     if ((ConfigFormEntry->Bus == Bus) &&<br>
@@ -2503,7 +2504,7 @@ HddPasswordConfigUpdateForm (<br>
     EndLabel->Number       = HDD_DEVICE_LABEL_END;<br>
 <br>
     mNumberOfHddDevices = 0;<br>
-    EFI_LIST_FOR_EACH (Entry, &mHddPasswordConfigFormList) {<br>
+    BASE_LIST_FOR_EACH (Entry, &mHddPasswordConfigFormList) {<br>
       ConfigFormEntry = BASE_CR (Entry, HDD_PASSWORD_CONFIG_FORM_ENTRY, Link);<br>
 <br>
       HiiCreateGotoOpCode (<br>
diff --git a/SecurityPkg/HddPassword/HddPasswordDxe.h b/SecurityPkg/HddPassword/HddPasswordDxe.h<br>
index 87db587eb6f0..a6c87169dc59 100644<br>
--- a/SecurityPkg/HddPassword/HddPasswordDxe.h<br>
+++ b/SecurityPkg/HddPassword/HddPasswordDxe.h<br>
@@ -1,6 +1,7 @@<br>
 /** @file<br>
 <br>
   Copyright (c) 2019, Intel Corporation. All rights reserved.<BR><br>
+  Copyright (c) Microsoft Corporation.<BR><br>
 <br>
   SPDX-License-Identifier: BSD-2-Clause-Patent<br>
 <br>
@@ -87,12 +88,6 @@ typedef struct _HDD_PASSWORD_DXE_PRIVATE_DATA {<br>
 <br>
 #define HDD_PASSWORD_DXE_PRIVATE_FROM_THIS(a)  CR (a, HDD_PASSWORD_DXE_PRIVATE_DATA, ConfigAccess, HDD_PASSWORD_DXE_PRIVATE_SIGNATURE)<br>
 <br>
-//<br>
-//Iterate through the double linked list. NOT delete safe<br>
-//<br>
-#define EFI_LIST_FOR_EACH(Entry, ListHead)    \<br>
-  for (Entry = (ListHead)->ForwardLink; Entry != (ListHead); Entry = Entry->ForwardLink)<br>
-<br>
 #define PASSWORD_SALT_SIZE                  32<br>
 <br>
 #define HDD_PASSWORD_REQUEST_VARIABLE_NAME  L"HddPasswordRequest"<br>
-- <br>
2.16.3.windows.1<br>
<br>
<br>
<br>
<br>
</div>
</span></font></div>
</body>
</html>

<div width="1" style="color:white;clear:both">_._,_._,_</div>
<hr>
Groups.io Links:<p>


You receive all messages sent to this group.



<p>

<a target="_blank" href="https://edk2.groups.io/g/devel/message/57244">View/Reply Online (#57244)</a> |


  


|


  
    <a target="_blank" href="https://groups.io/mt/72934424/1813853">Mute This Topic</a>
  

| <a href="https://edk2.groups.io/g/devel/post">New Topic</a><br>



<br>

<a href="https://edk2.groups.io/g/devel/editsub/1813853">Your Subscription</a> |
<a href="mailto:devel+owner@edk2.groups.io">Contact Group Owner</a> |

<a href="https://edk2.groups.io/g/devel/unsub">Unsubscribe</a>

 [edk2-devel-archive@redhat.com]<br>
<div width="1" style="color:white;clear:both">_._,_._,_</div>