From: Jiaxin Wu Date: Wed, 30 Jan 2019 03:24:27 +0000 (+0800) Subject: NetworkPkg/Ip6Dxe: Clean the invalid IPv6 configuration during driver start. X-Git-Tag: edk2-stable201903~130 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=a169a04fd2cd529527f21575131ba3379ab72df8;p=mirror_edk2.git NetworkPkg/Ip6Dxe: Clean the invalid IPv6 configuration during driver start. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1448 *v3: Change the if condition check to only clean the invalid configuration. *v2: Add the warning debug message. This patch is to clean the invalid data and continue to start IP6 driver. Cc: Michael Turner Cc: Ye Ting Cc: Fu Siyuan Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Wu Jiaxin Reviewed-by: Siyuan Fu --- diff --git a/NetworkPkg/Ip6Dxe/Ip6Driver.c b/NetworkPkg/Ip6Dxe/Ip6Driver.c index 4c607125a6..7a96315ccf 100644 --- a/NetworkPkg/Ip6Dxe/Ip6Driver.c +++ b/NetworkPkg/Ip6Dxe/Ip6Driver.c @@ -587,8 +587,17 @@ Ip6DriverBindingStart ( DataItem->DataSize, DataItem->Data.Ptr ); - if (EFI_ERROR(Status) && Status != EFI_NOT_READY) { - goto UNINSTALL_PROTOCOL; + if (Status == EFI_INVALID_PARAMETER || Status == EFI_BAD_BUFFER_SIZE) { + // + // Clean the invalid ManualAddress configuration. + // + Status = Ip6Cfg->SetData ( + Ip6Cfg, + Ip6ConfigDataTypeManualAddress, + 0, + NULL + ); + DEBUG ((EFI_D_WARN, "Ip6DriverBindingStart: Clean the invalid ManualAddress configuration.\n")); } } @@ -603,8 +612,17 @@ Ip6DriverBindingStart ( DataItem->DataSize, DataItem->Data.Ptr ); - if (EFI_ERROR(Status)) { - goto UNINSTALL_PROTOCOL; + if (Status == EFI_INVALID_PARAMETER || Status == EFI_BAD_BUFFER_SIZE) { + // + // Clean the invalid Gateway configuration. + // + Status = Ip6Cfg->SetData ( + Ip6Cfg, + Ip6ConfigDataTypeGateway, + 0, + NULL + ); + DEBUG ((EFI_D_WARN, "Ip6DriverBindingStart: Clean the invalid Gateway configuration.\n")); } }