Reviewed-by: Jiaxin Wu <jiaxin...@intel.com>
-----Original Message----- From: Wang, Fan Sent: Monday, July 20, 2015 11:04 AM To: Ye, Ting; Fu, Siyuan; Wu, Jiaxin; edk2-devel@lists.01.org Subject: [Patch] MdeModulePkg: Add old IPv4_DEVICE_PATH support for new IScsiDxe GatewayIpAddress and SubnetMask do not exist in old IPv4_DEVICE_PATH, this will lead new IScsiDxe to error if IPv4_DEVICE_PATH in system is not updated. So add a judgement here to make old IPv4_DEVICE_PATH and new IScsiDxe can cowork. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: fanwang2 <fan.w...@intel.com> --- .../Universal/Network/IScsiDxe/IScsiMisc.c | 27 ++++++++++++++-------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/MdeModulePkg/Universal/Network/IScsiDxe/IScsiMisc.c b/MdeModulePkg/Universal/Network/IScsiDxe/IScsiMisc.c index 61c407e..2661d8c 100644 --- a/MdeModulePkg/Universal/Network/IScsiDxe/IScsiMisc.c +++ b/MdeModulePkg/Universal/Network/IScsiDxe/IScsiMisc.c @@ -812,19 +812,28 @@ IScsiGetTcpConnDevicePath ( DPathNode->Ipv4.LocalPort = 0; DPathNode->Ipv4.StaticIpAddress = (BOOLEAN) (!Session->ConfigData.NvData.InitiatorInfoFromDhcp); - IP4_COPY_ADDRESS ( - &DPathNode->Ipv4.GatewayIpAddress, - &Session->ConfigData.NvData.Gateway - ); - - IP4_COPY_ADDRESS ( - &DPathNode->Ipv4.SubnetMask, - &Session->ConfigData.NvData.SubnetMask - ); + // + // Add a judgement here to support previous versions of IPv4_DEVICE_PATH. + // In previous versions of IPv4_DEVICE_PATH, GatewayIpAddress and SubnetMask + // do not exist. + // In new version of IPv4_DEVICE_PATH, structcure length is 27. + // + if (sizeof (IPv4_DEVICE_PATH) == 27) { + + IP4_COPY_ADDRESS ( + &DPathNode->Ipv4.GatewayIpAddress, + &Session->ConfigData.NvData.Gateway + ); + + IP4_COPY_ADDRESS ( + &DPathNode->Ipv4.SubnetMask, + &Session->ConfigData.NvData.SubnetMask + ); + } break; } DPathNode = (EFI_DEV_PATH *) NextDevicePathNode (&DPathNode->DevPath); -- 1.9.5.msysgit.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel