From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on070a.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe40::70a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 8F3431A1FD9 for ; Thu, 22 Sep 2016 14:52:05 -0700 (PDT) Received: from DF4PR84MB0282.NAMPRD84.PROD.OUTLOOK.COM (10.162.193.20) by DF4PR84MB0283.NAMPRD84.PROD.OUTLOOK.COM (10.162.193.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.639.5; Thu, 22 Sep 2016 21:52:03 +0000 Received: from DF4PR84MB0282.NAMPRD84.PROD.OUTLOOK.COM ([10.162.193.20]) by DF4PR84MB0282.NAMPRD84.PROD.OUTLOOK.COM ([10.162.193.20]) with mapi id 15.01.0639.006; Thu, 22 Sep 2016 21:52:03 +0000 From: "Li, Gary (HPS SW)" To: "Ye, Ting" , "edk2-devel@lists.01.org" CC: "Fu, Siyuan" , "Wu, Jiaxin" , "Li, Gary (HPS SW)" Thread-Topic: [edk2] [PATCH] NetworkPkg: Fix RSOD issue in Ip6Dxe Thread-Index: AQHSFJyB/G/7syGEVEGJVvHlJhanpaCFMq4AgADV8NA= Date: Thu, 22 Sep 2016 21:52:03 +0000 Message-ID: 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: authentication-results: spf=none (sender IP is ) smtp.mailfrom=garyli@hpe.com; x-originating-ip: [15.211.131.13] x-ms-office365-filtering-correlation-id: 93d41f6a-d656-46eb-88da-08d3e332b08e x-microsoft-exchange-diagnostics: 1; DF4PR84MB0283; 6:iO/KXMYUF/ikUNDqby7SS8TuOkUXwslyJDITBWZ1tj+VXeSIjESI+Pi/dweZHiCiatBWbP50DVlzHq3gp5gbuyAMrrh7KKyS1AHcleBIJoQ4gw9MmpZvQRIoUWfsGz+iSFxTvZp6gnAfgvJqxlMZhUHkixov1ZDXWDmDYk64R4uFRAoTHK92JCc7jhhfwSNeUJBDXrouYBr7QmuF/6Engbc6B5j4IT26+ApH7Ww2+Z+9z8qRUFbE+lNue14etJm3f+2+9PS8+AAB+H1zhZ2tuG+esv1j+j3NoCe45qGhTS+kUjHOPgmcP1a9ctROK1UNCOTYiup5WyMlXgigY4Vs3Q==; 5:Aoo/buQ7xdj2nIWHOSFPnISuD7P9pa955OXh/6JQaqt7qYhGbK4OPWJI69XrL9UdVQSPxhxtxBTHpKFwThZIOpiisImquA8D+cODOjs/oBnnHnBk7T3p1LyHICdzAoyPcVqyOulT/bELDbOyTADTlw==; 24:QxQogycTVXJaW8cYq0KhQif0fhRHhzWFVQiPAEgR3fk5W6PuTuNAjT8jY8lzzHAVYd39v2t7uA4P5m8TDclcKFXYP4Ys1J10POjQEHirMeE=; 7:Li7BrMkKg80CAFklHwrGGRvFLvnWvT5UAiqnwViUKu7FKDQUjukjFWu3fRj5m9UNBm4G5OAUBgXMUdEO7S4W2pDeQRO2imrLj6jbVtU2F7FGiPaKVp9QNE1kysHZbdVYQOteMDwEmILZloXKRCrDWU9F8o4btwLtVxoSrnM5/iawKjiaNu3Eb5HNggI5jLYF3u+NIJ4/irogpCn9Z3W4ZmUmFaowgY+glq60C8K3BV4Ku8ObdXHKe8V0Ux1NFvBM2l4eURkXxDmxhaVIImLdpiwjsNNnt0HKPGX69/9IQrl3zylvgCSckRbzRVFMaw4v x-microsoft-antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DF4PR84MB0283; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(227479698468861)(162533806227266)(228905959029699); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040176)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6055026); SRVR:DF4PR84MB0283; BCL:0; PCL:0; RULEID:; SRVR:DF4PR84MB0283; x-forefront-prvs: 0073BFEF03 x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(6009001)(7916002)(13464003)(377454003)(199003)(189002)(305945005)(7846002)(9686002)(15975445007)(3280700002)(92566002)(5001770100001)(68736007)(2900100001)(77096005)(11100500001)(3660700001)(74316002)(76176999)(87936001)(5660300001)(7736002)(86362001)(54356999)(50986999)(7696004)(97736004)(81156014)(101416001)(8676002)(19580395003)(5002640100001)(10400500002)(586003)(2950100001)(81166006)(66066001)(8936002)(4326007)(3846002)(105586002)(102836003)(106116001)(99286002)(6116002)(2906002)(2501003)(19580405001)(189998001)(33656002)(122556002)(106356001)(32563001)(19627235001); DIR:OUT; SFP:1102; SCL:1; SRVR:DF4PR84MB0283; H:DF4PR84MB0282.NAMPRD84.PROD.OUTLOOK.COM; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; received-spf: None (protection.outlook.com: hpe.com does not designate permitted sender hosts) spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM MIME-Version: 1.0 X-OriginatorOrg: hpe.com X-MS-Exchange-CrossTenant-originalarrivaltime: 22 Sep 2016 21:52:03.8842 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-Transport-CrossTenantHeadersStamped: DF4PR84MB0283 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: Thu, 22 Sep 2016 21:52:05 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Ting, This issue can be reproduce by switching POST hotkey quickly and repeatedl= y. Regards, Gary Li Platform SW Engineering Servers Office: +886 (2) 8722 9977 -----Original Message----- From: Ye, Ting [mailto:ting.ye@intel.com]=20 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 Hi Gary, Do you mind sharing more details about how to reproduce this issue? We are = not clear why this would happen.=20 It seems the code should continue executing the previous Ip6NdFasterTimerTi= cking function rather than dispatching the new timer event. Thanks, Ye Ting -----Original Message----- From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Gary= Li Sent: Thursday, September 22, 2016 2:38 PM To: edk2-devel@lists.01.org Cc: Ye, Ting ; Fu, Siyuan ; Wu, Jia= xin Subject: [edk2] [PATCH] NetworkPkg: Fix RSOD issue in Ip6Dxe Avoid the Ip6NdFasterTimerTicking is executed again before the previous Ip6= NdFasterTimerTicking is done. When user presses hotkey between the below line, it makes the Ip6NdFasterTi= merTicking is dispatched again before the previous Ip6NdFasterTimerTicking = is done. Therefore, the DelayNode node will be removed twice. DelayNode =3D NET_LIST_USER_STRUCT (Entry2, IP6_DELAY_JOIN_LIST, Link); ... RemoveEntryList (&DelayNode->Link); Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Gary Li --- NetworkPkg/Ip6Dxe/Ip6Nd.c | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/NetworkPkg/Ip6Dxe/Ip6Nd.c b/NetworkPkg/Ip6Dxe/Ip6Nd.c index a3= f49bb..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 BS= D 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 millis= econds. @@ -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, &Destination= ); Status =3D Ip6SelectSourceAddress (IpSb, &NeighborCache->Neighbo= r, &Source); if (EFI_ERROR (Status)) { - return; + goto Exit; } =20 Status =3D Ip6SendNeighborSolicit ( @@ -2907,7 +2915,7 @@ Ip6NdF= asterTimerTicking ( &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->Neighbor,= &Source); if (EFI_ERROR (Status)) { - return; + goto Exit; } =20 Status =3D Ip6SendNeighborSolicit ( @@ -2997,7 +3005,7 @@ Ip6NdFas= terTimerTicking ( &IpSb->SnpMode.CurrentAddress ); if (EFI_ERROR (Status)) { - return; + goto Exit; } =20 NeighborCache->Transmit--; @@ -3023,7 +3031,7 @@ Ip6NdFasterTimerTicking ( // Status =3D Ip6SelectSourceAddress (IpSb, &NeighborCache->Neighbo= r, &Source); if (EFI_ERROR (Status)) { - return; + goto Exit; } =20 Status =3D Ip6SendNeighborSolicit ( @@ -3034,7 +3042,7 @@ Ip6NdF= asterTimerTicking ( &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 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel