summaryrefslogtreecommitdiff
path: root/firmware/2lib/2ui_screens.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/2lib/2ui_screens.c')
-rw-r--r--firmware/2lib/2ui_screens.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/firmware/2lib/2ui_screens.c b/firmware/2lib/2ui_screens.c
index 1b4c5e29..878b4ed7 100644
--- a/firmware/2lib/2ui_screens.c
+++ b/firmware/2lib/2ui_screens.c
@@ -1123,6 +1123,11 @@ static vb2_error_t diagnostics_memory_update_screen(struct vb2_ui_context *ui,
int reset)
{
const char *log_string = NULL;
+
+ /* Early return if the memory test is done. */
+ if (ui->state->test_finished)
+ return VB2_REQUEST_UI_CONTINUE;
+
vb2_error_t rv = op(reset, &log_string);
if ((rv && rv != VB2_ERROR_EX_DIAG_TEST_RUNNING) || !log_string) {
VB2_DEBUG("ERROR: Failed to retrieve memory test status\n");
@@ -1158,6 +1163,7 @@ static vb2_error_t diagnostics_memory_update_screen(struct vb2_ui_context *ui,
DIAGNOSTICS_MEMORY_ITEM_CANCEL);
if (ui->state->selected_item == DIAGNOSTICS_MEMORY_ITEM_CANCEL)
ui->state->selected_item = DIAGNOSTICS_MEMORY_ITEM_BACK;
+ ui->state->test_finished = 1;
}
return VB2_REQUEST_UI_CONTINUE;