diff options
author | Hsuan Ting Chen <roccochen@chromium.org> | 2020-09-23 12:37:45 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-11-12 12:40:05 +0000 |
commit | 9a820d73511379877b077fde452c31fede89da23 (patch) | |
tree | c9df9eff93ad9519e4e2c3a51739a01df3a2f0c5 /firmware/2lib/2ui_screens.c | |
parent | 34e90fe57efa32774f5a5d6073cbc74a126e676c (diff) | |
download | vboot-stabilize-13597.67.B.tar.gz |
minidiag/ui: Prevent calling update action if there were no updatesstabilize-quickfix-13597.30.Bstabilize-ambassador-13597.79.Bstabilize-13597.97.Bstabilize-13597.95.Bstabilize-13597.94.Bstabilize-13597.90.Bstabilize-13597.85.Bstabilize-13597.84.Bstabilize-13597.71.Bstabilize-13597.70.Bstabilize-13597.69.Bstabilize-13597.68.Bstabilize-13597.67.Bstabilize-13597.66.Bstabilize-13597.105.Bstabilize-13597.103.Brelease-R88-13597.Bfactory-volteer-13600.B
Add a return code `VB2_ERROR_EX_DIAG_TEST_UPDATED` to determine if
updating needed.
BUG=b:168776970
BRANCH=none
TEST=Build locally, boot recovery, select 'run diagnostics',
enter memory test (quick) screen,
and observe that the delay reduces while pressing keyboard
Cq-Depend: chromium:2423699
Signed-off-by: Hsuan Ting Chen <roccochen@chromium.org>
Change-Id: I7606911bee7257e8eed4ec35d197efaa57b72e13
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/2424370
Reviewed-by: Yu-Ping Wu <yupingso@chromium.org>
Diffstat (limited to 'firmware/2lib/2ui_screens.c')
-rw-r--r-- | firmware/2lib/2ui_screens.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/firmware/2lib/2ui_screens.c b/firmware/2lib/2ui_screens.c index 878b4ed7..2ec779c7 100644 --- a/firmware/2lib/2ui_screens.c +++ b/firmware/2lib/2ui_screens.c @@ -1129,7 +1129,12 @@ static vb2_error_t diagnostics_memory_update_screen(struct vb2_ui_context *ui, return VB2_REQUEST_UI_CONTINUE; vb2_error_t rv = op(reset, &log_string); - if ((rv && rv != VB2_ERROR_EX_DIAG_TEST_RUNNING) || !log_string) { + + /* The test is still running but the output buffer was unchanged. */ + if (rv == VB2_ERROR_EX_DIAG_TEST_RUNNING) + return VB2_REQUEST_UI_CONTINUE; + + if ((rv && rv != VB2_ERROR_EX_DIAG_TEST_UPDATED) || !log_string) { VB2_DEBUG("ERROR: Failed to retrieve memory test status\n"); ui->error_code = VB2_UI_ERROR_DIAGNOSTICS; return vb2_ui_screen_back(ui); @@ -1152,7 +1157,7 @@ static vb2_error_t diagnostics_memory_update_screen(struct vb2_ui_context *ui, VB2_CLR_BIT(ui->state->hidden_item_mask, DIAGNOSTICS_MEMORY_ITEM_CANCEL); VB2_CLR_BIT(ui->state->hidden_item_mask, DIAGNOSTICS_MEMORY_ITEM_BACK); - if (rv == VB2_ERROR_EX_DIAG_TEST_RUNNING) { + if (rv == VB2_ERROR_EX_DIAG_TEST_UPDATED) { VB2_SET_BIT(ui->state->hidden_item_mask, DIAGNOSTICS_MEMORY_ITEM_BACK); if (ui->state->selected_item == DIAGNOSTICS_MEMORY_ITEM_BACK) |