Hi Liming,
The strict check on MessageLength is only existent in `MmCommunication`
driver from ArmPkg
(https://github.com/tianocore/edk2/blob/e1e7306b54147e65cb7347b060e94f336d4a82d2/ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.c#L110).
The x86 version does not seem to check MessageLength.
So the behavior does not change on X86 systems, but the MdeModulePkg
change alone will fix the failure to proceed with variable policy on Arm
system.
We also proposed a change in ArmPkg regarding the MessageLength check to
stick closer to PI spec in this patch series.
Regards,
Kun
On 12/06/2021 17:12, gaoliming wrote:
Kun:
Does this change impact current behavior? Seemly, there is no strict check
on MessageLength.
Thanks
Liming
-----邮件原件-----
发件人: Kun Qin <kuqi...@gmail.com>
发送时间: 2021年12月7日 2:47
收件人: Ard Biesheuvel <a...@kernel.org>
抄送: edk2-devel-groups-io <devel@edk2.groups.io>; Jian J Wang
<jian.j.w...@intel.com>; Liming Gao <gaolim...@byosoft.com.cn>; Hao A
Wu <hao.a...@intel.com>; Leif Lindholm <l...@nuviainc.com>; Ard
Biesheuvel <ardb+tianoc...@kernel.org>; Bret Barkelew
<bret.barke...@microsoft.com>; Michael Kubacki
<michael.kuba...@microsoft.com>
主题: Re: [edk2-devel] [PATCH v1 0/2] MM communicate functionality in
variable policy
Thanks for the information, Ard. I just meant to plan ahead so that I
can work on the feedback for these patches, if any.
I can ping back the thread again once the stable tag is created.
Regards,
Kun
On 12/06/2021 10:41, Ard Biesheuvel wrote:
On Mon, 6 Dec 2021 at 19:35, Kun Qin <kuqi...@gmail.com> wrote:
Hi ArmPkg and MdeModulePkg maintainers,
It has been a week since the patches were sent. Could you please review
the changes and let me know if there is any feedback? Any input is
appreciated.
As far as I know, we are still in hard freeze for the upcoming stable tag.
On 11/29/2021 16:39, Kun Qin via groups.io wrote:
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3709
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3751
Currently, setups with variable policy operations used together with MM
communicate from ArmPkg could fail with `EFI_INVALID_PARAMETER`.
This was
due to the errors from 2 following aspects:
1. For variable policy implementations in MdeModulePkg, the DXE
runtime
agent would communicate to MM to disable, register or query policies.
However, during these operations, the MessageLength calculation is
including MM communicate header. This could lead to MM agent read
data
across the given buffer boundary and/or trigger other errors.
2. On the other hand, current MM communicate routine from ArmPkg
would
fail the function if the input message length does not equal to input
buffer size.
As defined in PI specification, the `CommSize`, when as input, should
stand for "The size of the data buffer being passed in", which would mean
the maximal number of bytes `CommBuffer` can hold. In turn, the value of
this input parameter can be used for MM handlers to determine whether
the
output data is too large to fit in this buffer. Enforcing the incoming
buffer to hold exactly the number of used bytes mismatches with the PI
spec description.
This change fix MessageLength field calculation from variable policy and
updated input argument inspections from MM communicate routine in
ArmPkg
to match PI spec descriptions.
Patch v1 branch:
https://github.com/kuqin12/edk2/tree/mm_communicate_check
Cc: Jian J Wang <jian.j.w...@intel.com>
Cc: Liming Gao <gaolim...@byosoft.com.cn>
Cc: Hao A Wu <hao.a...@intel.com>
Cc: Leif Lindholm <l...@nuviainc.com>
Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org>
Cc: Bret Barkelew <bret.barke...@microsoft.com>
Cc: Michael Kubacki <michael.kuba...@microsoft.com>
Kun Qin (2):
MdeModulePkg: VariableSmmRuntimeDxe: Fix Variable Policy
Message
Length
ArmPkg: MmCommunicationDxe: Update MM communicate input
arguments
checks
ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.c
| 44 ++++++++++++--------
MdeModulePkg/Universal/Variable/RuntimeDxe/VariablePolicySmmDxe.c |
10 ++---
2 files changed, 32 insertions(+), 22 deletions(-)
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#84436): https://edk2.groups.io/g/devel/message/84436
Mute This Topic: https://groups.io/mt/87555965/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-