diff --git a/MdePkg/Library/DxeIoLibEsal/IoLib.c b/MdePkg/Library/DxeIoLibEsal/IoLib.c index 7bc6ff1b61..81b28ecdd9 100644 --- a/MdePkg/Library/DxeIoLibEsal/IoLib.c +++ b/MdePkg/Library/DxeIoLibEsal/IoLib.c @@ -38,6 +38,8 @@ IoReadWorker ( SAL_RETURN_REGS ReturnReg; UINT64 Data; + Data = 0; + ReturnReg = EsalCall ( EFI_EXTENDED_SAL_BASE_IO_SERVICES_PROTOCOL_GUID_LO, EFI_EXTENDED_SAL_BASE_IO_SERVICES_PROTOCOL_GUID_HI, @@ -119,6 +121,8 @@ MmioReadWorker ( SAL_RETURN_REGS ReturnReg; UINT64 Data; + Data = 0; + ReturnReg = EsalCall ( EFI_EXTENDED_SAL_BASE_IO_SERVICES_PROTOCOL_GUID_LO, EFI_EXTENDED_SAL_BASE_IO_SERVICES_PROTOCOL_GUID_HI, diff --git a/MdePkg/Library/DxeSalLibEsal/DxeSalLibEsal.c b/MdePkg/Library/DxeSalLibEsal/DxeSalLibEsal.c index b013146eb2..8d1dd9ae15 100644 --- a/MdePkg/Library/DxeSalLibEsal/DxeSalLibEsal.c +++ b/MdePkg/Library/DxeSalLibEsal/DxeSalLibEsal.c @@ -59,6 +59,14 @@ SalCall ( ) { SAL_RETURN_REGS Regs; + + // + // Initial all members in this structure. + // + Regs.r9 = 0; + Regs.r10 = 0; + Regs.r11 = 0; + Regs.Status = EFI_SAL_INVALID_ARGUMENT; switch (Index) { case EFI_SAL_SET_VECTORS: @@ -272,7 +280,6 @@ SalCall ( break; default: - Regs.Status = EFI_SAL_INVALID_ARGUMENT; return Regs; break; }