mirror of https://github.com/acidanthera/audk.git
Revert 2ec8f0c640
This reverts commit "StandaloneMmPkg: Disallow unregister MMI handler in other MMI handler" for better design later. Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Jiaxin Wu <jiaxin.wu@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Ray Ni <ray.ni@intel.com> Cc: Laszlo Ersek <lersek@redhat.com> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> Cc: Sami Mujawar <sami.mujawar@arm.com> Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com>
This commit is contained in:
parent
5ba3602e45
commit
31cd5ee8c0
|
@ -36,9 +36,8 @@ typedef struct {
|
|||
MMI_ENTRY *MmiEntry;
|
||||
} MMI_HANDLER;
|
||||
|
||||
LIST_ENTRY mRootMmiHandlerList = INITIALIZE_LIST_HEAD_VARIABLE (mRootMmiHandlerList);
|
||||
LIST_ENTRY mMmiEntryList = INITIALIZE_LIST_HEAD_VARIABLE (mMmiEntryList);
|
||||
MMI_HANDLER *mCurrentMmiHandler = NULL;
|
||||
LIST_ENTRY mRootMmiHandlerList = INITIALIZE_LIST_HEAD_VARIABLE (mRootMmiHandlerList);
|
||||
LIST_ENTRY mMmiEntryList = INITIALIZE_LIST_HEAD_VARIABLE (mMmiEntryList);
|
||||
|
||||
/**
|
||||
Finds the MMI entry for the requested handler type.
|
||||
|
@ -162,19 +161,13 @@ MmiManage (
|
|||
// get next node before handler is executed, since LIST_ENTRY that
|
||||
// Link points to may be freed if unregister MMI handler.
|
||||
//
|
||||
Link = Link->ForwardLink;
|
||||
//
|
||||
// Assign gCurrentMmiHandle before calling the MMI handler and
|
||||
// set to NULL when it returns.
|
||||
//
|
||||
mCurrentMmiHandler = MmiHandler;
|
||||
Status = MmiHandler->Handler (
|
||||
(EFI_HANDLE)MmiHandler,
|
||||
Context,
|
||||
CommBuffer,
|
||||
CommBufferSize
|
||||
);
|
||||
mCurrentMmiHandler = NULL;
|
||||
Link = Link->ForwardLink;
|
||||
Status = MmiHandler->Handler (
|
||||
(EFI_HANDLE)MmiHandler,
|
||||
Context,
|
||||
CommBuffer,
|
||||
CommBufferSize
|
||||
);
|
||||
|
||||
switch (Status) {
|
||||
case EFI_INTERRUPT_PENDING:
|
||||
|
@ -321,13 +314,6 @@ MmiHandlerUnRegister (
|
|||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
//
|
||||
// Do not allow to unregister MMI Handler inside other MMI Handler
|
||||
//
|
||||
if ((mCurrentMmiHandler != NULL) && (mCurrentMmiHandler != MmiHandler)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
MmiEntry = MmiHandler->MmiEntry;
|
||||
|
||||
RemoveEntryList (&MmiHandler->Link);
|
||||
|
|
Loading…
Reference in New Issue