summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c
diff options
context:
space:
mode:
authorBi, Dandan <dandan.bi@intel.com>2017-07-21 16:56:01 +0800
committerLiming Gao <liming.gao@intel.com>2017-07-27 10:47:11 +0800
commitb2dcae4c57b01c6b30ad8c074b390e55867504f7 (patch)
tree2c5387964ffec366d2b4902200efb16fe39a9e5e /MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c
parent1d8701a20e02f8c2c3ca66bb643d45d7d6779fd1 (diff)
downloadedk2-b2dcae4c57b01c6b30ad8c074b390e55867504f7.tar.gz
edk2-b2dcae4c57b01c6b30ad8c074b390e55867504f7.tar.bz2
edk2-b2dcae4c57b01c6b30ad8c074b390e55867504f7.zip
MdeModulePkg/SetupBrowser: Record the reset status in all SendForm
After calling SendForm to enter front page, configuration change in some driver may require system reset. Currently the reset status is saved in SendForm level. Then SendForm can return the reset status. IsResetRequired API also can return the reset status before exiting browser. It return the reset status in current SendForm level now. But SendForm can be recursive called by some module.so the reset status in previous SendForm may be lost. Now change the IsResetRequired API to return the reset info no matter the reset is caught in any SendForm. Cc: Eric Dong <eric.dong@intel.com> Cc: Liming Gao <liming.gao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Dandan Bi <dandan.bi@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
Diffstat (limited to 'MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c')
-rw-r--r--MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c b/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c
index 08d46cf554..97713ebb60 100644
--- a/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c
+++ b/MdeModulePkg/Universal/SetupBrowserDxe/Presentation.c
@@ -997,7 +997,8 @@ ProcessAction (
}
if ((Action & BROWSER_ACTION_RESET) == BROWSER_ACTION_RESET) {
- gResetRequired = TRUE;
+ gResetRequiredFormLevel = TRUE;
+ gResetRequiredSystemLevel = TRUE;
}
if ((Action & BROWSER_ACTION_EXIT) == BROWSER_ACTION_EXIT) {
@@ -2045,7 +2046,8 @@ ProcessCallBackFunction (
switch (ActionRequest) {
case EFI_BROWSER_ACTION_REQUEST_RESET:
DiscardFormIsRequired = TRUE;
- gResetRequired = TRUE;
+ gResetRequiredFormLevel = TRUE;
+ gResetRequiredSystemLevel = TRUE;
NeedExit = TRUE;
break;
@@ -2544,7 +2546,8 @@ SetupBrowser (
if ((Status == EFI_SUCCESS) &&
(Statement->Storage == NULL)) {
if ((Statement->QuestionFlags & EFI_IFR_FLAG_RESET_REQUIRED) != 0) {
- gResetRequired = TRUE;
+ gResetRequiredFormLevel = TRUE;
+ gResetRequiredSystemLevel = TRUE;
}
if ((Statement->QuestionFlags & EFI_IFR_FLAG_RECONNECT_REQUIRED) != 0) {