When using StartCore.efi to test Mp service protocol, there will 
cause an ASSERT. "edk2/MdeModulePkg/Core/Dxe/Mem/Pool.c(439): Head->Size
== Tail->Size"

The Reason:
the AP invoked ClientTask() which waited for RootTask() changed the
'Ready' Flags to continue, but when 'MaxCount' had consumed, the
redundant 'WaitForRoot' still waited for BSP changing the 'Ready' Flags
. while the BSP had began to free the 'Tcb' parameters(FreePool( mTcb))
which still be used by ClientTask(), so should drop it.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chen Fan <[email protected]>

---
 StartCorePkg/StartCore/ClientApp1.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/StartCorePkg/StartCore/ClientApp1.c 
b/StartCorePkg/StartCore/ClientApp1.c
index 0943f4b..c8925bb 100644
--- a/StartCorePkg/StartCore/ClientApp1.c
+++ b/StartCorePkg/StartCore/ClientApp1.c
@@ -84,8 +84,6 @@ ClientTask( IN VOID* parameter)
   // We have now done all of our work and could exit right now.
 
   // For debugging and paranoia's sake, Send one last "special" value.
-  WaitForRoot(Tcb);           // Delay until my data has been consumed
-
   // Send one more result so we can catch off-by-one errors in the Root Task
   Tcb->Result = 0xFEEDFACE;     // Indicate that ClientTask is exiting
   Tcb->Ready = 1;              // This should be ignored
-- 
1.9.3


------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to