On Wed, 28 Feb 2024 at 03:28, Zhiguang Liu <[email protected]> wrote: > > To support unregister MMI handler inside MMI handler itself, > get next node before MMI handler is executed, since LIST_ENTRY that > Link points to may be freed if unregister MMI handler in MMI handler > itself. > > Cc: Liming Gao <[email protected]> > Cc: Jiaxin Wu <[email protected]> > Cc: Ray Ni <[email protected]> > Cc: Laszlo Ersek <[email protected]> > Cc: Ard Biesheuvel <[email protected]> > Cc: Sami Mujawar <[email protected]> > Signed-off-by: Zhiguang Liu <[email protected]> > --- > StandaloneMmPkg/Core/Mmi.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) >
Reviewed-by: Ard Biesheuvel <[email protected]> > diff --git a/StandaloneMmPkg/Core/Mmi.c b/StandaloneMmPkg/Core/Mmi.c > index 0de6fd17fc..c1a1d76e85 100644 > --- a/StandaloneMmPkg/Core/Mmi.c > +++ b/StandaloneMmPkg/Core/Mmi.c > @@ -154,9 +154,14 @@ MmiManage ( > Head = &MmiEntry->MmiHandlers; > } > > - for (Link = Head->ForwardLink; Link != Head; Link = Link->ForwardLink) { > + for (Link = Head->ForwardLink; Link != Head;) { > MmiHandler = CR (Link, MMI_HANDLER, Link, MMI_HANDLER_SIGNATURE); > - > + // > + // To support unregister MMI handler inside MMI handler itself, > + // get next node before handler is executed, since LIST_ENTRY that > + // Link points to may be freed if unregister MMI handler. > + // > + Link = Link->ForwardLink; > Status = MmiHandler->Handler ( > (EFI_HANDLE)MmiHandler, > Context, > -- > 2.31.1.windows.1 > > > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#116629): https://edk2.groups.io/g/devel/message/116629 Mute This Topic: https://groups.io/mt/104616994/21656 Group Owner: [email protected] Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
