summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--SecurityPkg/Tcg/Opal/OpalPasswordDxe/OpalHii.c27
1 files changed, 10 insertions, 17 deletions
diff --git a/SecurityPkg/Tcg/Opal/OpalPasswordDxe/OpalHii.c b/SecurityPkg/Tcg/Opal/OpalPasswordDxe/OpalHii.c
index 33f74dd4a3..7a4b872048 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);
}