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 <xypron.glpk@gmx.de>
This commit is contained in:
Heinrich Schuchardt 2019-06-05 22:50:42 +02:00
parent 7eaa900e56
commit 1e37be5e20
1 changed files with 4 additions and 5 deletions

View File

@ -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]);