public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [PATCH v2] NetworkPkg/Ip6Dxe: Clean the invalid IPv6 configuration during driver start.
@ 2019-02-12  0:47 Jiaxin Wu
  2019-02-12  1:04 ` Fu, Siyuan
  0 siblings, 1 reply; 3+ messages in thread
From: Jiaxin Wu @ 2019-02-12  0:47 UTC (permalink / raw)
  To: edk2-devel; +Cc: Michael Turner, Ye Ting, Fu Siyuan, Wu Jiaxin

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.Turner@microsoft.com>
Cc: Ye Ting <ting.ye@intel.com>
Cc: Fu Siyuan <siyuan.fu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Wu Jiaxin <jiaxin.wu@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



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] NetworkPkg/Ip6Dxe: Clean the invalid IPv6 configuration during driver start.
  2019-02-12  0:47 [PATCH v2] NetworkPkg/Ip6Dxe: Clean the invalid IPv6 configuration during driver start Jiaxin Wu
@ 2019-02-12  1:04 ` Fu, Siyuan
  2019-02-14  0:55   ` Wu, Jiaxin
  0 siblings, 1 reply; 3+ messages in thread
From: Fu, Siyuan @ 2019-02-12  1:04 UTC (permalink / raw)
  To: Wu, Jiaxin, edk2-devel@lists.01.org; +Cc: Michael Turner, Ye, Ting

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.Turner@microsoft.com>; Ye, Ting
> <ting.ye@intel.com>; Fu, Siyuan <siyuan.fu@intel.com>; Wu, Jiaxin
> <jiaxin.wu@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.Turner@microsoft.com>
> Cc: Ye Ting <ting.ye@intel.com>
> Cc: Fu Siyuan <siyuan.fu@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Wu Jiaxin <jiaxin.wu@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



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v2] NetworkPkg/Ip6Dxe: Clean the invalid IPv6 configuration during driver start.
  2019-02-12  1:04 ` Fu, Siyuan
@ 2019-02-14  0:55   ` Wu, Jiaxin
  0 siblings, 0 replies; 3+ messages in thread
From: Wu, Jiaxin @ 2019-02-14  0:55 UTC (permalink / raw)
  To: Fu, Siyuan, edk2-devel@lists.01.org; +Cc: Michael Turner, Ye, Ting

Hi Siyuan,

Both of them should be fine to clear the invalid configuration data. In my opinion, since the error returned from SetData(), we will treat it as invalid except the asynchronous process (EFI_NOT_READY). That's already have been checked in the if condition.

Thanks,
Jiaxin


> -----Original Message-----
> From: Fu, Siyuan
> Sent: Tuesday, February 12, 2019 9:05 AM
> To: Wu, Jiaxin <jiaxin.wu@intel.com>; edk2-devel@lists.01.org
> Cc: Michael Turner <Michael.Turner@microsoft.com>; Ye, Ting
> <ting.ye@intel.com>
> Subject: RE: [PATCH v2] NetworkPkg/Ip6Dxe: Clean the invalid IPv6
> configuration during driver start.
> 
> 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.Turner@microsoft.com>; Ye, Ting
> > <ting.ye@intel.com>; Fu, Siyuan <siyuan.fu@intel.com>; Wu, Jiaxin
> > <jiaxin.wu@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.Turner@microsoft.com>
> > Cc: Ye Ting <ting.ye@intel.com>
> > Cc: Fu Siyuan <siyuan.fu@intel.com>
> > Contributed-under: TianoCore Contribution Agreement 1.1
> > Signed-off-by: Wu Jiaxin <jiaxin.wu@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



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-02-14  0:55 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-02-12  0:47 [PATCH v2] NetworkPkg/Ip6Dxe: Clean the invalid IPv6 configuration during driver start Jiaxin Wu
2019-02-12  1:04 ` Fu, Siyuan
2019-02-14  0:55   ` Wu, Jiaxin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox