Hi, Jiaxin I think the Ip6Cfg->SetData() may return other error, which not only because invalid config data is used. Why not just check the config data in Ip6ConfigReadConfigData()?
BestRegards Fu Siyuan > -----Original Message----- > From: Wu, Jiaxin > Sent: Tuesday, February 12, 2019 8:47 AM > To: edk2-devel@lists.01.org > Cc: Michael Turner <michael.tur...@microsoft.com>; Ye, Ting > <ting...@intel.com>; Fu, Siyuan <siyuan...@intel.com>; Wu, Jiaxin > <jiaxin...@intel.com> > Subject: [PATCH v2] NetworkPkg/Ip6Dxe: Clean the invalid IPv6 configuration > during driver start. > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1448 > > *v2: Add the warning debug message. > > This patch is to clean the invalid data and continue to start IP6 driver. > > Cc: Michael Turner <michael.tur...@microsoft.com> > Cc: Ye Ting <ting...@intel.com> > Cc: Fu Siyuan <siyuan...@intel.com> > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Wu Jiaxin <jiaxin...@intel.com> > --- > NetworkPkg/Ip6Dxe/Ip6Driver.c | 22 ++++++++++++++++++++-- > 1 file changed, 20 insertions(+), 2 deletions(-) > > diff --git a/NetworkPkg/Ip6Dxe/Ip6Driver.c b/NetworkPkg/Ip6Dxe/Ip6Driver.c > index 4c607125a6..7ec74f6ebc 100644 > --- a/NetworkPkg/Ip6Dxe/Ip6Driver.c > +++ b/NetworkPkg/Ip6Dxe/Ip6Driver.c > @@ -586,11 +586,20 @@ Ip6DriverBindingStart ( > Ip6ConfigDataTypeManualAddress, > DataItem->DataSize, > DataItem->Data.Ptr > ); > if (EFI_ERROR(Status) && Status != EFI_NOT_READY) { > - goto UNINSTALL_PROTOCOL; > + // > + // Clean the invalid ManualAddress configuration. > + // > + Status = Ip6Cfg->SetData ( > + Ip6Cfg, > + Ip6ConfigDataTypeManualAddress, > + 0, > + NULL > + ); > + DEBUG ((EFI_D_WARN, "Ip6DriverBindingStart: Clean the invalid > ManualAddress configuration.\n")); > } > } > > // > // If there is any default gateway address, set it. > @@ -602,11 +611,20 @@ Ip6DriverBindingStart ( > Ip6ConfigDataTypeGateway, > DataItem->DataSize, > DataItem->Data.Ptr > ); > if (EFI_ERROR(Status)) { > - goto UNINSTALL_PROTOCOL; > + // > + // Clean the invalid Gateway configuration. > + // > + Status = Ip6Cfg->SetData ( > + Ip6Cfg, > + Ip6ConfigDataTypeGateway, > + 0, > + NULL > + ); > + DEBUG ((EFI_D_WARN, "Ip6DriverBindingStart: Clean the invalid Gateway > configuration.\n")); > } > } > > // > // ready to go: start the receiving and timer > -- > 2.17.1.windows.2 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel