From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mx.groups.io with SMTP id smtpd.web10.2392.1641527107694315294 for ; Thu, 06 Jan 2022 19:45:09 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=YcGRazji; spf=pass (domain: intel.com, ip: 192.55.52.93, mailfrom: guomin.jiang@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1641527107; x=1673063107; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=2cG7aFefJJSOwfUCqTGatvJjv1+uIDZP3FRF1rK8a8U=; b=YcGRazjizER0orPgNxNODtattCv3ddRTXuPlbM+1N2yesFDVqpr0je47 mRKArykeSj0tEZArq2n87AILUCsbu89//nFk/3pLA1vLcrQ6+5xgYj409 Mmldsbbbg1YXJUqNsyCXf0Jd6RrizTTyiUTdWD5wi2d2/XyO1flZ1aizu WIXR8s9JAk80gCB+9axdI+Q7ragZATY+lrfzwuyVLGOhx3hEcRTKZUN4L /O9iP+gX2zmhv2VWjkaXqiw+nxCmi5KGrHwu8R4AlUyaalWxpKGNMgNJy hoTybUTQqn7WChw/Ba3fwxIFP+GBLIur7F3w9IqgTzKyg+DwvTdKusOVI A==; X-IronPort-AV: E=McAfee;i="6200,9189,10219"; a="240352057" X-IronPort-AV: E=Sophos;i="5.88,268,1635231600"; d="scan'208";a="240352057" Received: from orsmga008.jf.intel.com ([10.7.209.65]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Jan 2022 19:45:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,268,1635231600"; d="scan'208";a="527235279" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga008.jf.intel.com with ESMTP; 06 Jan 2022 19:45:05 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Thu, 6 Jan 2022 19:45:05 -0800 Received: from fmsmsx601.amr.corp.intel.com (10.18.126.81) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Thu, 6 Jan 2022 19:45:05 -0800 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Thu, 6 Jan 2022 19:45:05 -0800 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (104.47.57.171) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Thu, 6 Jan 2022 19:45:04 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ii0UWD7xtaYvav76J/y/QIifFdDF53i3s8H7l/vJ1MyMZ7Img5q33XgR0vRXxDrpLxnlH13MmtiEHbPT1kzkfz7nZdlj+svti82XVYMER65WoX9oBRU6ZR0i5zlC5iOtEErXetipiEjxpz6m+T+C/Cj3EeyeL4UsUpjb1Im5Kde/YngAh3m93GBoIAgD0KC4uhlqionlvRotjcPzTt6ZJ6W6Hyv8xM9D2UN3HOJBn000r9ypn9TfISZuuMxzYJoEgySJmfUmEvFgB8vp6BtYt+9NF0cGpFSXlDJv7h2pPx0Y8wtABozuhDRz/GkzC3eoFQPdmqZZ81CP7eQUBF2Z0w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=EqdMM91mQ3Rjr05RQMdGFMlCvR6tHlC4nlnJOWevr+I=; b=Cr6oIUTxn8U5EwytMg8ulUSpKXUlZj9W4sgb0qd+E/4S0keBhuaZj8d50PqsxgA9SaEc7owHL1qcYVz629BblsKon2uFWzeO6kVNhIS+cIMbCuns16VSgcLvaekBAvk+EHdU84gRKPXA0AyyPap3AzshYU5kaa8sp2HiYoZ70qo0/eTKm5FO99r1GTg19SsxPR3ZfmcXWH122Il3i6M4k7vLEjwIJF3qM3IgTMLtIeb++Q5bYOSlDo3SRBt+9ue5JBbNB25jR6+1dh62MqycXOIK/uq+DNsVHZQIbqPqLcQ7lOkrHx+qF3f45tYuxymOcEHvMM7n+jond8BNoaPLzw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BN0PR11MB5696.namprd11.prod.outlook.com (2603:10b6:408:14b::11) by BN6PR11MB3953.namprd11.prod.outlook.com (2603:10b6:405:7f::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4867.7; Fri, 7 Jan 2022 03:45:02 +0000 Received: from BN0PR11MB5696.namprd11.prod.outlook.com ([fe80::e89b:8e63:96bc:e0eb]) by BN0PR11MB5696.namprd11.prod.outlook.com ([fe80::e89b:8e63:96bc:e0eb%4]) with mapi id 15.20.4867.009; Fri, 7 Jan 2022 03:45:02 +0000 From: "Guomin Jiang" To: "mikuback@linux.microsoft.com" , "devel@edk2.groups.io" CC: "Gao, Liming" , "Kinney, Michael D" , "Xu, Wei6" Subject: Re: [PATCH v1 1/1] FmpDevicePkg/FmpDxe: Update FmpDeviceCheckImageWithStatus() handling Thread-Topic: [PATCH v1 1/1] FmpDevicePkg/FmpDxe: Update FmpDeviceCheckImageWithStatus() handling Thread-Index: AQHYAasZvmwMN0BU4EKfbJpInKouhKxW7eUg Date: Fri, 7 Jan 2022 03:45:02 +0000 Message-ID: References: <20220104203824.2047-1-mikuback@linux.microsoft.com> In-Reply-To: <20220104203824.2047-1-mikuback@linux.microsoft.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-version: 11.5.1.3 dlp-product: dlpe-windows dlp-reaction: no-action authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: c97013cd-8957-4090-d61f-08d9d1901641 x-ms-traffictypediagnostic: BN6PR11MB3953:EE_ x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:1227; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Ff1DU3AHV5KRAy/+s8TwFaFb4Va+PSnd6jGgPcBJV27WmT347e1o0oUrkHnccz+OpD8mH8MSIQ8r20I7swOJpv+qJtRsNtJIGcvoY12Loqzbd6gKDlxce9QKVrXOESwZdjx0Hx6i0IQMwRj6CLGYNAKINAxiyDyJVvNBpON6N1svkB9eEO9ts5LnYSk2qAtRluD8q9UaTGjvYfqTvs7Chwb/2RZrCybfzI4qTZolM/qIcnziOmFEIw0pB504t53N9wifvchz4F8n2NMxwNF/4ft3/dqcUjd8C6BN1VT8oWsEvgK/GhjV693BOjC1jwa5/KxWDNILAd3W2je4q7UIZK68tx92nrgCP8B9kLa+qd/4HUdI823wE4RohD9KDlfatUOWyUOaUxP970HNg75gnZ7nnOUzzUhZB+BEQ8naGgzORCBzW5UC0Kaam+GW17Q82KzrRMFoyIo7E2BhFWNn/RMGs5JHpT0AxJdVejbCEE6Xrd22BUERImMwXfj+lC30FXL3zetygkVaPcK4yA2aUPEVBygTkDovoQVpPgygFNNg9ra6UN8bfZlgbAaJRpEXgwej7z9JWd2VnGPEXBlh+VG/wzFCIL71CG+kOKFQw9AnyPMcEblFZZvejbFQ+xTOTI+m51XVo8gnA2VWta8Wd8AwNrA6DV05PgUBU0/82x6XWS6DYBLSHtT22wPQ7aMivJ+Plxn5K/y0Jm2W8LGiGZoIRfvpW5WO+IkCqCBlTf4= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:BN0PR11MB5696.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(366004)(508600001)(2906002)(71200400001)(4326008)(86362001)(316002)(55016003)(26005)(186003)(9686003)(53546011)(6506007)(107886003)(7696005)(15650500001)(33656002)(5660300002)(82960400001)(83380400001)(66946007)(38070700005)(8936002)(54906003)(8676002)(110136005)(76116006)(52536014)(64756008)(66556008)(66476007)(66446008)(122000001)(38100700002)(213903007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?VIPp4rcNZiBvj6/VYtdj8vISRjVdZ3jNK5z77vlAd8q5g6oFwJJ4ume6JCYU?= =?us-ascii?Q?zs7ilquRjY2aDNz2Lq3ko/NSxPuUnMPzeDTspxrGhgf8k/D3GKAlE0SUKBf9?= =?us-ascii?Q?PvIEqGIy7vNQn/Ljo/MZg+gbB77XovJ5Eew3SkaNkHhbWw2+xU2qOJqZIj8y?= =?us-ascii?Q?qfibUTx+ax0YqrO4B7x3TA4dZxXKnkIRZ9j6B/a01zuOIMNq1p6yS7DUE6os?= =?us-ascii?Q?NsveQJIX5UQoGFHfGvjZp4NLDd11DgNwRtBrm5O87fHyYMKlN30jG0QeL+J/?= =?us-ascii?Q?JLOtSwyE+naBaGB/hi1LSFgRiSsfDEimfWJnRbbw+PDHmQ7dxwWnZubJYvkA?= =?us-ascii?Q?lTQCsroY2LYMjZDmE7Jaq5E7/FinAhyOGkzk3h7jn8A2lnR2f4MdRIEuV+c1?= =?us-ascii?Q?7s5A4iJAeJRlFPZtaV1JvwT2wXQMS+knI+rwyZONWSnBXqtuSiDDK0PLUwYy?= =?us-ascii?Q?+WNl5LqNTbWfizaufolinNG9qWgPl8aUwC2P7F4gcV3bUkoBRiiwGRqI87Rf?= =?us-ascii?Q?NwUJrSFETPpGhLQuDAfKxCnYXFTQkScOGsWvOcSnrLrIihlH7TQ//YRRD6Y3?= =?us-ascii?Q?j08cou5opwpID0/TG7O2mPICKmSAzt44oQqp4IlV4GmHhNgn642oxbozE/52?= =?us-ascii?Q?6Kt7INfr2igK3MsIIoc1gYbtfhqrilLrCEyDkJAXFX45tar8UhZJ4HNZL4Q/?= =?us-ascii?Q?286Dy+iVCUL61TbBMUIpzf1QI1WriA++fik2owbJIvD+U/p4X9gi3IW9pH0U?= =?us-ascii?Q?jNkdix+RS+9cjsKlKfu8QsqCFTR6yfuH9CYlrS+c9K+WKW0f14KLTYTS52Qs?= =?us-ascii?Q?+HJxmX4L1PtRZNnWeagOJSECWfc7mNf6QlyjSfEB7Yk8BrWlzUyXtxk4iRn4?= =?us-ascii?Q?JjvGSAf3pSb9uCx5LXtAS79op+FmcBF4bM8HLE9XQovLLDb82Oraf3ilpF0k?= =?us-ascii?Q?O20iJ3arvF28zeQlgtrLeH7fQtpZ10WJB6BcGi4rpu2jD7jP8OyyrKWRJF92?= =?us-ascii?Q?fP2QKCrW37Fcmj3zmnHCLZQzWCmft1tLKfpeuhrYdaUmtfMSsiu6KVUnWErh?= =?us-ascii?Q?yxprfB0JzjBZeWeeqYK3u55JLEZESCacj35LBLIwq5hLlhDdI2ExlVuwgy9l?= =?us-ascii?Q?OwdcCQXxto+qxv0c0QwycOuGzWV1u4FpIo8MhMf/gJ+z2LZy4/Q5NQQLzGfb?= =?us-ascii?Q?ZASeZYsVo5MWwKbe1w18TSe0EpuFhTqrN1uQkYdcHseXtzjZMuOsSPtJcN8u?= =?us-ascii?Q?2aWD8nB6QwyoaiUD6zEpV0LeKFVXQHhYu4g4oVw+g2qvHVHBjXj9lXn0mcrM?= =?us-ascii?Q?cxTJcq2q6ycJfZE1LmZEjkuV6vHvOJJq9fnKXggj0PpS1Sh9D6GezfiBxk9n?= =?us-ascii?Q?mn+TkljHP8Vc3Y7LP+pnw5QcQbBQTSoFy1vntp1cjx+Z/dOyFSNBtidTEjoR?= =?us-ascii?Q?MqvILagDJMAojRdwg85Sf6bLCRC0O3ze1jYXnURSHFvhTes00WE8+U2qTca3?= =?us-ascii?Q?0COGy1GAtqRe5DpPIk0A8T97UOhjC2J7MuFJ1rYdEkDg6E5s8/Pa9JdileOt?= =?us-ascii?Q?7NAl4iyUIBoq+ANrLdSvyPgMJqvGbfIa/WCixPyYNbHAX39p3kGCx1oXUs5o?= =?us-ascii?Q?c2uQbbzgQfltofo9tHmERfo=3D?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN0PR11MB5696.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c97013cd-8957-4090-d61f-08d9d1901641 X-MS-Exchange-CrossTenant-originalarrivaltime: 07 Jan 2022 03:45:02.7607 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: xHxiDfULqYLJ4ij5ENJcVfmaRMunDLFLsIbWlZ49NxIVP5wFlNzQkXSmXtD8uFuciRhQX8D0gH0TxoSnIYvfEw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR11MB3953 Return-Path: guomin.jiang@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Reviewed-by: Guomin Jiang Guomin > -----Original Message----- > From: mikuback@linux.microsoft.com > Sent: Wednesday, January 5, 2022 4:38 AM > To: devel@edk2.groups.io > Cc: Gao, Liming ; Kinney, Michael D > ; Jiang, Guomin ; > Xu, Wei6 > Subject: [PATCH v1 1/1] FmpDevicePkg/FmpDxe: Update > FmpDeviceCheckImageWithStatus() handling >=20 > From: Michael Kubacki >=20 > Update the logic handling last attempt status codes from > FmpDeviceCheckImageWithStatus() implementations to account for cases > when the function return status code is EFI_SUCCESS (since the image was > checked successfully) but the ImageUpdatable value is not valid. >=20 > In addition the following sentence is removed from the LastAttemptStatus > parameter definition for > FmpDeviceCheckImageWithStatus() since it can lead to confusion. > The expected status code value range is sufficient to implement the libra= ry > API. >=20 > "This value will only be checked when this > function returns an error." >=20 > Cc: Liming Gao > Cc: Michael D Kinney > Cc: Guomin Jiang > Cc: Wei6 Xu > Signed-off-by: Michael Kubacki > --- > FmpDevicePkg/FmpDxe/FmpDxe.c | 23 ++++++++++++++= +----- > FmpDevicePkg/Library/FmpDeviceLibNull/FmpDeviceLib.c | 3 +-- > FmpDevicePkg/Include/Library/FmpDeviceLib.h | 3 +-- > 3 files changed, 19 insertions(+), 10 deletions(-) >=20 > diff --git a/FmpDevicePkg/FmpDxe/FmpDxe.c > b/FmpDevicePkg/FmpDxe/FmpDxe.c index 197df28c8dd6..1e7ec4a09e16 > 100644 > --- a/FmpDevicePkg/FmpDxe/FmpDxe.c > +++ b/FmpDevicePkg/FmpDxe/FmpDxe.c > @@ -1040,8 +1040,19 @@ CheckTheImageInternal ( > // > Status =3D FmpDeviceCheckImageWithStatus ((((UINT8 *)Image) + > AllHeaderSize), RawSize, ImageUpdatable, LastAttemptStatus); > if (EFI_ERROR (Status)) { > + // The image cannot be valid if an error occurred checking the image > + if (*ImageUpdatable =3D=3D IMAGE_UPDATABLE_VALID) { > + *ImageUpdatable =3D IMAGE_UPDATABLE_INVALID; > + } > + > DEBUG ((DEBUG_ERROR, "FmpDxe(%s): CheckTheImage() - FmpDeviceLib > CheckImage failed. Status =3D %r\n", mImageIdName, Status)); > + } >=20 > + // > + // Only validate the library last attempt status code if the image is = not > updatable. > + // This specifically avoids converting LAST_ATTEMPT_STATUS_SUCCESS if = it > set for an updatable image. > + // > + if (*ImageUpdatable !=3D IMAGE_UPDATABLE_VALID) { > // > // LastAttemptStatus returned from the device library should fall wi= thin > the designated error range > // [LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MIN_ERROR_CODE_VALUE, > LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MAX_ERROR_CODE_VALUE] > @@ -1049,12 +1060,12 @@ CheckTheImageInternal ( > if ((*LastAttemptStatus < > LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MIN_ERROR_CODE_VALUE) || > (*LastAttemptStatus > > LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MAX_ERROR_CODE_VALUE)) > { > - DEBUG ( > - (DEBUG_ERROR, > - "FmpDxe(%s): CheckTheImage() - LastAttemptStatus %d from > FmpDeviceCheckImageWithStatus() is invalid.\n", > - mImageIdName, > - *LastAttemptStatus) > - ); > + DEBUG (( > + DEBUG_ERROR, > + "FmpDxe(%s): CheckTheImage() - LastAttemptStatus %d from > FmpDeviceCheckImageWithStatus() is invalid.\n", > + mImageIdName, > + *LastAttemptStatus > + )); > *LastAttemptStatus =3D LAST_ATTEMPT_STATUS_ERROR_UNSUCCESSFUL; > } > } > diff --git a/FmpDevicePkg/Library/FmpDeviceLibNull/FmpDeviceLib.c > b/FmpDevicePkg/Library/FmpDeviceLibNull/FmpDeviceLib.c > index 2e5c17b2b0f9..82219e87a430 100644 > --- a/FmpDevicePkg/Library/FmpDeviceLibNull/FmpDeviceLib.c > +++ b/FmpDevicePkg/Library/FmpDeviceLibNull/FmpDeviceLib.c > @@ -434,8 +434,7 @@ FmpDeviceCheckImage ( > IMAGE_UPDATABLE_VALID_WITH_VENDOR_CO= DE > @param[out] LastAttemptStatus A pointer to a UINT32 that holds the l= ast > attempt > status to report back to the ESRT tabl= e in case > - of error. This value will only be chec= ked when this > - function returns an error. > + of error. >=20 > The return status code must fall in th= e range of >=20 > LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MIN_ERROR_CODE_VALUE to > diff --git a/FmpDevicePkg/Include/Library/FmpDeviceLib.h > b/FmpDevicePkg/Include/Library/FmpDeviceLib.h > index a14406abe8b5..f82ef64503fa 100644 > --- a/FmpDevicePkg/Include/Library/FmpDeviceLib.h > +++ b/FmpDevicePkg/Include/Library/FmpDeviceLib.h > @@ -421,8 +421,7 @@ FmpDeviceCheckImage ( > IMAGE_UPDATABLE_VALID_WITH_VENDOR_CO= DE > @param[out] LastAttemptStatus A pointer to a UINT32 that holds the l= ast > attempt > status to report back to the ESRT tabl= e in case > - of error. This value will only be chec= ked when this > - function returns an error. > + of error. >=20 > The return status code must fall in th= e range of >=20 > LAST_ATTEMPT_STATUS_DEVICE_LIBRARY_MIN_ERROR_CODE_VALUE to > -- > 2.28.0.windows.1