> -----Original Message----- > From: Kun Qin <kuqi...@gmail.com> > Sent: Thursday, June 10, 2021 9:43 AM > To: devel@edk2.groups.io > Cc: Wang, Jian J <jian.j.w...@intel.com>; Wu, Hao A <hao.a...@intel.com>; > Dong, Eric <eric.d...@intel.com>; Ni, Ray <ray...@intel.com> > Subject: [PATCH v1 4/5] MdeModulePkg: SmiHandlerProfileInfo: Updated > MessageLength calculation > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3398 > > This change replaced the calculation of communication buffer size from > explicitly adding the size of each member with the OFFSET macro function. > This will make the structure field defition change transparent to consumers. > > Cc: Jian J Wang <jian.j.w...@intel.com> > Cc: Hao A Wu <hao.a...@intel.com> > Cc: Eric Dong <eric.d...@intel.com> > Cc: Ray Ni <ray...@intel.com> > > Signed-off-by: Kun Qin <kuqi...@gmail.com> > --- > MdeModulePkg/Application/SmiHandlerProfileInfo/SmiHandlerProfileInfo.c > | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git > a/MdeModulePkg/Application/SmiHandlerProfileInfo/SmiHandlerProfileInfo > .c > b/MdeModulePkg/Application/SmiHandlerProfileInfo/SmiHandlerProfileInfo > .c > index 4153074b7a80..56d80d1a9ce1 100644 > --- > a/MdeModulePkg/Application/SmiHandlerProfileInfo/SmiHandlerProfileInfo > .c > +++ > b/MdeModulePkg/Application/SmiHandlerProfileInfo/SmiHandlerProfileIn > +++ fo.c > @@ -116,7 +116,9 @@ GetSmiHandlerProfileDatabase( > CommGetInfo->Header.ReturnStatus = (UINT64)-1; > CommGetInfo->DataSize = 0; > > - CommSize = sizeof(EFI_GUID) + sizeof(UINTN) + CommHeader- > >MessageLength; > + // BZ3398: Make MessageLength the same size in > EFI_MM_COMMUNICATE_HEADER for both IA32 and X64.
Similar comments as in patch 3/5. Best Regards, Hao Wu > + // The CommHeader->MessageLength contains a definitive value, thus > UINTN cast is safe here. > + CommSize = OFFSET_OF(EFI_SMM_COMMUNICATE_HEADER, Data) + > + (UINTN)CommHeader->MessageLength; > Status = SmmCommunication->Communicate(SmmCommunication, > CommBuffer, &CommSize); > if (EFI_ERROR(Status)) { > Print(L"SmiHandlerProfile: SmmCommunication - %r\n", Status); @@ - > 149,7 +151,9 @@ GetSmiHandlerProfileDatabase( > CommGetData->Header.DataLength = sizeof(*CommGetData); > CommGetData->Header.ReturnStatus = (UINT64)-1; > > - CommSize = sizeof(EFI_GUID) + sizeof(UINTN) + CommHeader- > >MessageLength; > + // BZ3398: Make MessageLength the same size in > EFI_MM_COMMUNICATE_HEADER for both IA32 and X64. > + // The CommHeader->MessageLength contains a definitive value, thus > UINTN cast is safe here. > + CommSize = OFFSET_OF(EFI_SMM_COMMUNICATE_HEADER, Data) + > + (UINTN)CommHeader->MessageLength; > Buffer = (UINT8 *)CommHeader + CommSize; > Size -= CommSize; > > -- > 2.31.1.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#76372): https://edk2.groups.io/g/devel/message/76372 Mute This Topic: https://groups.io/mt/83435925/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-