Reviewed-by: Feng Tian <[email protected]>

Thanks
Feng

-----Original Message-----
From: Dong, Eric 
Sent: Sunday, June 12, 2016 3:47 PM
To: [email protected]
Cc: Tian, Feng <[email protected]>
Subject: [Patch] SecurityPkg OpalPasswordDxe: grayout instead of suppress the 
menu.

For current implementation, if the device is pyrite type, driver will suppress 
the "keep user data" option. Base on the feedback from user, they prefer 
grayout the menu instead of suppress it. 
Now base on this feedback to update the driver.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eric Dong <[email protected]>
Cc: Feng Tian <[email protected]>
---
 SecurityPkg/Tcg/Opal/OpalPasswordDxe/OpalHii.c | 27 ++++++++++----------------
 1 file changed, 10 insertions(+), 17 deletions(-)

diff --git a/SecurityPkg/Tcg/Opal/OpalPasswordDxe/OpalHii.c 
b/SecurityPkg/Tcg/Opal/OpalPasswordDxe/OpalHii.c
index 33f74dd..7a4b872 100644
--- a/SecurityPkg/Tcg/Opal/OpalPasswordDxe/OpalHii.c
+++ b/SecurityPkg/Tcg/Opal/OpalPasswordDxe/OpalHii.c
@@ -329,13 +329,7 @@ HiiSelectDiskAction (
 
     case HII_KEY_ID_GOTO_REVERT:
       gHiiConfiguration.AvailableFields |= HII_FIELD_PASSWORD;
-      if (OpalDisk->SupportedAttributes.PyriteSsc != 1) {
-        //
-        // According to current Pyrite SSC Spec 1.00, there is no parameter 
for RevertSP method.
-        // So issue RevertSP method without any parameter by suppress 
KeepUserData option.
-        //
-        gHiiConfiguration.AvailableFields |= HII_FIELD_KEEP_USER_DATA;
-      }
+      gHiiConfiguration.AvailableFields |= HII_FIELD_KEEP_USER_DATA;
       if (AvailActions.RevertKeepDataForced) {
         gHiiConfiguration.AvailableFields |= HII_FIELD_KEEP_USER_DATA_FORCED;
       }
@@ -573,14 +567,6 @@ HiiPopulateDiskInfoForm(
         // Default initialize keep user Data to be true
         //
         gHiiConfiguration.KeepUserData = 1;
-        if (OpalDisk->SupportedAttributes.PyriteSsc == 1) {
-          //
-          // According to current Pyrite SSC Spec 1.00, there is no parameter 
for RevertSP method.
-          // So issue RevertSP method without any parameter by set default 
value to FALSE.
-          //
-          gHiiConfiguration.KeepUserData = 0;
-        }
-
       }
     }
   }
@@ -1073,8 +1059,15 @@ HiiPasswordEntered(
   } else if (gHiiConfiguration.SelectedAction == HII_KEY_ID_GOTO_DISABLE_USER) 
{
     Status = HiiDisableUser (OpalDisk, Password, PassLength);
   } else if (gHiiConfiguration.SelectedAction == HII_KEY_ID_GOTO_REVERT) {
-    DEBUG ((DEBUG_INFO, "gHiiConfiguration.KeepUserData %u\n", 
gHiiConfiguration.KeepUserData));
-    Status = HiiRevert(OpalDisk, Password, PassLength, 
gHiiConfiguration.KeepUserData);
+    if (OpalDisk->SupportedAttributes.PyriteSsc == 1 && 
OpalDisk->LockingFeature.MediaEncryption == 0) {
+      //
+      // For pyrite type device which also not supports media encryption, it 
not accept "Keep User Data" parameter.
+      // So here hardcode a FALSE for this case.
+      //
+      Status = HiiRevert(OpalDisk, Password, PassLength, FALSE);
+    } else {
+      Status = HiiRevert(OpalDisk, Password, PassLength, 
gHiiConfiguration.KeepUserData);
+    }
   } else {
     Status = HiiSetPassword(OpalDisk, Password, PassLength);
   }
--
2.6.4.windows.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to