From da228b29bdf5d52c029166b51538c9f1d76c88da Mon Sep 17 00:00:00 2001 From: Zhiquan Li Date: Thu, 11 Jan 2024 22:02:20 -0800 Subject: MdePkg/Library/BaseIoLibIntrinsic: Fix TD MMIO read type cast Currently the types of casting mismatch with TD MMIO read 1, 2 and 4 bytes, that might introduce potential issues. So fix the types as conventional MmioRead[8|16|32] does. Cc: Michael D Kinney Cc: Liming Gao Signed-off-by: Zhiquan Li Reviewed-by: Michael D Kinney --- MdePkg/Library/BaseIoLibIntrinsic/IoLibInternalTdx.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'MdePkg/Library') diff --git a/MdePkg/Library/BaseIoLibIntrinsic/IoLibInternalTdx.c b/MdePkg/Library/BaseIoLibIntrinsic/IoLibInternalTdx.c index ec837f5..1acc3b3 100644 --- a/MdePkg/Library/BaseIoLibIntrinsic/IoLibInternalTdx.c +++ b/MdePkg/Library/BaseIoLibIntrinsic/IoLibInternalTdx.c @@ -237,7 +237,7 @@ TdMmioRead8 ( Status = TdVmCall (TDVMCALL_MMIO, TDVMCALL_ACCESS_SIZE_1, TDVMCALL_ACCESS_READ, Address | TdSharedPageMask (), 0, &Value); if (Status != 0) { - Value = *(volatile UINT64 *)Address; + Value = *(volatile UINT8 *)Address; } return (UINT8)Value; @@ -294,7 +294,7 @@ TdMmioRead16 ( Status = TdVmCall (TDVMCALL_MMIO, TDVMCALL_ACCESS_SIZE_2, TDVMCALL_ACCESS_READ, Address | TdSharedPageMask (), 0, &Value); if (Status != 0) { - Value = *(volatile UINT64 *)Address; + Value = *(volatile UINT16 *)Address; } return (UINT16)Value; @@ -353,7 +353,7 @@ TdMmioRead32 ( Status = TdVmCall (TDVMCALL_MMIO, TDVMCALL_ACCESS_SIZE_4, TDVMCALL_ACCESS_READ, Address | TdSharedPageMask (), 0, &Value); if (Status != 0) { - Value = *(volatile UINT64 *)Address; + Value = *(volatile UINT32 *)Address; } return (UINT32)Value; -- cgit v1.1