Hi, Jiaxin Do you mean the code which calls MTFTP4->Poll() at TPL_CALLBACK will cause system hang? This should not happen because all network protocol should be able to run at TPL_CALLBACK.
BestRegards Fu Siyuan > -----Original Message----- > From: Wu, Jiaxin > Sent: Thursday, March 1, 2018 5:38 PM > To: edk2-devel@lists.01.org > Cc: Wang, Fan <fan.w...@intel.com>; Fu, Siyuan <siyuan...@intel.com>; Ye, > Ting <ting...@intel.com> > Subject: [Patch] MdeModulePkg/Mtftp4Dxe: Restore the TPL before the poll > function. > > This patch is to fix the hang issue, which was enrolled by the commit of > 39b0867d. > The TPL should be restored before calling poll function at TPL_CALLBACK. > > Cc: Wang Fan <fan.w...@intel.com> > Cc: Fu Siyuan <siyuan...@intel.com> > Cc: Ye Ting <ting...@intel.com> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Jiaxin Wu <jiaxin...@intel.com> > --- > MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Impl.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Impl.c > b/MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Impl.c > index f5f9e6d8f7..64e0463dd9 100644 > --- a/MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Impl.c > +++ b/MdeModulePkg/Universal/Network/Mtftp4Dxe/Mtftp4Impl.c > @@ -507,24 +507,27 @@ Mtftp4Start ( > if (EFI_ERROR (Status)) { > Status = EFI_DEVICE_ERROR; > goto ON_ERROR; > } > > + // > + // Restore the TPL now, don't call poll function at TPL_CALLBACK. > + // > + gBS->RestoreTPL (OldTpl); > + > if (Token->Event != NULL) { > - gBS->RestoreTPL (OldTpl); > return EFI_SUCCESS; > } > > // > // Return immediately for asynchronous operation or poll the > // instance for synchronous operation. > // > while (Token->Status == EFI_NOT_READY) { > This->Poll (This); > } > - > - gBS->RestoreTPL (OldTpl); > + > return Token->Status; > > ON_ERROR: > Mtftp4CleanOperation (Instance, Status); > gBS->RestoreTPL (OldTpl); > -- > 2.16.2.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel