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
