Re: 回复: [edk2-devel] [PATCH] UefiCpuPkg/MpInitLib: Properly cast from PCD to SEV-ES jump table pointer


Lendacky, Thomas
 

On 5/10/21 10:04 PM, gaoliming via groups.io wrote:
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
Thanks, Liming.

Sorry, for the delay, your email ended up in my Spam folder... urg, IT at
its best. Anyway...

The patch is changing enough that I don't think I should add your
Reviewed-by: just yet. Look for a new version soon.

Thanks,
Tom


-----邮件原件-----
发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Lendacky,
Thomas
发送时间: 2021年5月10日 22:25
收件人: devel@edk2.groups.io
抄送: Brijesh Singh <brijesh.singh@amd.com>; Eric Dong
<eric.dong@intel.com>; Ray Ni <ray.ni@intel.com>; Laszlo Ersek
<lersek@redhat.com>; Rahul Kumar <rahul1.kumar@intel.com>
主题: [edk2-devel] [PATCH] UefiCpuPkg/MpInitLib: Properly cast from PCD to
SEV-ES jump table pointer

BZ: https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugzilla.tianocore.org%2Fshow_bug.cgi%3Fid%3D3385&;data=04%7C01%7Cthomas.lendacky%40amd.com%7Ce447839eff4f4dfcf2f408d9142974b8%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637566181281381668%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&amp;sdata=Hy8B0K8gLfdQyPFtkIQlYGQ82r2f5x%2BRf0PkWilprjc%3D&amp;reserved=0

A VS2012 build fails with a cast conversion warning when the SEV-ES work
area PCD is cast as a pointer to the SEV_ES_AP_JMP_FAR type.

When casting from a PCD value to a pointer, the cast should first be done
to a UINTN and then to the pointer. Update the code to perform a cast to
a UINTN before casting to a pointer to the SEV_ES_AP_JMP_FAR type.

Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
---
UefiCpuPkg/Library/MpInitLib/MpLib.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c
b/UefiCpuPkg/Library/MpInitLib/MpLib.c
index 3d945972a025..dc2a54aa31e8 100644
--- a/UefiCpuPkg/Library/MpInitLib/MpLib.c
+++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c
@@ -1265,7 +1265,7 @@ SetSevEsJumpTable (
UINT32 Offset, InsnByte;
UINT8 LoNib, HiNib;

- JmpFar = (SEV_ES_AP_JMP_FAR *) FixedPcdGet32
(PcdSevEsWorkAreaBase);
+ JmpFar = (SEV_ES_AP_JMP_FAR *) (UINTN) FixedPcdGet32
(PcdSevEsWorkAreaBase);
ASSERT (JmpFar != NULL);

//
--
2.31.0










Join devel@edk2.groups.io to automatically receive all group messages.