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: [email protected] > Cc: Michael Turner <[email protected]>; Ye, Ting > <[email protected]>; Fu, Siyuan <[email protected]>; Wu, Jiaxin > <[email protected]> > 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 <[email protected]> > Cc: Ye Ting <[email protected]> > Cc: Fu Siyuan <[email protected]> > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Wu Jiaxin <[email protected]> > --- > 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 [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

