From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id B1762820E6 for ; Wed, 15 Feb 2017 16:30:46 -0800 (PST) Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Feb 2017 16:30:46 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.35,167,1484035200"; d="scan'208";a="65238541" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga005.jf.intel.com with ESMTP; 15 Feb 2017 16:30:46 -0800 Received: from fmsmsx113.amr.corp.intel.com (10.18.116.7) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.248.2; Wed, 15 Feb 2017 16:30:45 -0800 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX113.amr.corp.intel.com (10.18.116.7) with Microsoft SMTP Server (TLS) id 14.3.248.2; Wed, 15 Feb 2017 16:30:45 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.20]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.177]) with mapi id 14.03.0248.002; Thu, 16 Feb 2017 08:30:43 +0800 From: "Wu, Jiaxin" To: Laszlo Ersek , "edk2-devel@ml01.01.org" CC: "Ye, Ting" , "Fu, Siyuan" , "Gerd Hoffmann" Thread-Topic: [edk2] [Patch] NetworkPkg/HttpBootDxe: Request HTTP token notify as a DPC at TPL_CALLBACK Thread-Index: AQHShp5UO4atvAH6XUC+nZ1zqJ6Q4aFpgzYAgAFHCiA= Date: Thu, 16 Feb 2017 00:30:42 +0000 Message-ID: <895558F6EA4E3B41AC93A00D163B72741629B1F1@SHSMSX103.ccr.corp.intel.com> References: <1487061740-225728-1-git-send-email-jiaxin.wu@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNjVmZDkwNmYtY2UyMi00ODE2LWExYTEtMjIzMDQ2ZDVjNTA1IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6IlhIdGl6aVRyZzdSTmFaM3NVV3d0Qyt5S0NWS1RVOGtUVnVpRHdTZjFiK1E9In0= x-ctpclassification: CTP_IC x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [Patch] NetworkPkg/HttpBootDxe: Request HTTP token notify as a DPC at TPL_CALLBACK 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, 16 Feb 2017 00:30:46 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Laszlo, Thanks your report, I will fix it ASAP. Best Regards, Jiaxin > -----Original Message----- > From: Laszlo Ersek [mailto:lersek@redhat.com] > Sent: Wednesday, February 15, 2017 8:59 PM > To: Wu, Jiaxin ; edk2-devel@ml01.01.org > Cc: Ye, Ting ; Fu, Siyuan ; Gerd > Hoffmann > Subject: Re: [edk2] [Patch] NetworkPkg/HttpBootDxe: Request HTTP token > notify as a DPC at TPL_CALLBACK >=20 > Hi, >=20 > this patch breaks the GCC build in two places: >=20 > On 02/14/17 09:42, Jiaxin Wu wrote: > > This patch is to update the HTTP token notify as a DPC at > > TPL_CALLBACK to align with UEFI Spec. > > > > Cc: Hegde Nagaraj P > > Cc: Ye Ting > > Cc: Fu Siyuan > > Contributed-under: TianoCore Contribution Agreement 1.0 > > Signed-off-by: Wu Jiaxin > > --- > > NetworkPkg/HttpBootDxe/HttpBootDxe.h | 3 ++- > > NetworkPkg/HttpBootDxe/HttpBootDxe.inf | 1 + > > NetworkPkg/HttpBootDxe/HttpBootSupport.c | 37 > ++++++++++++++++++++++++++++++-- > > 3 files changed, 38 insertions(+), 3 deletions(-) > > > > diff --git a/NetworkPkg/HttpBootDxe/HttpBootDxe.h > b/NetworkPkg/HttpBootDxe/HttpBootDxe.h > > index 7e8cd9d..2814594 100644 > > --- a/NetworkPkg/HttpBootDxe/HttpBootDxe.h > > +++ b/NetworkPkg/HttpBootDxe/HttpBootDxe.h > > @@ -1,9 +1,9 @@ > > /** @file > > UEFI HTTP boot driver's private data structure and interfaces declar= ation. > > > > -Copyright (c) 2015 - 2016, Intel Corporation. All rights reserved.
> > +Copyright (c) 2015 - 2017, Intel Corporation. All rights reserved.
> > (C) Copyright 2016 Hewlett Packard Enterprise Development LP
> > This program and the accompanying materials are licensed and made > available under > > the terms and conditions of the BSD License that accompanies this > distribution. > > The full text of the license may be found at > > http://opensource.org/licenses/bsd-license.php. > > @@ -34,10 +34,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF > ANY KIND, EITHER EXPRESS OR IMPLIED. > > #include > > #include > > #include > > #include > > #include > > +#include > > > > // > > // UEFI Driver Model Protocols > > // > > #include > > diff --git a/NetworkPkg/HttpBootDxe/HttpBootDxe.inf > b/NetworkPkg/HttpBootDxe/HttpBootDxe.inf > > index 982e6b4..ec983ba 100644 > > --- a/NetworkPkg/HttpBootDxe/HttpBootDxe.inf > > +++ b/NetworkPkg/HttpBootDxe/HttpBootDxe.inf > > @@ -58,10 +58,11 @@ > > DebugLib > > NetLib > > HttpLib > > HiiLib > > PrintLib > > + DpcLib > > UefiHiiServicesLib > > UefiBootManagerLib > > > > [Protocols] > > ## TO_START > > diff --git a/NetworkPkg/HttpBootDxe/HttpBootSupport.c > b/NetworkPkg/HttpBootDxe/HttpBootSupport.c > > index 69b129f..d786d72 100644 > > --- a/NetworkPkg/HttpBootDxe/HttpBootSupport.c > > +++ b/NetworkPkg/HttpBootDxe/HttpBootSupport.c > > @@ -623,10 +623,43 @@ HttpBootSetHeader ( > > > > return EFI_SUCCESS; > > } > > > > /** > > + Notify the callback function when an event is triggered. > > + > > + @param[in] Context The opaque parameter to the function. > > + > > +**/ > > +VOID > > +HttpIoNotifyDpc ( > > + IN VOID *Context > > + ) > > +{ > > + *((BOOLEAN *) Context) =3D TRUE; > > +} >=20 > This function definition missed EFIAPI: >=20 > typedef > VOID > (EFIAPI *EFI_DPC_PROCEDURE)( > IN VOID *DpcContext > ); >=20 >=20 > > + > > +/** > > + Request HttpIoNotifyDpc as a DPC at TPL_CALLBACK. > > + > > + @param[in] Event The event signaled. > > + @param[in] Context The opaque parameter to the functi= on. > > + > > +**/ > > +VOID > > +HttpIoNotify ( > > + IN EFI_EVENT Event, > > + IN VOID *Context > > + ) > > +{ > > + // > > + // Request HttpIoNotifyDpc as a DPC at TPL_CALLBACK > > + // > > + QueueDpc (TPL_CALLBACK, HttpIoNotifyDpc, Context); > > +} >=20 > This function also missed EFIAPI: >=20 > typedef > VOID > (EFIAPI *EFI_EVENT_NOTIFY)( > IN EFI_EVENT Event, > IN VOID *Context > ); >=20 > Found by Gerd's Jenkins CI build env. >=20 > Thanks > Laszlo >=20 > > + > > +/** > > Create a HTTP_IO to access the HTTP service. It will create and conf= igure > > a HTTP child handle. > > > > @param[in] Image The handle of the driver image. > > @param[in] Controller The handle of the controller. > > @@ -728,11 +761,11 @@ HttpIoCreateIo ( > > // Create events for variuos asynchronous operations. > > // > > Status =3D gBS->CreateEvent ( > > EVT_NOTIFY_SIGNAL, > > TPL_NOTIFY, > > - HttpBootCommonNotify, > > + HttpIoNotify, > > &HttpIo->IsTxDone, > > &Event > > ); > > if (EFI_ERROR (Status)) { > > goto ON_ERROR; > > @@ -741,11 +774,11 @@ HttpIoCreateIo ( > > HttpIo->ReqToken.Message =3D &HttpIo->ReqMessage; > > > > Status =3D gBS->CreateEvent ( > > EVT_NOTIFY_SIGNAL, > > TPL_NOTIFY, > > - HttpBootCommonNotify, > > + HttpIoNotify, > > &HttpIo->IsRxDone, > > &Event > > ); > > if (EFI_ERROR (Status)) { > > goto ON_ERROR; > >