From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 8EF8C43898; Fri, 12 Jan 2024 02:19:12 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0CAA84025E; Fri, 12 Jan 2024 02:19:12 +0100 (CET) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2100.outbound.protection.outlook.com [40.107.236.100]) by mails.dpdk.org (Postfix) with ESMTP id DB6B34014F; Fri, 12 Jan 2024 02:19:09 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=G03YtuFYudzbEauYEey1uWtRWKSJMRLAaDQs8S7ukqILb8PCNzjdKb9WMfVgvE2XDWF7owWomwNRrdVNnFiigXWZ1LKeHazjJlA/bM2foIBpTEZhwtsdfDjkt4xdPEFvXXoXK52srraKIA731l12HTbhp93jVunh96iHEnIx5byXSSBfPE/0qjoXAKI6CZaL+z1qAY7Jq4XQNpesHYVYiHpNGvZU7jVxkJ95t4rDgXqVOPGkcr3GjI+G0ZeWAcaA+lMDLOq4RF4C5i4WTwj2+7jWeFBBX5MXg6h7CEyh53RLhVwkhsNP10w/f0uowAwBkiYbPYB5jTCDpF8NqytQaQ== 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=derbsPcW1e4QTEPyD6bH82meh3qC4KGDbxb/V5kFNEg=; b=gP4AjMSDAAels1PnMC5yXxsZ9+7Yz2TE0DfZp/OSrrNihvrsW+7YReaOpTqn7n3QNaj7tJ5yG2JcB/DR43My4F7IJPPdlt4LtUPwFgTK22FlCKWoWcqWGY3UuTfGL5AC33vFXmQ9Ak9ThDwLfUKgo00Y41CVyTOgCrjHAWZog9QEOzDAy181V/GmUnPfqdA9ZBJiIKb7jMW7Soe2QyO2R0DhaPSEfbhtWA4h/sACSdX/cPVan+3NRll0PC1sEXyPTfnQoLaYuEjdYwAkcx0RHANsWv6GiMMOB7/X/J4vWDmbEUAY4bSVxhnokBQB70hhoTylXmC/Z/COHtnrPtkqbw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=derbsPcW1e4QTEPyD6bH82meh3qC4KGDbxb/V5kFNEg=; b=Dl9b/TI6Xde4Fe38ZlVea97XlujwnOfSiZdaG1YKgi8QF2isANMgrnW8H/RvpY6spSH7viSoP4aDeFdTot2WOwf/VEKkr9mjDoPh+rOxP63+E7XPtBrOrCoMvrBVJcMkkKg90LO81/B1fFPHiJeWPh+5Vse2xq0Jv8hXvI/zWwY= Received: from SJ0PR13MB5545.namprd13.prod.outlook.com (2603:10b6:a03:424::5) by PH0PR13MB4905.namprd13.prod.outlook.com (2603:10b6:510:77::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7181.19; Fri, 12 Jan 2024 01:19:06 +0000 Received: from SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::8e02:f738:570a:f8aa]) by SJ0PR13MB5545.namprd13.prod.outlook.com ([fe80::8e02:f738:570a:f8aa%6]) with mapi id 15.20.7181.015; Fri, 12 Jan 2024 01:19:05 +0000 From: Chaoyong He To: Ferruh Yigit , "dev@dpdk.org" CC: oss-drivers , Long Wu , "stable@dpdk.org" , Nole Zhang Subject: RE: [PATCH 2/3] net/nfp: fix free resource problem Thread-Topic: [PATCH 2/3] net/nfp: fix free resource problem Thread-Index: AQHaLnfFNqI/9sZEd06VCuEOI7vxTbCqTrgAgAP6/KCAIevrAIABDmqAgACnEoCAAhk9AIAAs0GAgADUa7A= Date: Fri, 12 Jan 2024 01:19:05 +0000 Message-ID: References: <20231214102431.2091608-1-chaoyong.he@corigine.com> <20231214102431.2091608-3-chaoyong.he@corigine.com> <0a5a69d7-2d2e-4a0e-9d29-18ec856b5be2@amd.com> <7905a240-7457-4986-8afe-959d57462d94@amd.com> <7d82a8f0-25d4-4d58-b765-3bd22f2254e3@amd.com> In-Reply-To: <7d82a8f0-25d4-4d58-b765-3bd22f2254e3@amd.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SJ0PR13MB5545:EE_|PH0PR13MB4905:EE_ x-ms-office365-filtering-correlation-id: 2250e89f-3b18-41fd-e4f4-08dc130c7827 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: aZU3xr55TB28clpP8PAWyjuVQh64WCsEQC4w2UQlcaQaL3BKzJKOQIOq/K8VUg3KE8P/nukCk3w4uxdMosscpdKokkZS+E484ZHnmBy3zPCnZgizjMlFgMiSSk8MViEA1ZW0Nm+pPLXmSygfRYmhjUAYV7mIHxm0aYeyAxt+Xt/Om3XCud0I6Vi+dr5KJXQONF1VtzieaWD3nx6SnSyFvCrkW12oEBz/PBAyoPa8Sj75THod3M0Qx0ETJhdSI6Jj0dq0HOj5OWiTtB6fWbfKlipnseX2hJhquT0Mcnvc4Rg9uQLqygUN382W6tBr4ixsxv+qMLWpqMv3hKKkXBzPG+HVXeYgM1JCcBcBbxKV9S7ew4giKJHlq7B4vIN4Sq9+vUk4SnFRbJinNjX5SA3gzHsFhP+ekDX/z1517d1wBYm9JOOkjCLd/Dy2OoIwfPBdHlpU3ShUM03YvwwmjEGhUcN8to07SlK15Y+255AGJp4XFd10TrcCCh/KQeCLOTJb9XV4SldL7eiwY5TZlrOiWYTvXZq5caxbRuOHIsINWT8YHUr1yKprPjjhxKzXFk9kp922//aULdgEkMUlfzApVOGzvk1ovBzUoj5UW5bor3rNdPGJEG2vOTJ+iLmSo0mq x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SJ0PR13MB5545.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(396003)(136003)(366004)(346002)(39840400004)(376002)(230922051799003)(1800799012)(186009)(451199024)(64100799003)(64756008)(122000001)(66476007)(66946007)(110136005)(478600001)(33656002)(86362001)(71200400001)(76116006)(66446008)(66556008)(7696005)(6506007)(5660300002)(38100700002)(107886003)(53546011)(9686003)(52536014)(4326008)(44832011)(54906003)(8936002)(8676002)(316002)(83380400001)(55016003)(41300700001)(2906002)(38070700009); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?UzNDSkFJZGREQU11d0JyVUFEYVozSEdLMnNIOVpYRjZzYzFwVTFwcUFyV2Fu?= =?utf-8?B?WDk5aDFnRDRQdFkwYUV5ZnE2Ujd4azJ2NlpvaFprRy9lRFN5NDRlL09XMGdI?= =?utf-8?B?cUI0TENFbmlGZFAxWDhQeCtpd3FiQTl0dzRmbCtDQytNS3RuLzY4MmdPYkNk?= =?utf-8?B?eDRlMEtVMm1Cd1Z1dFNvOHJIbGRlTVdFMWxudUxCcVR1cTFmOEE1SVBoWWFS?= =?utf-8?B?cm5zaXlXUmt0R0U2TnBoci9Na3ZaRGFLSzc0cURpcmx4WlJ4eUZ0WlBMZGlv?= =?utf-8?B?dWFVZGp4THJ6eHZLVFhQVU95TzA2QTYxZEpSSTFwY2VBTEpwcUxZYy9ZVmUx?= =?utf-8?B?Qi9rRXd5dTlQQzFFZ0l3M2JJM0pBaGFkYjJscXRZZE1xclMvd1pWNlI4TDVy?= =?utf-8?B?ZnFEbGtHdWdXRlJ4bkVnSXV5RDZwOFB5UHdYaHhmQXlDY2IyMldpN0kxV25H?= =?utf-8?B?eU1EaDlXT2tabFNrMlIrdVUvVjIwZHZKVldWYjlwMStIUUdvQ0ZLbUs0dVds?= =?utf-8?B?SHdpWk81Q21HVjFCb2FYNmdndmhVWko5NXV0Wi9MUzdUMkRFa3RINldUOHNy?= =?utf-8?B?bUZFdDNqQjhnSDArR1Rad044eFMrQXM3SkhxcTUxMGRiR1NRY04xcjdKcUo5?= =?utf-8?B?TjIzNjkya2NQL0pHS1hUWko0cXNWdUt2SzBsV1EyLzFEYXhaK3J5SHoxbFh2?= =?utf-8?B?VURBR3oyWE96OU9tT25PeVBXNzEvZCtOZGN2OXFrVGFtblltenRlaW5iZmg5?= =?utf-8?B?RWdRbVYvaDVaNUVSbDUyWUNkVmVMV2h2bkMrTm5GSDVKeTR1SGwvN2I0ek9M?= =?utf-8?B?YUtEanBZQ25HcTdzMGtreDZyS0xJaUdUQ1hrVnFNWWVMUGIzVnRSSXpFTFNS?= =?utf-8?B?SGtpZmNYbXI0K3BJVFNHT1pyUmtzYmxNdjJrZ2kxempDbC96NHdBdkhqdHlW?= =?utf-8?B?OVhBV2RLRmJHRHREYzdYUzNYVUZHTjBNWW4vMFJTaTlxaVRaQW9XN1Z3dm9r?= =?utf-8?B?ZUJkT2hhSk5SRFZuNjJYYldUYjZRNkx3ZUdYUXNvckJReHplWmgwUEdmZEdR?= =?utf-8?B?eVJEcnZUV0QyTEl3Ym9MdjU1aGZkMy9yN3NCT1M1ZmEyay9LWkJsWGQ2SUpy?= =?utf-8?B?QjBpMGJGY0RSM2RiRGpsdnJkTnkxUjZ3RG90Z1hSVFY2S2pseEU0ODMyNk0x?= =?utf-8?B?Zi9mOHJVNU1SYXZOQ0FSa0tCdll4YXVIQmVWWktOVUxJVGFKSG9XeStXQktY?= =?utf-8?B?SHQ0bUh4Ylk0ZmI0NEtybHhhenE1a1pvd2dydXhGV2lzc2IydkFrTXpKZjV4?= =?utf-8?B?SFFqMkh5MFlleGRZNHpBM1BLdmlNWUlpaTNzd2Y0NFlHMlEwMUFWWmFaSFI0?= =?utf-8?B?Y2xYOVMzSFZTWTNDSER3ODNGQ0xzbG1LMEEzamFLWW1KY25uZWZKRll5ZjU0?= =?utf-8?B?dGtZaVdaMzl1WVIrZERCdytHSWtCb1M4TWZocGUrcDV4S2FDYnhvZWlqSWVt?= =?utf-8?B?VjhXaDhSQWM3azFPdTVObDFNQzBYdlZia3lxY245SS91bEI3VEY5N2ZFTlh1?= =?utf-8?B?RGFOa0dFaE11UndJOXlwemtkNEhzZjJzSHh1cUpoS2NLUzhvMEZwR0ZYZkR2?= =?utf-8?B?bGNSUEpLOXVhOUFPM083dHhQaGwycHhhZTN1Smx6Yms0eTVHUW1pMFlvVlJs?= =?utf-8?B?d3Q3U1JLa2ZCb0xaZXlseWYyVHdTOG9vbFFmUjlocnNuQk9TbnV1Y0wzTEgz?= =?utf-8?B?bzJUQ2s2UlhXMEUvcGt6TnRIWURBUDFIQVkyT2VTVitUODJvSGNpdzhyeWdD?= =?utf-8?B?em1meUJOdkRKMkRGa01YYy91NmZZS0xralQzc2FlamdteEU1cUpjQWNIdjhi?= =?utf-8?B?THYzTzliZkYvUXFhbjR4M2EzR3VYZ00zL3EyTE9uOUNYY2dtaWNhcWNSaG9i?= =?utf-8?B?K1lPc21oYmYvR2djYkJ4TXdvQk5sSXNxTjVqRW12NjBsUlZiS1FqRkY5ellj?= =?utf-8?B?eWh0RFNEWnRPV2l2Q2twbEdzdWkxTnppNVAyenhYMmRsQUxJa2VPank3c0JP?= =?utf-8?B?UGQvZWV2dGxHeGtSQ1diVklIUm5kb2FWVlU1VTlPVHJ5b0cvQWdaZ09BcDV0?= =?utf-8?Q?fx80=3D?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SJ0PR13MB5545.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2250e89f-3b18-41fd-e4f4-08dc130c7827 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jan 2024 01:19:05.6136 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: bh4DdBzq0TxJuxCeReXVHfkYhi41ADYIZpzPrea29D7DmWvCPbLaE9j74hQ4YDtS4s4rqwZQj57OvZEKs0ciRDW2Oz75mQwP6+neaTOmjXU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR13MB4905 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org PiBPbiAxLzExLzIwMjQgMjowMiBBTSwgQ2hhb3lvbmcgSGUgd3JvdGU6DQo+ID4+IE9uIDEvOS8y MDI0IDc6NTYgQU0sIENoYW95b25nIEhlIHdyb3RlOg0KPiA+Pj4+IE9uIDEyLzE4LzIwMjMgMTo1 MCBBTSwgQ2hhb3lvbmcgSGUgd3JvdGU6DQo+ID4+Pj4+PiBPbiAxMi8xNC8yMDIzIDEwOjI0IEFN LCBDaGFveW9uZyBIZSB3cm90ZToNCj4gPj4+Pj4+PiBGcm9tOiBMb25nIFd1IDxsb25nLnd1QGNv cmlnaW5lLmNvbT4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IFNldCB0aGUgcmVwcmVzZW50b3IgYXJy YXkgdG8gTlVMTCB0byBhdm9pZCB0aGF0IGNsb3NlIGludGVyZmFjZQ0KPiA+Pj4+Pj4+IGRvZXMg bm90IGZyZWUgc29tZSByZXNvdXJjZS4NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IEZpeGVzOiBhMTM1 YmMxNjQ0ZDYgKCJuZXQvbmZwOiBmaXggcmVzb3VyY2UgbGVhayBmb3IgZmxvd2VyDQo+ID4+Pj4+ Pj4gZmlybXdhcmUiKQ0KPiA+Pj4+Pj4+IENjOiBjaGFveW9uZy5oZUBjb3JpZ2luZS5jb20NCj4g Pj4+Pj4+PiBDYzogc3RhYmxlQGRwZGsub3JnDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiBTaWduZWQt b2ZmLWJ5OiBMb25nIFd1IDxsb25nLnd1QGNvcmlnaW5lLmNvbT4NCj4gPj4+Pj4+PiBSZXZpZXdl ZC1ieTogQ2hhb3lvbmcgSGUgPGNoYW95b25nLmhlQGNvcmlnaW5lLmNvbT4NCj4gPj4+Pj4+PiBS ZXZpZXdlZC1ieTogUGVuZyBaaGFuZyA8cGVuZy56aGFuZ0Bjb3JpZ2luZS5jb20+DQo+ID4+Pj4+ Pj4gLS0tDQo+ID4+Pj4+Pj4gIGRyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlcl9yZXBy ZXNlbnRvci5jIHwgMTUNCj4gPj4+Pj4+PiArKysrKysrKysrKysrKy0NCj4gPj4+Pj4+PiAgMSBm aWxlIGNoYW5nZWQsIDE0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkNCj4gPj4+Pj4+Pg0K PiA+Pj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9uZnAvZmxvd2VyL25mcF9mbG93ZXJf cmVwcmVzZW50b3IuYw0KPiA+Pj4+Pj4+IGIvZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9uZnBfZmxv d2VyX3JlcHJlc2VudG9yLmMNCj4gPj4+Pj4+PiBpbmRleCAyN2VhMzg5MWJkLi41ZjdjMWZhNzM3 IDEwMDY0NA0KPiA+Pj4+Pj4+IC0tLSBhL2RyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dl cl9yZXByZXNlbnRvci5jDQo+ID4+Pj4+Pj4gKysrIGIvZHJpdmVycy9uZXQvbmZwL2Zsb3dlci9u ZnBfZmxvd2VyX3JlcHJlc2VudG9yLmMNCj4gPj4+Pj4+PiBAQCAtMjk0LDE3ICsyOTQsMzAgQEAg bmZwX2Zsb3dlcl9yZXByX3R4X2J1cnN0KHZvaWQNCj4gKnR4X3F1ZXVlLA0KPiA+Pj4+Pj4+IHN0 YXRpYyBpbnQgIG5mcF9mbG93ZXJfcmVwcl91bmluaXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhf ZGV2KQ0KPiA+Pj4+Pj4+IHsNCj4gPj4+Pj4+PiArCXVpbnQxNl90IGluZGV4Ow0KPiA+Pj4+Pj4+ ICAJc3RydWN0IG5mcF9mbG93ZXJfcmVwcmVzZW50b3IgKnJlcHI7DQo+ID4+Pj4+Pj4NCj4gPj4+ Pj4+PiAgCXJlcHIgPSBldGhfZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZTsNCj4gPj4+Pj4+PiAgCXJ0 ZV9yaW5nX2ZyZWUocmVwci0+cmluZyk7DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiArCWlmIChyZXBy LT5yZXByX3R5cGUgPT0gTkZQX1JFUFJfVFlQRV9QSFlTX1BPUlQpIHsNCj4gPj4+Pj4+PiArCQlp bmRleCA9DQo+IE5GUF9GTE9XRVJfQ01TR19QT1JUX1BIWVNfUE9SVF9OVU0ocmVwci0NCj4gPj4+ Pj4+PiBwb3J0X2lkKTsNCj4gPj4+Pj4+PiArCQlyZXByLT5hcHBfZndfZmxvd2VyLT5waHlfcmVw cnNbaW5kZXhdID0gTlVMTDsNCj4gPj4+Pj4+PiArCX0gZWxzZSB7DQo+ID4+Pj4+Pj4gKwkJaW5k ZXggPSByZXByLT52Zl9pZDsNCj4gPj4+Pj4+PiArCQlyZXByLT5hcHBfZndfZmxvd2VyLT52Zl9y ZXByc1tpbmRleF0gPSBOVUxMOw0KPiA+Pj4+Pj4+ICsJfQ0KPiA+Pj4+Pj4+ICsNCj4gPj4+Pj4+ PiAgCXJldHVybiAwOw0KPiA+Pj4+Pj4+ICB9DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiAgc3RhdGlj IGludA0KPiA+Pj4+Pj4+IC1uZnBfZmxvd2VyX3BmX3JlcHJfdW5pbml0KF9fcnRlX3VudXNlZCBz dHJ1Y3QgcnRlX2V0aF9kZXYNCj4gPj4+Pj4+PiAqZXRoX2RldikNCj4gPj4+Pj4+PiArbmZwX2Zs b3dlcl9wZl9yZXByX3VuaW5pdChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYpDQo+ID4+Pj4+ Pj4gIHsNCj4gPj4+Pj4+PiArCXN0cnVjdCBuZnBfZmxvd2VyX3JlcHJlc2VudG9yICpyZXByID0N Cj4gPj4+Pj4+PiArZXRoX2Rldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ID4+Pj4+Pj4gKw0KPiA+ Pj4+Pj4+ICsJcmVwci0+YXBwX2Z3X2Zsb3dlci0+cGZfcmVwciA9IE5VTEw7DQo+ID4+Pj4+Pj4N Cj4gPj4+Pj4+DQo+ID4+Pj4+PiBIZXJlIGl0IGlzIGFzc2lnbmVkIHRvIE5VTEwgYnV0IGlzIGl0 IGZyZWVkPyBJZiBmcmVlZCwgd2h5IG5vdA0KPiA+Pj4+Pj4gc2V0IHRvIE5VTEwgd2hlcmUgaXQg aXMgZnJlZWQ/DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gU2FtZSBmb3IgYWJvdmUgcGh5X3JlcHJzICYg dmZfcmVwcnMuDQo+ID4+Pj4+DQo+ID4+Pj4+IFRoZSB3aG9sZSBpbnZva2UgdmlldzoNCj4gPj4+ Pj4gcnRlX2V0aF9kZXZfY2xvc2UoKQ0KPiA+Pj4+PiAgICAgLS0+IG5mcF9mbG93ZXJfcmVwcl9k ZXZfY2xvc2UoKQ0KPiA+Pj4+PiAgICAgICAgIC0tPiBuZnBfZmxvd2VyX3JlcHJfZnJlZSgpDQo+ ID4+Pj4+ICAgICAgICAgICAgIC0tPiBuZnBfZmxvd2VyX3BmX3JlcHJfdW5pbml0KCkNCj4gPj4+ Pj4gICAgICAgICAgICAgLS0+IG5mcF9mbG93ZXJfcmVwcl91bmluaXQoKQ0KPiA+Pj4+PiAgICAg ICAgICAgIC8vIEluIHRoZXNlIHR3byBmdW5jdGlvbnMsIHdlIGp1c3QgYXNzaWduZWQgdG8gTlVM TCBidXQNCj4gPj4+Pj4gbm90IGZyZWVkDQo+ID4+IHlldC4NCj4gPj4+Pj4gICAgICAgICAgICAv LyBJdCBpcyBzdGlsbCByZWZlciBieSB0aGUgYGV0aF9kZXYtPmRhdGEtPmRldl9wcml2YXRlYC4N Cj4gPj4+Pj4gICAgIC0tPiBydGVfZXRoX2Rldl9yZWxlYXNlX3BvcnQoKQ0KPiA+Pj4+PiAgICAg ICAgIC0tPiBydGVfZnJlZShldGhfZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7DQo+ID4+Pj4+ICAg ICAgICAgLy8gQW5kIGhlcmUgaXQgaXMgcmVhbGx5IGZyZWVkIChieSB0aGUgcnRlIGZyYW1ld29y aykuDQo+ID4+Pj4+DQo+ID4+Pj4NCj4gPj4+PiAncnRlX2V0aF9kZXZfcmVsZWFzZV9wb3J0KCkn IGZyZWVzIHRoZSBkZXZpY2UgcHJpdmF0ZSBkYXRhLCBidXQgbm90DQo+ID4+Pj4gYWxsIHBvaW50 ZXJzLCBsaWtlICdyZXByLT5hcHBfZndfZmxvd2VyLT5wZl9yZXByJywgaW4gdGhlIHN0cnVjdA0K PiA+Pj4+IGFyZSBmcmVlZCwgaXQgaXMgZGV2X2Nsb3NlKCkgb3INCj4gPj4+PiB1bmludCgpIGZ1 bmN0aW9ucyByZXNwb25zaWJpbGl0eS4NCj4gPj4+Pg0KPiA+Pj4+IENhbiB5b3UgcGxlYXNlIGRv dWJsZSBjaGVjayBpZg0KPiA+Pj4+ICdldGhfZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZS0+YXBwX2Z3 X2Zsb3dlci0+cGZfcmVwcicgZnJlZWQgb3Igbm90Pw0KPiA+Pj4NCj4gPj4+IChnZGIpIGIgbmZw X2Zsb3dlcl9yZXByX2Rldl9jbG9zZQ0KPiA+Pj4gQnJlYWtwb2ludCAxIGF0IDB4N2Y4MzlhNGFk MzdmOg0KPiA+PiBmaWxlIC4uL2RyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zsb3dlcl9yZXBy ZXNlbnRvci5jLCBsaW5lIDM1Ni4NCj4gPj4+IChnZGIpIGMNCj4gPj4+IENvbnRpbnVpbmcuDQo+ ID4+Pg0KPiA+Pj4gVGhyZWFkIDEgImRwZGstdGVzdHBtZCIgaGl0IEJyZWFrcG9pbnQgMSwgbmZw X2Zsb3dlcl9yZXByX2Rldl9jbG9zZQ0KPiA+PiAoZGV2PTB4N2Y4MzlhZWQyMzQwIDxydGVfZXRo X2RldmljZXM+KQ0KPiA+Pj4gICAgIGF0IC4uL2RyaXZlcnMvbmV0L25mcC9mbG93ZXIvbmZwX2Zs b3dlcl9yZXByZXNlbnRvci5jOjM1Ng0KPiA+Pj4gMzU2ICAgICAgICAgICAgIGlmIChydGVfZWFs X3Byb2Nlc3NfdHlwZSgpICE9IFJURV9QUk9DX1BSSU1BUlkpDQo+ID4+PiAoZ2RiKSBuDQo+ID4+ PiAzNTkgICAgICAgICAgICAgcmVwciA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ID4+PiAo Z2RiKQ0KPiA+Pj4gMzYwICAgICAgICAgICAgIGFwcF9md19mbG93ZXIgPSByZXByLT5hcHBfZndf Zmxvd2VyOw0KPiA+Pj4gKGdkYikNCj4gPj4+IDM2MSAgICAgICAgICAgICBodyA9IGFwcF9md19m bG93ZXItPnBmX2h3Ow0KPiA+Pj4gKGdkYikNCj4gPj4+IDM2MiAgICAgICAgICAgICBwZl9kZXYg PSBody0+cGZfZGV2Ow0KPiA+Pj4gKGdkYikNCj4gPj4+IDM2OCAgICAgICAgICAgICBuZnBfbmV0 X2Rpc2FibGVfcXVldWVzKGRldik7DQo+ID4+PiAoZ2RiKSBwIHJlcHINCj4gPj4+ICQxID0gKHN0 cnVjdCBuZnBfZmxvd2VyX3JlcHJlc2VudG9yICopIDB4MTdjNDljODAwDQo+ID4+PiAoZ2RiKSBw IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUNCj4gPj4+ICQyID0gKHZvaWQgKikgMHgxN2M0OWM4MDAN Cj4gPj4+IChnZGIpIHAgcmVwci0+YXBwX2Z3X2Zsb3dlci0+cGZfcmVwcg0KPiA+Pj4gJDMgPSAo c3RydWN0IG5mcF9mbG93ZXJfcmVwcmVzZW50b3IgKikgMHgxN2M0OWM4MDANCj4gPj4+DQo+ID4+ PiBBcyB3ZSBjYW4gc2VlLCB0aGVzZSB0aHJlZSBwb2ludGVycyBwb2ludCB0aGUgc2FtZSBibG9j ayBvZiBtZW1vcnkuDQo+ID4+Pg0KPiA+Pg0KPiA+PiBBaGgsIEkgbWlzc2VkIHRoYXQgJ3JlcHIt PmFwcF9md19mbG93ZXItPnBmX3JlcHInIHBvaW50cyB0bw0KPiA+PiAnZGV2X3ByaXZhdGUnLCBz byB5b3VyIGNvZGUgbWFrZXMgc2Vuc2UuDQo+ID4+DQo+ID4+IEJ1dCBpZiBpdCBpcyAnZGV2X3By aXZhdGUnLCB3aHkgZnJlZSBpdCBpbiAnbmZwX3BmX3VuaW5pdCgpJyBhcyBpdA0KPiA+PiB3aWxs IGJlIGZyZWVkIGJ5ICdydGVfZXRoX2Rldl9yZWxlYXNlX3BvcnQoKSc/DQo+ID4NCj4gPiBTb3Jy eSwgSSdtIG5vdCB1bmRlcnN0YW5kaW5nIHRoaXMuDQo+ID4gVGhlICdkZXZfcHJpdmF0ZScgaXMg YSAnc3RydWN0IG5mcF9mbG93ZXJfcmVwcmVzZW50b3IgKicsIGFuZCBpdCB3aWxsIGJlIGZyZWVk IGluDQo+ICdydGVfZXRoX2Rldl9yZWxlYXNlX3BvcnQoKScuDQo+ID4gV2hhdCBJIGZyZWVkIGlu ICduZnBfcGZfdW5pbml0KCknIGlzIGEgJ3N0cnVjdCBuZnBfcGZfZGV2IConLCBzbyBJJ20gbm90 IGNhdGNoDQo+IHlvdXIgcG9pbnQgYWJvdXQgdGhpcy4NCj4gPg0KPiA+PiBXb24ndCByZW1vdmlu ZyAncnRlX2ZyZWUocGZfZGV2KTsnIGZyb20gJ25mcF9wZl91bmluaXQoKScgd2lsbCBoYXZlDQo+ ID4+IHRoZSBzYW1lIGVmZmVjdCwgaW5zdGVhZCBvZiBzZXR0aW5nIGl0IE5VTEwgaW4gYWR2YW5j ZT8NCj4gPj4NCj4gPg0KPiA+IElmIEkgcmVtb3ZlIHRoZSAncnRlX2ZyZWUocGZfZGV2KTsnIGZy b20gJ25mcF9wZl91bmluaXQoKScsIHRoZXJlIHdpbGwgYmUgYQ0KPiBtZW1vcnkgbGVhayBhcyBu byBvbmUgd2lsbCBmcmVlIGl0LCBhbmQgYWN0dWFsbHkgSSdtIG5vdCAnc2V0dGluZyBpdCBOVUxM IGluDQo+IGFkdmFuY2UnLg0KPiA+DQo+ID4gMzU5ICAgICAgICAgICAgIHJlcHIgPSBkZXYtPmRh dGEtPmRldl9wcml2YXRlOw0KPiA+IDM2MCAgICAgICAgICAgICBhcHBfZndfZmxvd2VyID0gcmVw ci0+YXBwX2Z3X2Zsb3dlcjsNCj4gPiAzNjEgICAgICAgICAgICAgaHcgPSBhcHBfZndfZmxvd2Vy LT5wZl9odzsNCj4gPiAzNjIgICAgICAgICAgICAgcGZfZGV2ID0gaHctPnBmX2RldjsNCj4gPg0K PiA+IE1heWJlIHlvdSBqdXN0IGNvbmZ1c2UgdGhlICdwZl9yZXByJyBhbmQgJ3BmX2Rldic/IEp1 c3QgYSBndWVzcy4NCj4gPg0KPiANCj4gWWVzIEkgZGlkIGNvbmZ1c2UgdGhvc2UgdHdvLCBzb3Jy eSBhYm91dCB0aGF0Lg0KPiANCj4gJ3JlcHItPmFwcF9md19mbG93ZXItPnBmX3JlcHInIGlzICdk ZXZfcHJpdmF0ZScsIGFuZCBJIGFzc3VtZWQgeW91IGFyZSBzZXR0aW5nDQo+IGl0IE5VTEwgdG8g ZXNjYXBlIGZyb20gZG91YmxlIGZyZWUgKGFuZCB3YXMgY2hlY2tpbmcgd2hlcmUgdGhhdCBkb3Vi bGUgZnJlZQ0KPiBoYXBwZW5zKSwgYnV0IEkgZ3Vlc3MgdGhhdCBpcyBub3QgdGhlIGNhc2UuDQo+ IA0KPiAncnRlX2V0aF9kZXZfZGVzdHJveSgpJyBjYWxscyAncnRlX2V0aF9kZXZfcmVsZWFzZV9w b3J0KCknIGFuZCBmcmVlcw0KPiAnZGV2X3ByaXZhdGUnIGJ1dCAncmVwci0+YXBwX2Z3X2Zsb3dl ci0+cGZfcmVwcicgcmVtYWlucyBhcyBkYW5nbGluZyBwb2ludGVyDQo+IGFuZCBwZXJoYXBzIHBy ZXZlbnRzICduZnBfZmxvd2VyX3JlcHJfZGV2X2Nsb3NlKCknIG1vdmUgZm9yd2FyZCAoYmVjYXVz ZQ0KPiBvZiAiaWYgKGFwcF9md19mbG93ZXItPnBmX3JlcHIgIT0gTlVMTCkiIGNoZWNrKSwgYW5k IHlvdSBhcmUgZml4aW5nIGl0LCBpcyBpdCB0aGUNCj4gY2FzZT8NCg0KQ29ycmVjdCwgdGhhdCdz IHdoYXQgd2Ugd2FudCB0byBkbyBieSB0aGlzIHBhdGNoIGFuZCB3aGVyZSB0aGUgcHJvYmxlbSBp cywgeW91ciBkZXNjcmlwdGlvbiBpcyB2ZXJ5IGNsZWFyIGFuZCBicmllZi4NCg0K