From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) (using TLSv1 with cipher CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 033971A1FEB for ; Thu, 22 Sep 2016 19:51:22 -0700 (PDT) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga104.fm.intel.com with ESMTP; 22 Sep 2016 19:51:22 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.30,380,1470726000"; d="scan'208";a="1034995531" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga001.jf.intel.com with ESMTP; 22 Sep 2016 19:51:22 -0700 Received: from fmsmsx156.amr.corp.intel.com (10.18.116.74) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 22 Sep 2016 19:51:21 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx156.amr.corp.intel.com (10.18.116.74) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 22 Sep 2016 19:51:21 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.234]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.96]) with mapi id 14.03.0248.002; Fri, 23 Sep 2016 10:51:18 +0800 From: "Wu, Jiaxin" To: "Li, Gary (HPS SW)" , "Ye, Ting" , "edk2-devel@lists.01.org" CC: "Fu, Siyuan" Thread-Topic: [edk2] [PATCH] NetworkPkg: Fix RSOD issue in Ip6Dxe Thread-Index: AQHSFJx37d8tFH1OVkCDofIoxZrHtKCErJIAgADbM4CAAMIHMA== Date: Fri, 23 Sep 2016 02:51:17 +0000 Message-ID: <895558F6EA4E3B41AC93A00D163B727413888EBC@SHSMSX103.ccr.corp.intel.com> References: <1474526298-10600-1-git-send-email-garyli@hpe.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYWIxNTczNTEtZjJmOC00NmZiLWE1MjItMGNmMWJkMjVkYjJjIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6Ijdoekhqd3Q1dHd4YnpMRUErNDM4ZEp6UUNjU0lpSDZwNjhlb3pmSVkxM3M9In0= x-ctpclassification: CTP_IC x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH] NetworkPkg: Fix RSOD issue in Ip6Dxe X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Sep 2016 02:51:23 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Gary, Can you make a detail description about the issue? Forgive my ignorance, I = don't know 'RSOD' exactly mean here.=20 > Avoid the Ip6NdFasterTimerTicking is executed again before the previous > Ip6NdFasterTimerTicking is done. > When user presses hotkey between the below line, it makes the Here, you mentioned press POST hotkey between the below line, I'm also conf= used with such hotkey, what does the 'below line' mean? Is that your platfo= rm particular implementation for such a hotkey? > Ip6NdFasterTimerTicking is dispatched again before the previous > Ip6NdFasterTimerTicking is done. > Therefore, the DelayNode node will be removed twice. > Looks so strange for the re-dispatch issue, are you sure it's the same Dela= yNode? More description/background for the system configuration or your ana= lysis is appreciated. Thanks, Jiaxin > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Li= , > Gary (HPS SW) > Sent: Friday, September 23, 2016 5:52 AM > To: Ye, Ting ; edk2-devel@lists.01.org > Cc: Fu, Siyuan ; Wu, Jiaxin > Subject: Re: [edk2] [PATCH] NetworkPkg: Fix RSOD issue in Ip6Dxe >=20 > Hi Ting, >=20 > This issue can be reproduce by switching POST hotkey quickly and repeate= dly. >=20 > Regards, >=20 > Gary Li > Platform SW Engineering > Servers > Office: +886 (2) 8722 9977 >=20 > -----Original Message----- > From: Ye, Ting [mailto:ting.ye@intel.com] > Sent: Thursday, September 22, 2016 4:48 PM > To: Li, Gary (HPS SW) ; edk2-devel@lists.01.org > Cc: Fu, Siyuan ; Wu, Jiaxin > Subject: RE: [edk2] [PATCH] NetworkPkg: Fix RSOD issue in Ip6Dxe >=20 > Hi Gary, >=20 > Do you mind sharing more details about how to reproduce this issue? We ar= e > not clear why this would happen. > It seems the code should continue executing the previous > Ip6NdFasterTimerTicking function rather than dispatching the new timer ev= ent. >=20 > Thanks, > Ye Ting >=20 > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Ga= ry > Li > Sent: Thursday, September 22, 2016 2:38 PM > To: edk2-devel@lists.01.org > Cc: Ye, Ting ; Fu, Siyuan ; Wu, J= iaxin > > Subject: [edk2] [PATCH] NetworkPkg: Fix RSOD issue in Ip6Dxe >=20 > Avoid the Ip6NdFasterTimerTicking is executed again before the previous > Ip6NdFasterTimerTicking is done. > When user presses hotkey between the below line, it makes the > Ip6NdFasterTimerTicking is dispatched again before the previous > Ip6NdFasterTimerTicking is done. > Therefore, the DelayNode node will be removed twice. >=20 > DelayNode =3D NET_LIST_USER_STRUCT (Entry2, IP6_DELAY_JOIN_LIST, Link); .= .. > RemoveEntryList (&DelayNode->Link); >=20 > Contributed-under: TianoCore Contribution Agreement 1.0 >=20 > Signed-off-by: Gary Li > --- > NetworkPkg/Ip6Dxe/Ip6Nd.c | 31 +++++++++++++++++++++---------- > 1 file changed, 21 insertions(+), 10 deletions(-) >=20 > diff --git a/NetworkPkg/Ip6Dxe/Ip6Nd.c b/NetworkPkg/Ip6Dxe/Ip6Nd.c index > a3f49bb..d400d7c 100644 > --- a/NetworkPkg/Ip6Dxe/Ip6Nd.c > +++ b/NetworkPkg/Ip6Dxe/Ip6Nd.c > @@ -2,6 +2,7 @@ > Implementation of Neighbor Discovery support routines. >=20 > Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.
> + (C) Copyright 2016 Hewlett Packard Enterprise Development LP
>=20 > This program and the accompanying materials > are licensed and made available under the terms and conditions of the = BSD > License @@ -16,6 +17,7 @@ #include "Ip6Impl.h" >=20 > EFI_MAC_ADDRESS mZeroMacAddress; > +BOOLEAN mIsInIp6NdFasterTimerTicking =3D FALSE; >=20 > /** > Update the ReachableTime in IP6 service binding instance data, in > milliseconds. > @@ -2774,6 +2776,12 @@ Ip6NdFasterTimerTicking ( > IP6_SERVICE *IpSb; > BOOLEAN Flag; >=20 > + if (!mIsInIp6NdFasterTimerTicking) { > + mIsInIp6NdFasterTimerTicking =3D TRUE; } else { > + return; > + } > + > IpSb =3D (IP6_SERVICE *) Context; > NET_CHECK_SIGNATURE (IpSb, IP6_SERVICE_SIGNATURE); >=20 > @@ -2848,7 +2856,7 @@ Ip6NdFasterTimerTicking ( > NULL > ); > if (EFI_ERROR (Status)) { > - return; > + goto Exit; > } >=20 > DupAddrDetect->Transmit++; > @@ -2896,7 +2904,7 @@ Ip6NdFasterTimerTicking ( > Ip6CreateSNMulticastAddr (&NeighborCache->Neighbor, &Destinati= on); > Status =3D Ip6SelectSourceAddress (IpSb, &NeighborCache->Neigh= bor, > &Source); > if (EFI_ERROR (Status)) { > - return; > + goto Exit; > } >=20 > Status =3D Ip6SendNeighborSolicit ( @@ -2907,7 +2915,7 @@ > Ip6NdFasterTimerTicking ( > &IpSb->SnpMode.CurrentAddress > ); > if (EFI_ERROR (Status)) { > - return; > + goto Exit; > } > } >=20 > @@ -2934,7 +2942,7 @@ Ip6NdFasterTimerTicking ( > NULL > ); > if (EFI_ERROR (Status)) { > - return; > + goto Exit; > } > } >=20 > @@ -2965,7 +2973,7 @@ Ip6NdFasterTimerTicking ( > NULL > ); > if (EFI_ERROR (Status)) { > - return; > + goto Exit; > } > } else { > NeighborCache->State =3D EfiNeighborStale; @@ -2986,7 +2994,7 = @@ > Ip6NdFasterTimerTicking ( > // > Status =3D Ip6SelectSourceAddress (IpSb, &NeighborCache->Neighbo= r, > &Source); > if (EFI_ERROR (Status)) { > - return; > + goto Exit; > } >=20 > Status =3D Ip6SendNeighborSolicit ( @@ -2997,7 +3005,7 @@ > Ip6NdFasterTimerTicking ( > &IpSb->SnpMode.CurrentAddress > ); > if (EFI_ERROR (Status)) { > - return; > + goto Exit; > } >=20 > NeighborCache->Transmit--; > @@ -3023,7 +3031,7 @@ Ip6NdFasterTimerTicking ( > // > Status =3D Ip6SelectSourceAddress (IpSb, &NeighborCache->Neigh= bor, > &Source); > if (EFI_ERROR (Status)) { > - return; > + goto Exit; > } >=20 > Status =3D Ip6SendNeighborSolicit ( @@ -3034,7 +3042,7 @@ > Ip6NdFasterTimerTicking ( > &IpSb->SnpMode.CurrentAddress > ); > if (EFI_ERROR (Status)) { > - return; > + goto Exit; > } > } >=20 > @@ -3061,7 +3069,7 @@ Ip6NdFasterTimerTicking ( > NULL > ); > if (EFI_ERROR (Status)) { > - return; > + goto Exit; > } > } >=20 > @@ -3071,6 +3079,9 @@ Ip6NdFasterTimerTicking ( > break; > } > } > + > +Exit: > + mIsInIp6NdFasterTimerTicking =3D FALSE; > } >=20 > /** > -- > 2.7.2.windows.1 >=20 > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel