mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-27 07:34:06 +02:00
Revert 2ec8f0c6407f062441b205b900038933865c7b3c
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
@ -38,7 +38,6 @@ typedef struct {
|
|||||||
|
|
||||||
LIST_ENTRY mRootMmiHandlerList = INITIALIZE_LIST_HEAD_VARIABLE (mRootMmiHandlerList);
|
LIST_ENTRY mRootMmiHandlerList = INITIALIZE_LIST_HEAD_VARIABLE (mRootMmiHandlerList);
|
||||||
LIST_ENTRY mMmiEntryList = INITIALIZE_LIST_HEAD_VARIABLE (mMmiEntryList);
|
LIST_ENTRY mMmiEntryList = INITIALIZE_LIST_HEAD_VARIABLE (mMmiEntryList);
|
||||||
MMI_HANDLER *mCurrentMmiHandler = NULL;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Finds the MMI entry for the requested handler type.
|
Finds the MMI entry for the requested handler type.
|
||||||
@ -163,18 +162,12 @@ MmiManage (
|
|||||||
// Link points to may be freed if unregister MMI handler.
|
// Link points to may be freed if unregister MMI handler.
|
||||||
//
|
//
|
||||||
Link = Link->ForwardLink;
|
Link = Link->ForwardLink;
|
||||||
//
|
|
||||||
// Assign gCurrentMmiHandle before calling the MMI handler and
|
|
||||||
// set to NULL when it returns.
|
|
||||||
//
|
|
||||||
mCurrentMmiHandler = MmiHandler;
|
|
||||||
Status = MmiHandler->Handler (
|
Status = MmiHandler->Handler (
|
||||||
(EFI_HANDLE)MmiHandler,
|
(EFI_HANDLE)MmiHandler,
|
||||||
Context,
|
Context,
|
||||||
CommBuffer,
|
CommBuffer,
|
||||||
CommBufferSize
|
CommBufferSize
|
||||||
);
|
);
|
||||||
mCurrentMmiHandler = NULL;
|
|
||||||
|
|
||||||
switch (Status) {
|
switch (Status) {
|
||||||
case EFI_INTERRUPT_PENDING:
|
case EFI_INTERRUPT_PENDING:
|
||||||
@ -321,13 +314,6 @@ MmiHandlerUnRegister (
|
|||||||
return EFI_INVALID_PARAMETER;
|
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;
|
MmiEntry = MmiHandler->MmiEntry;
|
||||||
|
|
||||||
RemoveEntryList (&MmiHandler->Link);
|
RemoveEntryList (&MmiHandler->Link);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user