> -----Original Message----- > From: Ryan Harkin [mailto:[email protected]] > Sent: Wednesday, June 22, 2016 8:00 PM > To: Wu, Jiaxin <[email protected]> > Cc: edk2-devel-01 <[email protected]>; Ye, Ting <[email protected]>; > Fu, Siyuan <[email protected]> > Subject: Re: [Patch] MdeModulePkg: Fix the wrong IpSb->State update > > On 22 June 2016 at 12:14, Jiaxin Wu <[email protected]> wrote: > > This patch is used to fix the wrong IpSb->State update issue. > > > > Issue reproduce steps: > > 1 .First PXE boot, then boot to shell; 2. ifconfig -s eth0 dhcp > > (Success); 3. Reboot and do PXE, then boot to shell; 4. ifconfig -s > > eth0 dhcp (Platform failed to get IP address no matter > > how many times retried.) > > > > Root cause: > > On step3 reboot, policy is DHCP (Changed by step2). So, Ip4Dxe driver > > will try to get one IP address from DHCP server automatically. Before > > it get the IP address successfully, the IpSb->State will be always in > > IP4_SERVICE_STARTED status until the Instance->Dhcp4Event is > > triggered, then it can be changed to IP4_SERVICE_CONFIGED. But the > > DHCP process will be interrupted by PXE boot, which will change the > > policy to static, and the Instance->Dhcp4Event will be also closed > > directly. However, current implementation doesn't update the > > IpSb->State to IP4_SERVICE_UNSTARTED status in such case. So, failure > happened. > > > > Cc: Ye Ting <[email protected]> > > Cc: Fu Siyuan <[email protected]> > > Cc: Ryan Harkin <[email protected]> > > Contributed-under: TianoCore Contribution Agreement 1.0 > > Signed-off-by: Jiaxin Wu <[email protected]> > > I tested this on Juno ARM Development Platform and it now works as > expected.
Thanks your verification. > > I still have a problem with Versatile Express TC2 that is fixed by reverting > commit 7648748e99eeeadec38fda7568adb260c4acc861, however it is a > different problem than the one fixed in this patch. I'll investigate that > further > and report back if/when I find out more. Welcome your any feedback:). > > Reviewed-by: Ryan Harkin <[email protected]> > Tested-by: Ryan Harkin <[email protected]> > > > --- > > MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Config2Impl.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Config2Impl.c > > b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Config2Impl.c > > index d0fa132..10d7181 100644 > > --- a/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Config2Impl.c > > +++ b/MdeModulePkg/Universal/Network/Ip4Dxe/Ip4Config2Impl.c > > @@ -140,11 +140,11 @@ Ip4Config2OnPolicyChanged ( > > IpSb->DefaultInterface = IpIf; > > InsertHeadList (&IpSb->Interfaces, &IpIf->Link); > > IpSb->DefaultRouteTable = RouteTable; > > Ip4ReceiveFrame (IpIf, NULL, Ip4AccpetFrame, IpSb); > > > > - if (IpSb->State == IP4_SERVICE_CONFIGED) { > > + if (IpSb->State == IP4_SERVICE_CONFIGED || IpSb->State == > > + IP4_SERVICE_STARTED) { > > IpSb->State = IP4_SERVICE_UNSTARTED; > > } > > > > // > > // Start the dhcp configuration. > > -- > > 1.9.5.msysgit.1 > > _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

