From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id D887CA31F3 for ; Fri, 18 Oct 2019 19:15:33 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 5CDE81C0B9; Fri, 18 Oct 2019 19:15:32 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id B85CF1C0B8 for ; Fri, 18 Oct 2019 19:15:30 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x9IHEYtl013161; Fri, 18 Oct 2019 10:15:29 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=bGjd1vHVcxlC0MHhlCdIRm4qtIRjvDMrBitJdlcmSho=; b=HTn/OSAxAo6PbipQS8NpvcEZ9m9ge5NQcKId3AlS86tdr8eVXLffajKlOBz3priKArHp cg2BQ/cB87sQy7Mss+QV+YHFA/R25l+Y70lB8LYZBfi4xgG8gu43zYJgNHsm93lUKMUQ dUVRM7adpD8HFNKRLc1phKkmCTufmdcxRczn9mZApwQOPDZzL6tudEPc+ywaSaxn5HOP pHMXpzrz4hm7xSLMzu7FXaqoT9uprLS6KNjssob/DLuXsSLZfDEalaQM5Joo4irhTFFx iDyOe5lVv19i5hRdXha0eTGqMHNpU2+viCyNAfp4MFST6x78hL/QWskhJ09HgVHgPC4I gQ== Received: from sc-exch02.marvell.com ([199.233.58.182]) by mx0a-0016f401.pphosted.com with ESMTP id 2vpurkcq77-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Fri, 18 Oct 2019 10:15:28 -0700 Received: from SC-EXCH04.marvell.com (10.93.176.84) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Fri, 18 Oct 2019 10:15:27 -0700 Received: from NAM01-BY2-obe.outbound.protection.outlook.com (104.47.34.51) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Fri, 18 Oct 2019 10:15:27 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Hruc8i6B3OQJ+naRFXYPZ4XsZWvcqeyjXTAqYQM+ivDTlPcSAZQKtli5V2TzJMxg6EnrGhNO31xBcAGM3UHCxcQdeF/zJHZMnYMWtLt/pWgpm37+nCfr7IzyxQdOnahgZJHUGVyX8Vhw6p2tUZ1eH++fGuqVkPKHOVo5SPhzx0yHw03LU1jjDJ9nT709Gfv0Uc9To5sqcPFCyRFhC2tMb+tB81H5M/J0FCtq/XKyFNc5d0ol88YbDr6600NGl66KG+7D+Ha2iFnpNpfezSpAr3A8OqBMZovtKfRsIvaDevNvNbrJBKs8tTgLCSXIAy1s5Z4M9bsgHY4gUsHpjSw61A== 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-SenderADCheck; bh=bGjd1vHVcxlC0MHhlCdIRm4qtIRjvDMrBitJdlcmSho=; b=gqcnCPQwABF409WvxwH4i9ZftFmCb4cmCmfk8fMlxZSUb8a8uvvnTmjC/+8mlQLjneCQB6zH3hN0IRP1XHSx2AwzEgiNrzx3OBK0YAz7/njECcgkYvnfW364ST2M8BKdi3+M2/1HvtMD3BJ5CE5IZGoeHecBH0hrSmXIsVs14R9RuJVPcqgc85c40yg/AF8kFb/NpP3w4b3ja2Y7tbV0Dyr+aGOvBbhBd+WwWoYwj9ZFWZgy1i1EZjNdjBulvdlgHLOJWgukWdCGhmuha94BxzDqMLm/42v4zRka12LhpDMHCSVmba6tEX3AaOkYb9A6WuULFCN25jcEUhFVh7VTgw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com; dkim=pass header.d=marvell.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector2-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bGjd1vHVcxlC0MHhlCdIRm4qtIRjvDMrBitJdlcmSho=; b=rv8W58w2a1CO+7WmVl6mFtBkjui1oPq7LeyQDXizM3uQE3tCs7852wPWYq3Fma2HzEV7hIl6MdnswK3MygtkGqHVLNExnhzWQDPCnrhWQsH+UPLAwlfaBjTF4PAz7JM81y0qUQPpzxu1VPHv0YU3DXX8Lcg8T6Pi9fE/CkTQaPY= Received: from MWHPR18MB1645.namprd18.prod.outlook.com (10.173.241.137) by MWHPR18MB1216.namprd18.prod.outlook.com (10.175.6.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2347.18; Fri, 18 Oct 2019 17:15:25 +0000 Received: from MWHPR18MB1645.namprd18.prod.outlook.com ([fe80::b4fd:71ce:2bc4:7afb]) by MWHPR18MB1645.namprd18.prod.outlook.com ([fe80::b4fd:71ce:2bc4:7afb%3]) with mapi id 15.20.2347.024; Fri, 18 Oct 2019 17:15:25 +0000 From: Vamsi Krishna Attunuru To: Ferruh Yigit , Stephen Hemminger , "Yigit, Ferruh" CC: "dev@dpdk.org" , "thomas@monjalon.net" , Jerin Jacob Kollanukkaran , "olivier.matz@6wind.com" , "anatoly.burakov@intel.com" , "arybchenko@solarflare.com" , "Kiran Kumar Kokkilagadda" Thread-Topic: [dpdk-dev] [EXT] Re: [PATCH v10 4/5] kni: add IOVA=VA support in KNI module Thread-Index: AQHVhDzC+4/MwhYcRk2oVhPYAI61I6dgngXw Date: Fri, 18 Oct 2019 17:15:25 +0000 Message-ID: References: <20190729121313.30639-2-vattunuru@marvell.com> <20190816061252.17214-1-vattunuru@marvell.com> <20190816061252.17214-5-vattunuru@marvell.com> <20191015084603.3b0f141f@hermes.lan> <5cd2398c-684c-44c5-1a0b-6cde4b7e961d@intel.com> In-Reply-To: <5cd2398c-684c-44c5-1a0b-6cde4b7e961d@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [103.227.99.38] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d7e11e30-6b85-480e-167f-08d753eec44c x-ms-traffictypediagnostic: MWHPR18MB1216: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-forefront-prvs: 01949FE337 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(366004)(346002)(396003)(136003)(39840400004)(376002)(13464003)(199004)(189003)(71190400001)(71200400001)(102836004)(4326008)(76176011)(26005)(99286004)(66446008)(81166006)(64756008)(66556008)(7696005)(229853002)(81156014)(53546011)(6506007)(316002)(110136005)(305945005)(33656002)(2906002)(7736002)(8936002)(54906003)(3846002)(6116002)(8676002)(86362001)(66946007)(66476007)(76116006)(5660300002)(25786009)(74316002)(66066001)(52536014)(256004)(14454004)(6246003)(186003)(55016002)(107886003)(9686003)(11346002)(486006)(446003)(476003)(478600001)(6436002); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR18MB1216; H:MWHPR18MB1645.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: RPx7VA8m0pannHopYOZdPB7z1P5sujdSeb1IHa5aU9Q/9SdyL5QnHb4yKA15wgiV+8Y7Zg9LTxiRvxU6pwTmwC3rOvR0J7ZfXdIHY4u+CX6O253uSywllOv/NL6DT+qTbg7fivfR5+7xnl8qqXSnwcPVlZqAEaAYemzNZa4n1HTilOHYCWPGWQtqVvxspCYgIWIojjpq9MiLhSwxQOgq6/6tuLvtGwJ3e1ty/fT+OkqPztTc5upLt53maa9UNd3vSAeIwapXITNcGxRKZ2pyZqS8Zr7SPLbMWPFfLRCrmvQHPvWAft8VbWLVTx9fJWl4QOQnmQywbHZOzdwhP1UmRK38cX/CICeyHStlEDr1jz8WmaDyzc4RDOFtO/mIJPJAX6Qe2rji8FDXMMZEkKP6aeIyUVlZglT/q1v0KmRyyTk= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: d7e11e30-6b85-480e-167f-08d753eec44c X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Oct 2019 17:15:25.5227 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: f+/LKeEwETJRp4MP8btS3LxmHBK3Dz22WcXLz89CgUCPQSISJuFvk2KYQwalqBZ0NW+mnNs7wMeJ+5hUqTzR3A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR18MB1216 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.95,1.0.8 definitions=2019-10-18_04:2019-10-18,2019-10-18 signatures=0 Subject: Re: [dpdk-dev] [EXT] Re: [PATCH v10 4/5] kni: add IOVA=VA support in KNI module X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogZGV2IDxkZXYtYm91bmNl c0BkcGRrLm9yZz4gT24gQmVoYWxmIE9mIEZlcnJ1aCBZaWdpdA0KPiBTZW50OiBXZWRuZXNkYXks IE9jdG9iZXIgMTYsIDIwMTkgOTo0NCBQTQ0KPiBUbzogVmFtc2kgS3Jpc2huYSBBdHR1bnVydSA8 dmF0dHVudXJ1QG1hcnZlbGwuY29tPjsgU3RlcGhlbiBIZW1taW5nZXINCj4gPHN0ZXBoZW5AbmV0 d29ya3BsdW1iZXIub3JnPjsgWWlnaXQsIEZlcnJ1aA0KPiA8ZmVycnVoLnlpZ2l0QGxpbnV4Lmlu dGVsLmNvbT4NCj4gQ2M6IGRldkBkcGRrLm9yZzsgdGhvbWFzQG1vbmphbG9uLm5ldDsgSmVyaW4g SmFjb2IgS29sbGFudWtrYXJhbg0KPiA8amVyaW5qQG1hcnZlbGwuY29tPjsgb2xpdmllci5tYXR6 QDZ3aW5kLmNvbTsNCj4gYW5hdG9seS5idXJha292QGludGVsLmNvbTsgYXJ5YmNoZW5rb0Bzb2xh cmZsYXJlLmNvbTsgS2lyYW4gS3VtYXINCj4gS29ra2lsYWdhZGRhIDxraXJhbmt1bWFya0BtYXJ2 ZWxsLmNvbT4NCj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW0VYVF0gUmU6IFtQQVRDSCB2MTAg NC81XSBrbmk6IGFkZCBJT1ZBPVZBIHN1cHBvcnQNCj4gaW4gS05JIG1vZHVsZQ0KPiANCj4gT24g MTAvMTYvMjAxOSAxMjoyNiBQTSwgVmFtc2kgS3Jpc2huYSBBdHR1bnVydSB3cm90ZToNCj4gPg0K PiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IFN0ZXBoZW4g SGVtbWluZ2VyIDxzdGVwaGVuQG5ldHdvcmtwbHVtYmVyLm9yZz4NCj4gPj4gU2VudDogVHVlc2Rh eSwgT2N0b2JlciAxNSwgMjAxOSA5OjE2IFBNDQo+ID4+IFRvOiBZaWdpdCwgRmVycnVoIDxmZXJy dWgueWlnaXRAbGludXguaW50ZWwuY29tPg0KPiA+PiBDYzogVmFtc2kgS3Jpc2huYSBBdHR1bnVy dSA8dmF0dHVudXJ1QG1hcnZlbGwuY29tPjsgZGV2QGRwZGsub3JnOw0KPiA+PiB0aG9tYXNAbW9u amFsb24ubmV0OyBKZXJpbiBKYWNvYiBLb2xsYW51a2thcmFuIDxqZXJpbmpAbWFydmVsbC5jb20+ Ow0KPiA+PiBvbGl2aWVyLm1hdHpANndpbmQuY29tOyBmZXJydWgueWlnaXRAaW50ZWwuY29tOw0K PiA+PiBhbmF0b2x5LmJ1cmFrb3ZAaW50ZWwuY29tOyBhcnliY2hlbmtvQHNvbGFyZmxhcmUuY29t OyBLaXJhbiBLdW1hcg0KPiA+PiBLb2traWxhZ2FkZGEgPGtpcmFua3VtYXJrQG1hcnZlbGwuY29t Pg0KPiA+PiBTdWJqZWN0OiBbRVhUXSBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjEwIDQvNV0ga25p OiBhZGQgSU9WQT1WQQ0KPiA+PiBzdXBwb3J0IGluIEtOSSBtb2R1bGUNCj4gPj4NCj4gPj4gRXh0 ZXJuYWwgRW1haWwNCj4gPj4NCj4gPj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4+IC0NCj4gPj4gT24gVHVl LCAxNSBPY3QgMjAxOSAxNjo0MzowOCArMDEwMA0KPiA+PiAiWWlnaXQsIEZlcnJ1aCIgPGZlcnJ1 aC55aWdpdEBsaW51eC5pbnRlbC5jb20+IHdyb3RlOg0KPiA+Pg0KPiA+Pj4gT24gOC8xNi8yMDE5 IDc6MTIgQU0sIHZhdHR1bnVydUBtYXJ2ZWxsLmNvbSB3cm90ZToNCj4gPj4+PiBGcm9tOiBLaXJh biBLdW1hciBLIDxraXJhbmt1bWFya0BtYXJ2ZWxsLmNvbT4NCj4gPj4+Pg0KPiA+Pj4+IFBhdGNo IGFkZHMgc3VwcG9ydCBmb3Iga2VybmVsIG1vZHVsZSB0byB3b3JrIGluIElPVkEgPSBWQSBtb2Rl LCB0aGUNCj4gPj4+PiBpZGVhIGlzIHRvIGdldCBwaHlzaWNhbCBhZGRyZXNzIGZyb20gSU9WQSBh ZGRyZXNzIHVzaW5nDQo+ID4+Pj4gaW9tbXVfaW92YV90b19waHlzIEFQSSBhbmQgbGF0ZXIgdXNl IHBoeXNfdG9fdmlydCBBUEkgdG8gY29udmVydA0KPiA+Pj4+IHRoZSBwaHlzaWNhbCBhZGRyZXNz IHRvIGtlcm5lbCB2aXJ0dWFsIGFkZHJlc3MuDQo+ID4+Pj4NCj4gPj4+PiBXaGVuIGNvbXBhcmVk IHdpdGggSU9WQSA9IFBBIG1vZGUsIHRoZXJlIGlzIG5vIHBlcmZvcm1hbmNlIGRyb3ANCj4gPj4+ PiB3aXRoIHRoaXMgYXBwcm9hY2guDQo+ID4+Pj4NCj4gPj4+PiBUaGlzIGFwcHJvYWNoIGRvZXMg bm90IHdvcmsgd2l0aCB0aGUga2VybmVsIHZlcnNpb25zIGxlc3MgdGhhbg0KPiA+Pj4+IDQuNC4w IGJlY2F1c2Ugb2YgQVBJIGNvbXBhdGliaWxpdHkgaXNzdWVzLg0KPiA+Pj4+DQo+ID4+Pj4gUGF0 Y2ggYWxzbyB1cGRhdGVzIHRoZXNlIHN1cHBvcnQgZGV0YWlscyBpbiBLTkkgZG9jdW1lbnRhdGlv bi4NCj4gPj4+Pg0KPiA+Pj4+IFNpZ25lZC1vZmYtYnk6IEtpcmFuIEt1bWFyIEsgPGtpcmFua3Vt YXJrQG1hcnZlbGwuY29tPg0KPiA+Pj4+IFNpZ25lZC1vZmYtYnk6IFZhbXNpIEF0dHVudXJ1IDx2 YXR0dW51cnVAbWFydmVsbC5jb20+DQo+ID4+Pg0KPiA+Pj4gPC4uLj4NCj4gPj4+DQo+ID4+Pj4g QEAgLTM0OCwxNSArMzUxLDY1IEBAIGtuaV9pb2N0bF9jcmVhdGUoc3RydWN0IG5ldCAqbmV0LCB1 aW50MzJfdA0KPiA+PiBpb2N0bF9udW0sDQo+ID4+Pj4gIAlzdHJuY3B5KGtuaS0+bmFtZSwgZGV2 X2luZm8ubmFtZSwgUlRFX0tOSV9OQU1FU0laRSk7DQo+ID4+Pj4NCj4gPj4+PiAgCS8qIFRyYW5z bGF0ZSB1c2VyIHNwYWNlIGluZm8gaW50byBrZXJuZWwgc3BhY2UgaW5mbyAqLw0KPiA+Pj4+IC0J a25pLT50eF9xID0gcGh5c190b192aXJ0KGRldl9pbmZvLnR4X3BoeXMpOw0KPiA+Pj4+IC0Ja25p LT5yeF9xID0gcGh5c190b192aXJ0KGRldl9pbmZvLnJ4X3BoeXMpOw0KPiA+Pj4+IC0Ja25pLT5h bGxvY19xID0gcGh5c190b192aXJ0KGRldl9pbmZvLmFsbG9jX3BoeXMpOw0KPiA+Pj4+IC0Ja25p LT5mcmVlX3EgPSBwaHlzX3RvX3ZpcnQoZGV2X2luZm8uZnJlZV9waHlzKTsNCj4gPj4+PiAtDQo+ ID4+Pj4gLQlrbmktPnJlcV9xID0gcGh5c190b192aXJ0KGRldl9pbmZvLnJlcV9waHlzKTsNCj4g Pj4+PiAtCWtuaS0+cmVzcF9xID0gcGh5c190b192aXJ0KGRldl9pbmZvLnJlc3BfcGh5cyk7DQo+ ID4+Pj4gLQlrbmktPnN5bmNfdmEgPSBkZXZfaW5mby5zeW5jX3ZhOw0KPiA+Pj4+IC0Ja25pLT5z eW5jX2t2YSA9IHBoeXNfdG9fdmlydChkZXZfaW5mby5zeW5jX3BoeXMpOw0KPiA+Pj4+ICsJaWYg KGRldl9pbmZvLmlvdmFfbW9kZSkgew0KPiA+Pj4+ICsjaWZkZWYgSEFWRV9JT1ZBX0FTX1ZBX1NV UFBPUlQNCj4gPj4+PiArCQlwY2kgPSBwY2lfZ2V0X2RldmljZShkZXZfaW5mby52ZW5kb3JfaWQs DQo+ID4+Pj4gKwkJCQkgICAgIGRldl9pbmZvLmRldmljZV9pZCwgTlVMTCk7DQo+ID4+Pj4gKwkJ aWYgKHBjaSA9PSBOVUxMKSB7DQo+ID4+Pj4gKwkJCXByX2VycigicGNpIGRldiBkb2VzIG5vdCBl eGlzdFxuIik7DQo+ID4+Pj4gKwkJCXJldHVybiAtRU5PREVWOw0KPiA+Pj4+ICsJCX0NCj4gPj4+ DQo+ID4+PiBJZiB0aGVyZSBpcyBubyBQQ0kgZGV2aWNlIEtOSSBzaG91bGQgc3RpbGwgd29yay4N Cj4gPj4NCj4gPj4gUmlnaHQgbm93IGl0IGlzIHBvc3NpYmxlIHRvIHVzZSBLTkkgd2l0aCBuZXR2 c2MgUE1EIG9uIEh5cGVyLVYvQXp1cmUuDQo+ID4+IFdpdGggdGhpcyBwYXRjaCB0aGF0IHdvbid0 IGJlIHBvc3NpYmxlLg0KPiA+DQo+ID4gSGkgRmVycnVoLCBTdGVwaGVuLA0KPiA+DQo+ID4gVGhl c2UgY2FuIGJlIGZpeGVkIGJ5IGZvcmNpbmcgaW9tbXVfbW9kZSBhcyBQQSB3aGVuIHZkZXZzIGFy ZSB1c2VkIGZvcg0KPiA+IEtOSSB1c2VjYXNlLg0KPiA+DQo+ID4gcnRlX2J1c19nZXRfaW9tbXVf Y2xhc3Modm9pZCkNCj4gPiAgew0KPiA+ICAgICAgICAgZW51bSBydGVfaW92YV9tb2RlIG1vZGUg PSBSVEVfSU9WQV9EQzsNCj4gPiArICAgICAgIHN0cnVjdCBydGVfZGV2YXJncyAqZGV2YXJncyA9 IE5VTEw7DQo+ID4gICAgICAgICBib29sIGJ1c2VzX3dhbnRfdmEgPSBmYWxzZTsNCj4gPiAgICAg ICAgIGJvb2wgYnVzZXNfd2FudF9wYSA9IGZhbHNlOw0KPiA+ICAgICAgICAgc3RydWN0IHJ0ZV9i dXMgKmJ1czsNCj4gPg0KPiA+ICsgICAgICAgaWYgKHJ0ZV9lYWxfY2hlY2tfbW9kdWxlKCJydGVf a25pIikgPT0gMSkgew0KPiA+ICsgICAgICAgICAgICAgICBSVEVfRUFMX0RFVkFSR1NfRk9SRUFD SCgidmRldiIsIGRldmFyZ3MpIHsNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g UlRFX0lPVkFfUEE7DQo+ID4gKyAgICAgICAgICAgICAgIH0NCj4gPiArICAgICAgIH0NCj4gPiAr DQo+ID4gICAgICAgICBUQUlMUV9GT1JFQUNIKGJ1cywgJnJ0ZV9idXNfbGlzdCwgbmV4dCkgew0K PiA+ICAgICAgICAgICAgICAgICBlbnVtIHJ0ZV9pb3ZhX21vZGUgYnVzX2lvdmFfbW9kZTsNCj4g Pg0KPiA+IEkgdGhpbmsgdGhpcyB3aWxsIHNvbHZlIHZhcmlvdXMgdXNlIGNhc2VzL2NvbWJpbmF0 aW9ucyBsaWtlIFBBIG9yIFZBIG1vZGUsDQo+IHBkZXYgb3IgdmRldiB1c2VkIGZvciBLTkkuDQo+ ID4gRXhpc3RpbmcgdXNlIGNhc2VzIHdvdWxkIG5vdCBiZSBhZmZlY3RlZCBieSB0aGVzZSBwYXRj aCBzZXJpZXMgd2l0aCBhYm92ZQ0KPiBmaXguDQo+ID4NCj4gDQo+IEhpIFZhbXNpLA0KPiANCj4g SSB0aGluayB0aGlzIGlzIG5vdCBhIHByb2JsZW0gb2YgdXNpbmcgdmRldiBzbyBJIHRoaW5rIHdl IGNhbid0IHNvbHZlIHRoaXMgdmlhDQo+IHZkZXYgY2hlY2sgb25seS4NCj4gDQo+IFRoZSBzYW1w bGUgSSBnaXZlIChLTkkgUE1EKSBpcyB1c2luZyB2ZGV2LCBidXQgYXBwbGljYXRpb24gY2FuIHVz ZSBLTkkgbGlicmFyeQ0KPiBBUElzIGRpcmVjdGx5IHRvIGNyZWF0ZSBrbmkgaW50ZXJmYWNlIGFu ZCBoYXZlIGtlcm5lbC91c2VyIHNwYWNlDQo+IGNvbW11bmljYXRpb24gd2l0aG91dCBhbnkgZGV2 aWNlIGludm9sdmVkLiBLTkkgUE1EICh2ZGV2KSBpcyBqdXN0IGENCj4gd3JhcHBlciB0byBtYWtl IHRoaXMgZWFzeS4NCj4gDQo+IEp1c3QgdGhpbmtpbmcgYWxvdWQsDQo+IEtOSSBpcyBzaGFyaW5n IGluIHVzZXJzcGFjZSBidWZmZXIgd2l0aCBrZXJuZWwsIHNvIGJhc2ljYWxseSBpdCBuZWVkcyB0 byBkbw0KPiB2aXJ0dWFsIGFkZHJlc3MgdG8ga2VybmVsIHZpcnR1YWwgYWRkcmVzcyB0cmFuc2xh dGlvbiwgaW4gYSByZWFzb25hYmx5IGZhc3QNCj4gbWFubmVyLg0KPiANCj4gaW92YT12YSBicmVh a3MgS05JIGJlY2F1c2U6DQo+IDEpIHBoeXNpY2FsIG1lbW9yeSBpcyBub3QgY29udGludW91cyBh bnltb3JlIHdoaWNoIGJyZWFrIG91ciBhZGRyZXNzDQo+IHRyYW5zbGF0aW9uIGxvZ2ljDQo+IDIp IHdlIHdlcmUgdXNpbmcgcGh5c2ljYWwgYWRkcmVzcyBvZiB0aGUgYnVmZmVyIGZvciB0aGUgYWRk cmVzcyB0cmFuc2xhdGlvbiwNCj4gYnV0IHdlIGhhdmUgbm8gbW9yZSBoYXZlIGl0LCB3ZSBub3cg aGF2ZSBpb3ZhIGFkZHJlc3MuDQo+IA0KPiBJIGFzc3VtZSAxKSBpcyByZXNvbHZlZCB3aXRoICdy dGVfa25pX3BrdG1idWZfcG9vbF9jcmVhdGUoKScgaXQgd291bGQgYmUNCj4gaGVscGZ1bCB0aG91 Z2ggaWYgeW91IGNhbiBleHBsYWluIGhvdyB0aGlzIHdvcmtzPw0KDQpLTkkga2VybmVsIG1vZHVs ZSB1c2VzIHBhMnZhLCB2YTJwYSBjYWxscyB0byB0cmFuc2xhdGUgYnVmZmVyIHBvaW50ZXJzLCB0 aGlzIHdpbGwgb25seSB3b3JrIHdoZW4gYm90aCBwYSAmIHZhIGFyZSAxLXRvLTEgY29udGlndW91 cy4gSW4gc3VjaCBjYXNlcywgZHBkayBtYnVmIG1lbW9yeSBzaG91bGQgbm90IGNyb3NzIHBoeXNp Y2FsIHBhZ2UgYm91bmRhcnksICBJZiBpdCBjcm9zc2VzLCBpdCdzIGlvdmEvdmEgd2lsbCBiZSBj b250aWd1b3VzLCBidXQgaXQncyBwYSBtYXkgb3IgbWF5IG5vdCBiZSBjb250aWd1b3VzLiBLbmkg cGt0bWJ1ZiBwb29sIGFwaSBlbnN1cmVzIHRoYXQgbWVtcG9vbCBpcyBub3QgcG9wdWxhdGVkIHdp dGggdGhvc2UgdHlwZSBvZiBtYnVmcyh0aGF0IGNyb3NzIHBhZ2UgYm91bmRhcnkpLiBPbmNlIHRo ZSBwb29sIGlzIGNyZWF0ZWQsIGFsbCBtYnVmcyBpbiB0aGF0IHBvb2wgcmVzaWRlcyB3aXRoIGlu IHRoZSBwYWdlIGxpbWl0cy4gDQo+IA0KPiBGb3Igc2Vjb25kLCBhIHNpbXBsZSBxdWVzdGlvbiwg ZG8gd2UgbmVlZCB0byBnZXQgYSBQQ0llIGRldmljZSBpbmZvcm1hdGlvbg0KPiB0byBiZSBhYmxl IHRvIGNvbnZlcnQgaW92YSB0byBrZXJuZWwgdmlydHVhbCBhZGRyZXNzPyBDYW4ndCBJIGdldCB0 aGlzDQo+IGluZm9ybWF0aW9uIGZyb20gaW9tbXUgc29tZWhvdz8NCj4gVGhpbmsgYWJvdXQgYSBj YXNlICItLWlvdmEtbW9kZT12YSIgcHJvdmlkZWQgYnV0IHRoZXJlIGlzIG5vIHBoeXNpY2FsIGRl dmljZQ0KPiBiaW5kIHRvIHZmaW8tcGNpLCBjYW4gSSBzdGlsbCBhbGxvY2F0ZWQgbWVtb3I/IEFu ZCBob3cgY2FuIEkgdXNlIEtOSSBpbiB0aGF0DQo+IGNhc2U/DQoNCldlIGZvdW5kIGEgd2F5IHRv IHRyYW5zbGF0ZSBpb3ZhL3V2YSB0byBrdmEgdXNpbmcga2VybmVsIG1tIHN1YnN5c3RlbSBjYWxs cywgdXNpbmcgZ2V0X3VzZXJfcGFnZXNfcmVtb3RlKCkgY2FsbCBLTkkgbW9kdWxlIGlzIGFibGUg dG8gZ2V0IG1hcHBpbmcgZm9yIGlvdmEgdG8ga3ZhLiBUaGlzIHNvbHV0aW9uIHdvcmtlZCBmb3Ig cGRldnMod2l0aG91dCBzaGFyaW5nIGFueSBkZXYgaW5mbykgYW5kIGFsc28gZm9yIHdyYXBwZXIg dmRldiBwbWRzLg0KDQpJIHdpbGwgcHVzaCBuZXh0IHZlcnNpb24gb2YgcGF0Y2hlcyB3aXRoIHRo ZXNlIHNvbHV0aW9uIGFuZCBvdGhlciBjb21tYW5kIGxpbmUgYXJnIGNoYW5nZXMuIFNpbmNlIHRo ZSBtYWpvciBhcmNoaXRlY3R1cmFsIGlzc3VlIGlzIGZpeGVkIGluIGVuYWJsaW5nIGlvdmE9dmEg Zm9yIEtOSSwgd2UgYXJlIHBsYW5uaW5nIHRvIG1lcmdlIHRoZXNlIHBhdGNoIHNlcmllcyBpbiAx OS4xMSByZWxlYXNlLg0K