It is required to reinitialize DataSize variable before subsequent
IpmiSendCommand calls. It is especially required after processing
IpmiSendCommand with IPMI_GET_BMC_EXECUTION_CONTEXT because it returns
only 2 bytes as a response. So to the next call of IpmiSendCommand with
IPMI_APP_GET_DEVICE_ID DataSize=2 will be passed. Probably this call will
fail because the expected size of returned data either 12 or 16 bytes
depending on IPMI version supported.

Signed-off-by: Mike Maslenkin <mike.maslen...@gmail.com>
Cc: Isaac Oram <isaac.w.o...@intel.com>
Cc: Nate DeSimone <nathaniel.l.desim...@intel.com>
Cc: Liming Gao <gaolim...@byosoft.com.cn>
---
 .../IpmiFeaturePkg/GenericIpmi/Dxe/IpmiInit.c                   | 2 ++
 1 file changed, 2 insertions(+)

diff --git 
a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Dxe/IpmiInit.c 
b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Dxe/IpmiInit.c
index 5bdbe47b6acb..c333ca2e067a 100644
--- 
a/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Dxe/IpmiInit.c
+++ 
b/Features/Intel/OutOfBandManagement/IpmiFeaturePkg/GenericIpmi/Dxe/IpmiInit.c
@@ -305,6 +305,7 @@ Returns:
     mIpmiInstance->BmcStatus = BMC_OK;

     return EFI_SUCCESS;

   } else {

+    DataSize = sizeof (TempData);

     Status = IpmiSendCommand (

                &IpmiInstance->IpmiTransport,

                IPMI_NETFN_FIRMWARE, 0,

@@ -326,6 +327,7 @@ Returns:
       while (Retries-- != 0) {

         MicroSecondDelay(1*1000*1000); //delay 1 seconds

         DEBUG ((EFI_D_ERROR, "[IPMI] UpdateMode Retries: %d \n",Retries));

+        DataSize = sizeof (TempData);

         Status = IpmiSendCommand (

                    &IpmiInstance->IpmiTransport,

                    IPMI_NETFN_APP, 0,

-- 
2.32.0 (Apple Git-132)



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#101045): https://edk2.groups.io/g/devel/message/101045
Mute This Topic: https://groups.io/mt/97539000/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to