Good day Abhishek,

I CC'd the MdeModulePkg maintainers, Ruiyu for the Platform BDS aspect (exposes 
the ReadyToLock protocol) and Laszlo for his high-quality answers.

Strictly speaking you are, right, because of the description for the MM 
protocol:
"Indicates that MM resources and services that should not be used by the third 
party code are about[Marvin: (!)] to be locked."
Practically however, I don't see any issue with the current implementation. 
Code inside MMRAM is not affected directly by the lock, it is just notified.
However, either the code or the specification should be slightly updated to be 
in sync. A code update might require review of the caller assumptions, just to 
be sure.

I have a different concern though and hope I'm actually overlooking something.
If I understand the code correctly, it is the Platform BDS that exposes the 
(S)MmReadyToLock protocol. PiSmmIpl seems to consume that event and lock SMM 
resources based on the event.
Because of latter being an event however, I don't think it is, or can be, 
guaranteed to be the last event group member executing.
When it is not the last, the "about to be locked" part is not true for any 
subsequent callbacks, that could actually be a risky break of the specification 
- if it is.
If it is a break of the specification, I can only think of letting Platform BDS 
expose an "internal" event group, which is only caught by PiSmmIpl, which then 
drives the actual SmmReadyToLock flow.
This would require updates to all platform trees and hence I would propose a 
temporary backwards-compatibility.

Any comments? Did I overlook something (I hope)?

Thanks and regards,
Marvin

> -----Original Message-----
> From: edk2-devel <edk2-devel-boun...@lists.01.org> On Behalf Of
> Abhishek Singh
> Sent: Saturday, May 26, 2018 5:05 PM
> To: edk2-devel@lists.01.org
> Subject: [edk2] smm lock query
> 
> Hi,
> 
> This is the first time I am mailing to this list. If this is not the right 
> place for the
> kind of questions I am asking please let me know where to direct my queries.
> 
> I have been looking at the SMM IPL code and a portion of the code is a little
> confusing to me. In the function SmmIplReadyToLockEventNotify, smram is
> locked (mSmmAccess->Lock) before the ready to lock notifications are sent
> through SmmIplGuidedEventNotify. Shouldn't the lock be placed after the
> ready to lock notifications?
> 
> Best regards,
> Abhishek
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to