瀏覽代碼

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>
Heinrich Schuchardt 5 年之前
父節點
當前提交
1e37be5e20
共有 1 個文件被更改,包括 4 次插入5 次删除
  1. 4 5
      lib/efi_selftest/efi_selftest_event_groups.c

+ 4 - 5
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]);