From 1e37be5e20f42bbffcb633a268d46c038846a603 Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt Date: Wed, 5 Jun 2019 22:50:42 +0200 Subject: [PATCH] efi_selftest: correct event group test If any member of the event group is signaled, all members must be set to signaled and their notification functions have to be queued. Signed-off-by: Heinrich Schuchardt --- lib/efi_selftest/efi_selftest_event_groups.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/efi_selftest/efi_selftest_event_groups.c b/lib/efi_selftest/efi_selftest_event_groups.c index 5a7980c5d0..6dcde50648 100644 --- a/lib/efi_selftest/efi_selftest_event_groups.c +++ b/lib/efi_selftest/efi_selftest_event_groups.c @@ -80,12 +80,11 @@ static int execute(void) return EFI_ST_FAILURE; } for (j = 0; j < GROUP_SIZE; ++j) { - if (counter[j] != i) { + if (counter[j] != 2 * i + 1) { efi_st_printf("i %u, j %u, count %u\n", (unsigned int)i, (unsigned int)j, (unsigned int)counter[j]); - efi_st_error( - "Notification function was called\n"); + efi_st_error("Notification function was not called\n"); return EFI_ST_FAILURE; } /* Clear signaled state */ @@ -94,7 +93,7 @@ static int execute(void) efi_st_error("Event was not signaled\n"); return EFI_ST_FAILURE; } - if (counter[j] != i) { + if (counter[j] != 2 * i + 1) { efi_st_printf("i %u, j %u, count %u\n", (unsigned int)i, (unsigned int)j, (unsigned int)counter[j]); @@ -109,7 +108,7 @@ static int execute(void) "Signaled state not cleared\n"); return EFI_ST_FAILURE; } - if (counter[j] != i + 1) { + if (counter[j] != 2 * i + 2) { efi_st_printf("i %u, j %u, count %u\n", (unsigned int)i, (unsigned int)j, (unsigned int)counter[j]);