Jiaxin: Did you get chance to review the patch? -Siva From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of Sivaraman Nainar Sent: Thursday, August 13, 2020 12:21 PM To: devel@edk2.groups.io Cc: liming.gao@intel.com; jiaxin.wu@intel.com Subject: [edk2-devel] [Patch ] IP is getting Configured when IP Configuration is disabled BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=2873 *** E:\Work\NWStack\EDK2Tickets\IPConfigFix\Mod\Ip4Config2Impl.c 2020-08-04 18:38:06.000000000 +05-30 --- E:\Work\NWStack\EDK2Tickets\IPConfigFix\Org\Ip4Config2Impl.c 2020-05-07 22:54:46.000000000 +05-30 *************** *** 1965,1978 **** IP4_CONFIG2_INSTANCE *TmpInstance; LIST_ENTRY *Entry; EFI_STATUS Status; UINTN Index; UINT16 IfIndex; IP4_CONFIG2_DATA_ITEM *DataItem; ! BOOLEAN IPConfigEnabled = FALSE; ! IP4_CONFIG2_IFR_NVDATA *IfrFromNvData = NULL; IpSb = IP4_SERVICE_FROM_IP4_CONFIG2_INSTANCE (Instance); Instance->Signature = IP4_CONFIG2_INSTANCE_SIGNATURE; --- 1965,1977 ---- IP4_CONFIG2_INSTANCE *TmpInstance; LIST_ENTRY *Entry; EFI_STATUS Status; UINTN Index; UINT16 IfIndex; IP4_CONFIG2_DATA_ITEM *DataItem; ! IpSb = IP4_SERVICE_FROM_IP4_CONFIG2_INSTANCE (Instance); Instance->Signature = IP4_CONFIG2_INSTANCE_SIGNATURE; *************** *** 2038,2063 **** // // Try to read the config data from NV variable. // If not found, write initialized config data into NV variable // as a default config data. // ! Status = GetVariable2(IpSb->MacString, &gIp4Config2NvDataGuid, (VOID**)&IfrFromNvData, NULL); ! if(!EFI_ERROR(Status)){ ! if (IfrFromNvData->Configure == TRUE) { ! Status = Ip4Config2ReadConfigData (IpSb->MacString, Instance); ! if (Status == EFI_NOT_FOUND) { ! Status = Ip4Config2WriteConfigData (IpSb->MacString, Instance); ! } ! IPConfigEnabled = TRUE; ! } ! FreePool(IfrFromNvData); ! } ! if(!IPConfigEnabled){ ! Status = Ip4Config2WriteConfigData (IpSb->MacString, Instance); ! } if (EFI_ERROR (Status)) { return Status; } Instance->Ip4Config2.SetData = EfiIp4Config2SetData; --- 2037,2052 ---- // // Try to read the config data from NV variable. // If not found, write initialized config data into NV variable // as a default config data. // ! Status = Ip4Config2ReadConfigData (IpSb->MacString, Instance); ! if (Status == EFI_NOT_FOUND) { ! Status = Ip4Config2WriteConfigData (IpSb->MacString, Instance); ! } if (EFI_ERROR (Status)) { return Status; } Instance->Ip4Config2.SetData = EfiIp4Config2SetData; This e-mail is intended for the use of the addressee only and may contain privileged, confidential, or proprietary information that is exempt from disclosure under law. If you have received this message in error, please inform us promptly by reply e-mail, then delete the e-mail and destroy any printed copy. Thank you.