efi_loader: infinite recursion notifying events
authorHeinrich Schuchardt <xypron.glpk@gmx.de>
Sat, 11 May 2019 19:44:59 +0000 (21:44 +0200)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Sun, 12 May 2019 18:54:22 +0000 (20:54 +0200)
commit3b985113be63821c799ae6ee98690f740f49a0e9
tree5962f273c5676c18024b7534bd6b13c7bd94f564
parent8ae39857b93edfe697c223fa2f2edfb39d45c98c
efi_loader: infinite recursion notifying events

UEFI SCT uses this call sequence to determine the current TPL level inside
notification functions:

    OldTpl = BS->RaiseTPL(TPL_HIGH_LEVEL);
    BS->RestoreTPL(OldTpl);

In RestoreTPL() we trigger the notification function of queued events. If
we do not mark the event as non-queued before calling the notification
function, this results in an infinite recursive call sequence.

Mark the event as non-queued before entering the notification function.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
lib/efi_loader/efi_boottime.c