Good day,

While I was inspecting CpuS3DataDxe and the modules depending on its PCD 
PcdCpuS3DataAddress, I noticed that DxeRegisterCpuFeaturesLib seemingly has an 
asserted dependency on the PCD being ready when it its executed. I did neither 
see a Depex entry, nor an event callback ensuring CpuS3DataDxe has been loaded, 
neither exposed by CpuS3DataDxe, nor consumed by this library.
https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/Library/RegisterCpuFeaturesLib/DxeRegisterCpuFeaturesLib.c#L211

Is there anything I'm missing that ensures the execution of CpuS3DataDxe prior 
to executing the dependent code? If not, should there be a dummy protocol 
exposed? PiSmmCpuDxeSmm also retrieves this PCD, however safely quits when it 
has not been set. However, this could cause unexpected behavior when the PCD is 
set after this code has been executed. I did not notice any dependency 
satisfaction actions here either.

Furthermore, not directly related to this dependency issue, the DXE code 
obviously does not implement AllocateAcpiCpuData() entirely. Hence, the 
if-branch following its call, will either add another layer of firing ASSERTs, 
or it will plainly do nothing. Maybe it could be moved into the current 
AllocateAcpiCpuData() function and it be renamed accordingly?
https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/Library/RegisterCpuFeaturesLib/RegisterCpuFeaturesLib.c#L526

Thanks for your time.

Best regards,
Marvin.
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to