efi_loader: TPL_HIGH_LEVEL not allowed for CreateEvent
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Thu, 10 Jun 2021 21:10:52 +0000 (23:10 +0200)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Mon, 28 Jun 2021 17:57:13 +0000 (19:57 +0200)
According to chapter 7.1 "Event, Timer, and Task Priority Services"
TPL_HIGH_LEVEL should not be exposed to applications and drivers.

According to the discussion with EDK II contributors this implies that
CreateEvent() shall not allow to create events with TPL_HIGH_LEVEL.

Cc: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Acked-by: Samer El-Haj-Mahmoud <Samer.El-Haj-Mahmoud@arm.com>
lib/efi_loader/efi_boottime.c
lib/efi_selftest/efi_selftest_tpl.c

index 4777b35..f6d5ba0 100644 (file)
@@ -264,7 +264,6 @@ efi_status_t is_valid_tpl(efi_uintn_t tpl)
        case TPL_APPLICATION:
        case TPL_CALLBACK:
        case TPL_NOTIFY:
-       case TPL_HIGH_LEVEL:
                return EFI_SUCCESS;
        default:
                return EFI_INVALID_PARAMETER;
index 70a355e..0c0e412 100644 (file)
@@ -55,7 +55,7 @@ static int setup(const efi_handle_t handle,
                return EFI_ST_FAILURE;
        }
        ret = boottime->create_event(EVT_TIMER | EVT_NOTIFY_WAIT,
-                                    TPL_HIGH_LEVEL, notify, NULL, &event_wait);
+                                    TPL_NOTIFY, notify, NULL, &event_wait);
        if (ret != EFI_SUCCESS) {
                efi_st_error("could not create event\n");
                return EFI_ST_FAILURE;