From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id 5306AA0679 for ; Fri, 5 Apr 2019 11:34:08 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A47031B495; Fri, 5 Apr 2019 11:34:05 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id BB11B37A8 for ; Thu, 4 Apr 2019 07:03:35 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x344t5OY025860; Wed, 3 Apr 2019 22:03:34 -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=s1udL5coheznCXxzSTt1rS7hKH53jyeV3DOnYj5h5rg=; b=EaxkTL2OZY/Nsfp662gDF9DbpaaHYECIXNiKQ8WJd4tN9bBVcdKPIEjyXzOYiPvHHpMO 9FEsWYgbJWlRIPmf9QkHDbXpV7g/SHkX2Ntk1MyDgLeoDCEPLfvpFMVgqt2YD6HccHSV AhuanlJLxqil14XUZO4Tt+wKgk+sRYbFSviCQcPNubWLZBcn7bkzA5Mq5etGgvErfOC/ BuMR1XOUiiMvhDaLqG85rP4F8vGDK93aIGRkTvSCKEPSFMOY5c8TCHvmwtSg4RuESbgC cxzmaealK4Wdqkt+sKeJG4uxsmSEMGsU0eH9BUcVVkPZviHk2Ed6gX7fQqL7shDzzCME 2A== Received: from sc-exch04.marvell.com ([199.233.58.184]) by mx0a-0016f401.pphosted.com with ESMTP id 2rn8uh0f3a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Wed, 03 Apr 2019 22:03:34 -0700 Received: from SC-EXCH02.marvell.com (10.93.176.82) by SC-EXCH04.marvell.com (10.93.176.84) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Wed, 3 Apr 2019 22:03:33 -0700 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (104.47.40.57) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Wed, 3 Apr 2019 22:03:33 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=s1udL5coheznCXxzSTt1rS7hKH53jyeV3DOnYj5h5rg=; b=cbNQ1FP92QIUoaw0r3Ra74+rH3LAsjA9SBobx5ziZnEnpNQI0POzBzFhRzMgr87XZDgqSmhUQGQm3VWkLwNHzxAgXIjCa6tIOEK9a7rj1yor9FqDkppDhMF/4NMpFQSOw1WvftUHgMXLa5lV8z0ciGaOG+EBPePcpF/7R0QwLio= Received: from BYAPR18MB2392.namprd18.prod.outlook.com (20.179.91.29) by BYAPR18MB2550.namprd18.prod.outlook.com (20.179.93.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1750.20; Thu, 4 Apr 2019 05:03:32 +0000 Received: from BYAPR18MB2392.namprd18.prod.outlook.com ([fe80::7076:7506:270f:9794]) by BYAPR18MB2392.namprd18.prod.outlook.com ([fe80::7076:7506:270f:9794%6]) with mapi id 15.20.1750.017; Thu, 4 Apr 2019 05:03:32 +0000 From: Kiran Kumar Kokkilagadda To: Ferruh Yigit CC: "dev@dpdk.org" , Jerin Jacob Thread-Topic: [EXT] Re: [dpdk-dev] [PATCH v2] kni: add IOVA va support for kni Thread-Index: AQHU6HCAnqramHuq5kqFpGJx1rsNaqYqo+yAgADKV1A= Date: Thu, 4 Apr 2019 05:03:31 +0000 Message-ID: References: <20180927104846.16356-1-kkokkilagadda@caviumnetworks.com> <20190401095118.4176-1-kirankumark@marvell.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [14.140.231.66] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 61c7604c-2d97-443f-65f9-08d6b8bae25f x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600139)(711020)(4605104)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020); SRVR:BYAPR18MB2550; x-ms-traffictypediagnostic: BYAPR18MB2550: x-microsoft-antispam-prvs: x-forefront-prvs: 0997523C40 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(979002)(136003)(396003)(376002)(39860400002)(346002)(366004)(189003)(199004)(13464003)(8936002)(33656002)(81166006)(256004)(229853002)(4326008)(105586002)(81156014)(14444005)(106356001)(66066001)(71200400001)(6116002)(55016002)(9686003)(186003)(6916009)(53936002)(3846002)(102836004)(446003)(8676002)(6246003)(11346002)(486006)(71190400001)(14454004)(478600001)(476003)(86362001)(6436002)(25786009)(316002)(7736002)(26005)(74316002)(54906003)(97736004)(68736007)(52536014)(76176011)(55236004)(7696005)(53546011)(305945005)(6506007)(5660300002)(2906002)(99286004)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:BYAPR18MB2550; H:BYAPR18MB2392.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 13NI7fw6wumAmaZwfVZkG292hdqV0fmS2HzAmqSujhEucxRmu31zuaFh9goS7LQ5ZJAYDjAgpaRQFCz/s1hiJJzQKyuVyiqhmRfsjtu3+wN6JP2nQWy91ANuJZNQRkr4s4Qf08aN7DONECUAsYixHcc3AJtNJwJrf0J5Iig/UeUGrG5/lK/FnEdcrLZuBLPDVT4nlTz/5Lq8wIJkzNJSQ5GYut52PbOYi1FZowTDNnfA5uzrOkpAofEog72tMuwD5fD2iJZcCe/0w3Lux3I6lwJMEEIJ+KoDl9Q2KdaX1fcqS1iSiHPHOCiBpfh+kgt9PAFdj9AmjBwDnm51gCjtgW+qRMU1gsCIHcWiPVpM1sPSEPbWJJhdN7Y+zhP5sAJFRmMNwZNzy62HaRW9c2DwVDOMRh21YKh/UAbh9ClhRNI= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 61c7604c-2d97-443f-65f9-08d6b8bae25f X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Apr 2019 05:03:31.8592 (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-Transport-CrossTenantHeadersStamped: BYAPR18MB2550 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-04-04_03:, , signatures=0 X-Mailman-Approved-At: Fri, 05 Apr 2019 11:34:04 +0200 Subject: Re: [dpdk-dev] [EXT] Re: [PATCH v2] kni: add IOVA va support for kni 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" Message-ID: <20190404050331.MXNcjLmI15JVwdhjUsA0LEaSqm8RnyIvRUjLvgiS7ZI@z> DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmVycnVoIFlpZ2l0IDxm ZXJydWgueWlnaXRAaW50ZWwuY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIEFwcmlsIDMsIDIwMTkg OTo1OSBQTQ0KPiBUbzogS2lyYW4gS3VtYXIgS29ra2lsYWdhZGRhIDxraXJhbmt1bWFya0BtYXJ2 ZWxsLmNvbT4NCj4gQ2M6IGRldkBkcGRrLm9yZzsgSmVyaW4gSmFjb2IgPGplcmluLmphY29iQGNh dml1bW5ldHdvcmtzLmNvbT4NCj4gU3ViamVjdDogW0VYVF0gUmU6IFtkcGRrLWRldl0gW1BBVENI IHYyXSBrbmk6IGFkZCBJT1ZBIHZhIHN1cHBvcnQgZm9yIGtuaQ0KPiANCj4gRXh0ZXJuYWwgRW1h aWwNCj4gDQo+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gT24gNC8xLzIwMTkgMTA6NTEgQU0sIEtpcmFuIEt1 bWFyIEtva2tpbGFnYWRkYSB3cm90ZToNCj4gPiBGcm9tOiBLaXJhbiBLdW1hciBLIDxraXJhbmt1 bWFya0BtYXJ2ZWxsLmNvbT4NCj4gPg0KPiA+IFdpdGggY3VycmVudCBLTkkgaW1wbGVtZW50YXRp b24ga2VybmVsIG1vZHVsZSB3aWxsIHdvcmsgb25seSBpbg0KPiA+IElPVkE9UEEgbW9kZS4gVGhp cyBwYXRjaCB3aWxsIGFkZCBzdXBwb3J0IGZvciBrZXJuZWwgbW9kdWxlIHRvIHdvcmsNCj4gPiB3 aXRoIElPVkE9VkEgbW9kZS4NCj4gDQo+IFRoYW5rcyBLaXJhbiBmb3IgcmVtb3ZpbmcgdGhlIGxp bWl0YXRpb24sIEkgaGF2ZSBhIGZldyBxdWVzdGlvbnMsIGNhbiB5b3UgcGxlYXNlDQo+IGhlbHAg bWUgdW5kZXJzdGFuZC4NCj4gDQo+IEFuZCB3aGVuIHRoaXMgcGF0Y2ggaXMgcmVhZHksIHRoZSBy ZXN0cmljdGlvbiBpbiAnbGludXgvZWFsL2VhbC5jJywgaW4gJ3J0ZV9lYWxfaW5pdCcNCj4gc2hv dWxkIGJlIHJlbW92ZWQsIHBlcmhhcHMgd2l0aCB0aGlzIHBhdGNoLiBJIGFzc3VtZSB5b3UgYWxy ZWFkeSBkb2luZyBpdCB0byBiZQ0KPiBhYmxlIHRvIHRlc3QgdGhpcyBwYXRjaC4NCj4gDQoNClVz ZXIgY2FuIGNob29zZSB0aGUgbW9kZSBieSBwYXNzaW5nIC0taW92YS1tb2RlPTx2YS9wYT4uIEkg d2lsbCByZW1vdmUgdGhlIHJ0ZV9rbmkgbW9kdWxlIHJlc3RyaWN0aW9uLg0KIA0KDQo+ID4NCj4g PiBUaGUgaWRlYSBpcyB0byBtYWludGFpbiBhIG1hcHBpbmcgaW4gS05JIG1vZHVsZSBiZXR3ZWVu IHVzZXIgcGFnZXMgYW5kDQo+ID4ga2VybmVsIHBhZ2VzIGFuZCBpbiBmYXN0IHBhdGggcGVyZm9y bSBhIGxvb2t1cCBpbiB0aGlzIHRhYmxlIGFuZCBnZXQNCj4gPiB0aGUga2VybmVsIHZpcnR1YWwg YWRkcmVzcyBmb3IgY29ycmVzcG9uZGluZyB1c2VyIHZpcnR1YWwgYWRkcmVzcy4NCj4gPg0KPiA+ IEluIElPVkE9VkEgbW9kZSwgdGhlIG1lbW9yeSBhbGxvY2F0ZWQgdG8gdGhlIHBvb2wgaXMgcGh5 c2ljYWxseSBhbmQNCj4gPiB2aXJ0dWFsbHkgY29udGlndW91cy4gV2Ugd2lsbCB0YWtlIGFkdmFu dGFnZSBvZiB0aGlzIGFuZCBjcmVhdGUgYQ0KPiA+IG1hcHBpbmcgaW4gdGhlIGtlcm5lbC5JbiBr ZXJuZWwgd2UgbmVlZCBtYXBwaW5nIGZvciBxdWV1ZXMgKHR4X3EsDQo+ID4gcnhfcSwuLi4gc2xv dyBwYXRoKSBhbmQgbWJ1ZiBtZW1vcnkgKGZhc3QgcGF0aCkuDQo+IA0KPiBJcyBpdD8NCj4gQXMg ZmFyIGFzIEkga25vdyBtZW1wb29sIGNhbiBoYXZlIG11bHRpcGxlIGNodW5rcyBhbmQgdGhleSBj YW4gYmUgYm90aA0KPiB2aXJ0dWFsbHkgYW5kIHBoeXNpY2FsbHkgc2VwYXJhdGVkLg0KPiANCj4g QW5kIGV2ZW4gZm9yIGEgc2luZ2xlIGNodW5rLCB0aGF0IHdpbGwgYmUgdmlydHVhbGx5IGNvbnRp bnVvdXMsIGJ1dCB3aWxsIGl0IGJlDQo+IHBoeXNpY2FsbHkgY29udGludW91cz8NCj4gDQoNCllv dSBhcmUgcmlnaHQsIGl0IG5lZWQgbm90IGhhdmUgdG8gYmUgcGh5c2ljYWxseSBjb250aWd1b3Vz LiBXaWxsIGNoYW5nZSB0aGUgZGVzY3JpcHRpb24uDQogDQoNCj4gPg0KPiA+IEF0IHRoZSBLTkkg aW5pdCB0aW1lLCBpbiBzbG93IHBhdGggd2Ugd2lsbCBjcmVhdGUgYSBtYXBwaW5nIGZvciB0aGUN Cj4gPiBxdWV1ZXMgYW5kIG1idWYgdXNpbmcgZ2V0X3VzZXJfcGFnZXMgc2ltaWxhciB0byBhZl94 ZHAuIFVzaW5nIHBvb2wNCj4gPiBtZW1vcnkgYmFzZSBhZGRyZXNzLCB3ZSB3aWxsIGNyZWF0ZSBh IHBhZ2UgbWFwIHRhYmxlIGZvciB0aGUgbWJ1ZiwNCj4gPiB3aGljaCB3ZSB3aWxsIHVzZSBpbiB0 aGUgZmFzdCBwYXRoIGZvciBrZXJuZWwgcGFnZSB0cmFuc2xhdGlvbi4NCj4gPg0KPiA+IEF0IEtO SSBpbml0IHRpbWUsIHdlIHdpbGwgcGFzcyB0aGUgYmFzZSBhZGRyZXNzIG9mIHRoZSBwb29sIGFu ZCBzaXplDQo+ID4gb2YgdGhlIHBvb2wgdG8ga2VybmVsLiBJbiBrZXJuZWwsIHVzaW5nIGdldF91 c2VyX3BhZ2VzIEFQSSwgd2Ugd2lsbA0KPiA+IGdldCB0aGUgcGFnZXMgd2l0aCBzaXplIFBBR0Vf U0laRSBhbmQgc3RvcmUgdGhlIG1hcHBpbmcgYW5kIHN0YXJ0DQo+ID4gYWRkcmVzcyBvZiB1c2Vy IHNwYWNlIGluIGEgdGFibGUuDQo+ID4NCj4gPiBJbiBmYXN0IHBhdGggZm9yIGFueSB1c2VyIGFk ZHJlc3MgcGVyZm9ybSBQQUdFX1NISUZUICh1c2VyX2FkZHIgPj4NCj4gPiBQQUdFX1NISUZUKSBh bmQgc3VidHJhY3QgdGhlIHN0YXJ0IGFkZHJlc3MgZnJvbSB0aGlzIHZhbHVlLCB3ZSB3aWxsDQo+ ID4gZ2V0IHRoZSBpbmRleCBvZiB0aGUga2VybmVsIHBhZ2Ugd2l0aCBpbiB0aGUgcGFnZSBtYXAg dGFibGUuDQo+ID4gQWRkaW5nIG9mZnNldCB0byB0aGlzIGtlcm5lbCBwYWdlIGFkZHJlc3MsIHdl IHdpbGwgZ2V0IHRoZSBrZXJuZWwNCj4gPiBhZGRyZXNzIGZvciB0aGlzIHVzZXIgdmlydHVhbCBh ZGRyZXNzLg0KPiA+DQo+ID4gRm9yIGV4YW1wbGUgdXNlciBwb29sIGJhc2UgYWRkcmVzcyBpcyBY LCBhbmQgc2l6ZSBpcyBTIHRoYXQgd2UgcGFzc2VkDQo+ID4gdG8ga2VybmVsLiBJbiBrZXJuZWwg d2Ugd2lsbCBjcmVhdGUgYSBtYXBwaW5nIGZvciB0aGlzIHVzaW5nIGdldF91c2VyX3BhZ2VzLg0K PiA+IE91ciBwYWdlIG1hcCB0YWJsZSB3aWxsIGxvb2sgbGlrZSBbWSwgWStQQUdFX1NJWkUsIFkr KFBBR0VfU0laRSoyKQ0KPiA+IC4uLi5dIGFuZCB1c2VyIHN0YXJ0IHBhZ2Ugd2lsbCBiZSBVICh3 ZSB3aWxsIGdldCBpdCBmcm9tIFggPj4gUEFHRV9TSElGVCkuDQo+ID4NCj4gPiBGb3IgYW55IHVz ZXIgYWRkcmVzcyBaIHdlIHdpbGwgZ2V0IHRoZSBpbmRleCBvZiB0aGUgcGFnZSBtYXAgdGFibGUN Cj4gPiB1c2luZyAoKFogPj4gUEFHRV9TSElGVCkgLSBVKS4gQWRkaW5nIG9mZnNldCAoWiAmIChQ QUdFX1NJWkUgLSAxKSkgdG8NCj4gPiB0aGlzIGFkZHJlc3Mgd2lsbCBnaXZlIGtlcm5lbCB2aXJ0 dWFsIGFkZHJlc3MuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBLaXJhbiBLdW1hciBLIDxraXJh bmt1bWFya0BtYXJ2ZWxsLmNvbT4NCj4gDQo+IDwuLi4+DQo+IA0KPiA+ICtpbnQNCj4gPiAra25p X3Bpbl9wYWdlcyh2b2lkICphZGRyZXNzLCBzaXplX3Qgc2l6ZSwgc3RydWN0IHBhZ2VfaW5mbyAq bWVtKSB7DQo+ID4gKwl1bnNpZ25lZCBpbnQgZ3VwX2ZsYWdzID0gRk9MTF9XUklURTsNCj4gPiAr CWxvbmcgbnBnczsNCj4gPiArCWludCBlcnI7DQo+ID4gKw0KPiA+ICsJLyogR2V0IGF0IGxlYXN0 IG9uZSBwYWdlICovDQo+ID4gKwlpZiAoc2l6ZSA8IFBBR0VfU0laRSkNCj4gPiArCQlzaXplID0g UEFHRV9TSVpFOw0KPiA+ICsNCj4gPiArCS8qIENvbXB1dGUgbnVtYmVyIG9mIHVzZXIgcGFnZXMg YmFzZWQgb24gcGFnZSBzaXplICovDQo+ID4gKwltZW0tPm5wZ3MgPSAoc2l6ZSArIFBBR0VfU0la RSAtIDEpIC8gUEFHRV9TSVpFOw0KPiA+ICsNCj4gPiArCS8qIEFsbG9jYXRlIG1lbW9yeSBmb3Ig dGhlIHBhZ2VzICovDQo+ID4gKwltZW0tPnBncyA9IGtjYWxsb2MobWVtLT5ucGdzLCBzaXplb2Yo Km1lbS0+cGdzKSwNCj4gPiArCQkgICAgICBHRlBfS0VSTkVMIHwgX19HRlBfTk9XQVJOKTsNCj4g PiArCWlmICghbWVtLT5wZ3MpIHsNCj4gPiArCQlwcl9lcnIoIiVzOiAtRU5PTUVNXG4iLCBfX2Z1 bmNfXyk7DQo+ID4gKwkJcmV0dXJuIC1FTk9NRU07DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJZG93 bl93cml0ZSgmY3VycmVudC0+bW0tPm1tYXBfc2VtKTsNCj4gPiArDQo+ID4gKwkvKiBHZXQgdGhl IHVzZXIgcGFnZXMgZnJvbSB0aGUgdXNlciBhZGRyZXNzKi8gI2lmDQo+IExJTlVYX1ZFUlNJT05f Q09ERQ0KPiA+ICs+PSBLRVJORUxfVkVSU0lPTig0LDksMCkNCj4gPiArCW5wZ3MgPSBnZXRfdXNl cl9wYWdlcygodTY0KWFkZHJlc3MsIG1lbS0+bnBncywNCj4gPiArCQkJCWd1cF9mbGFncywgJm1l bS0+cGdzWzBdLCBOVUxMKTsNCj4gPiArI2Vsc2UNCj4gPiArCW5wZ3MgPSBnZXRfdXNlcl9wYWdl cyhjdXJyZW50LCBjdXJyZW50LT5tbSwgKHU2NClhZGRyZXNzLCBtZW0tDQo+ID5ucGdzLA0KPiA+ ICsJCQkJZ3VwX2ZsYWdzLCAwLCAmbWVtLT5wZ3NbMF0sIE5VTEwpOyAjZW5kaWYNCj4gPiArCXVw X3dyaXRlKCZjdXJyZW50LT5tbS0+bW1hcF9zZW0pOw0KPiANCj4gVGhpcyBzaG91bGQgd29yayBl dmVuIG1lbW9yeSBpcyBwaHlzaWNhbGx5IG5vdCBjb250aW51b3VzLCByaWdodD8gV2hlcmUNCj4g ZXhhY3RseSBwaHlzaWNhbGx5IGNvbnRpbnVvdXMgcmVxdWlyZW1lbnQgaXMgY29taW5nIGZyb20/ DQo+IA0KDQpZZXMsIGl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gYmUgcGh5c2ljYWxseSBjb250aWd1 b3VzLg0KDQogDQoNCg0KPiA8Li4uPg0KPiANCj4gPiArDQo+ID4gKy8qIEdldCB0aGUga2VybmVs IGFkZHJlc3MgZnJvbSB0aGUgdXNlciBhZGRyZXNzIHVzaW5nDQo+ID4gKyAqIHBhZ2UgbWFwIHRh YmxlLiBXaWxsIGJlIHVzZWQgb25seSBpbiBJT1ZBPVZBIG1vZGUgICovIHN0YXRpYw0KPiA+ICtp bmxpbmUgdm9pZCogZ2V0X2t2YSh1aW50NjRfdCB1c3JfYWRkciwgc3RydWN0IGtuaV9kZXYgKmtu aSkgew0KPiA+ICsJdWludDMyX3QgaW5kZXg7DQo+ID4gKwkvKiBVc2VyIHBhZ2UgLSBzdGFydCB1 c2VyIHBhZ2Ugd2lsbCBnaXZlIHRoZSBpbmRleA0KPiA+ICsJICogd2l0aCBpbiB0aGUgcGFnZSBt YXAgdGFibGUNCj4gPiArCSAqLw0KPiA+ICsJaW5kZXggPSAodXNyX2FkZHIgPj4gUEFHRV9TSElG VCkgLSBrbmktPnZhX2luZm8uc3RhcnRfcGFnZTsNCj4gPiArDQo+ID4gKwkvKiBBZGQgdGhlIG9m ZnNldCB0byB0aGUgcGFnZSBhZGRyZXNzICovDQo+ID4gKwlyZXR1cm4gKGtuaS0+dmFfaW5mby5w YWdlX21hcFtpbmRleF0uYWRkciArDQo+ID4gKwkJKHVzcl9hZGRyICYga25pLT52YV9pbmZvLnBh Z2VfbWFzaykpOw0KPiA+ICsNCj4gPiArfQ0KPiA+ICsNCj4gPiAgLyogcGh5c2ljYWwgYWRkcmVz cyB0byBrZXJuZWwgdmlydHVhbCBhZGRyZXNzICovICBzdGF0aWMgdm9pZCAqDQo+ID4gcGEya3Zh KHZvaWQgKnBhKSBAQCAtMTg2LDcgKzIwNSwxMCBAQCBrbmlfZmlmb190cmFuc19wYTJ2YShzdHJ1 Y3QNCj4gPiBrbmlfZGV2ICprbmksDQo+ID4gIAkJCXJldHVybjsNCj4gPg0KPiA+ICAJCWZvciAo aSA9IDA7IGkgPCBudW1fcng7IGkrKykgew0KPiA+IC0JCQlrdmEgPSBwYTJrdmEoa25pLT5wYVtp XSk7DQo+ID4gKwkJCWlmIChsaWtlbHkoa25pLT5pb3ZhX21vZGUgPT0gMSkpDQo+ID4gKwkJCQlr dmEgPSBnZXRfa3ZhKCh1NjQpKGtuaS0+cGFbaV0pLCBrbmkpOw0KPiANCj4ga25pLT5wYVtdIG5v dyBoYXMgaW92YSBhZGRyZXNzZXMsIGZvciAnZ2V0X2t2YSgpJyB0byB3b3JrIHNob3VsZG4ndA0K PiAndmFfaW5mby5zdGFydF9wYWdlJyBjYWxjdWxhdGVkIGZyb20gJ21lbXBvb2xfbWVtaGRyLT5p b3ZhJyBpbnN0ZWFkIG9mDQo+ICdtZW1wb29sX21lbWhkci0+YWRkcicNCj4gDQo+IElmIHRoaXMg aXMgd29ya2luZyBJIG11c3QgYmUgbWlzc2luZyBzb21ldGhpbmcgYnV0IG5vdCBhYmxlIHRvIGZp bmQgd2hhdCBpdCBpcy4NCj4gDQo+IDwuLi4+DQo+IA0KIA0KSW4gSU9WQT1WQSBtb2RlLCBib3Ro IHRoZSB2YWx1ZXMgd2lsbCBiZSBzYW1lIHJpZ2h0Pw0KDQoNCj4gPiBAQCAtMzA0LDYgKzMwNCwy NyBAQCBydGVfa25pX2FsbG9jKHN0cnVjdCBydGVfbWVtcG9vbCAqcGt0bWJ1Zl9wb29sLA0KPiA+ ICAJa25pLT5ncm91cF9pZCA9IGNvbmYtPmdyb3VwX2lkOw0KPiA+ICAJa25pLT5tYnVmX3NpemUg PSBjb25mLT5tYnVmX3NpemU7DQo+ID4NCj4gPiArCWRldl9pbmZvLmlvdmFfbW9kZSA9IChydGVf ZWFsX2lvdmFfbW9kZSgpID09IFJURV9JT1ZBX1ZBKSA/IDEgOiAwOw0KPiA+ICsJaWYgKGRldl9p bmZvLmlvdmFfbW9kZSkgew0KPiA+ICsJCXN0cnVjdCBydGVfbWVtcG9vbF9tZW1oZHIgKmhkcjsN Cj4gPiArCQl1aW50NjRfdCBwb29sX3NpemUgPSAwOw0KPiA+ICsNCj4gPiArCQkvKiBJbiBlYWNo IHBvb2wgaGVhZGVyIGNodW5rLCB3ZSB3aWxsIG1haW50YWluIHRoZQ0KPiA+ICsJCSAqIGJhc2Ug YWRkcmVzcyBvZiB0aGUgcG9vbC4gVGhpcyBjaHVuayBpcyBwaHlzaWNhbGx5IGFuZA0KPiA+ICsJ CSAqIHZpcnR1YWxseSBjb250aWd1b3VzLg0KPiA+ICsJCSAqIFRoaXMgYXBwcm9hY2ggd2lsbCB3 b3JrLCBvbmx5IGlmIHRoZSBhbGxvY2F0ZWQgcG9vbA0KPiA+ICsJCSAqIG1lbW9yeSBpcyBjb250 aWd1b3VzLCBlbHNlIGl0IHdvbid0IHdvcmsNCj4gPiArCQkgKi8NCj4gPiArCQloZHIgPSBTVEFJ TFFfRklSU1QoJnBrdG1idWZfcG9vbC0+bWVtX2xpc3QpOw0KPiA+ICsJCWRldl9pbmZvLm1idWZf dmEgPSAodm9pZCAqKShoZHItPmFkZHIpOw0KPiA+ICsNCj4gPiArCQkvKiBUcmF2ZXJzZSB0aGUg bGlzdCBhbmQgZ2V0IHRoZSB0b3RhbCBzaXplIG9mIHRoZSBwb29sICovDQo+ID4gKwkJU1RBSUxR X0ZPUkVBQ0goaGRyLCAmcGt0bWJ1Zl9wb29sLT5tZW1fbGlzdCwgbmV4dCkgew0KPiA+ICsJCQlw b29sX3NpemUgKz0gaGRyLT5sZW47DQo+ID4gKwkJfQ0KPiANCj4gVGhpcyBjb2RlIGlzIGF3YXJl IHRoYXQgdGhlcmUgbWF5IGJlIG11bHRpcGxlIGNodW5rcywgYnV0IGFzc3VtZXMgdGhleSBhcmUg YWxsDQo+IGNvbnRpbnVvdXMsIEkgZG9uJ3Qga25vdyBpZiB0aGlzIGFzc3VtcHRpb24gaXMgY29y cmVjdC4NCj4gDQo+IEFsc28gSSBndWVzcyB0aGVyZSBpcyBhbm90aGVyIGFzc3VtcHRpb24gdGhh dCB0aGVyZSB3aWxsIGJlIHNpbmdsZSBwa3RtYnVmX3Bvb2wNCj4gaW4gdGhlIGFwcGxpY2F0aW9u IHdoaWNoIHBhc3NlZCBpbnRvIGtuaT8NCj4gV2hhdCBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgcGt0 bWJ1Zl9wb29sLCBsaWtlIG9uZSBmb3IgZWFjaCBQTUQsIHdpbGwgdGhpcyB3b3JrPw0KPiBOb3cg c29tZSBtYnVmcyBpbiBrbmkgUnggZmlmbyB3aWxsIGNvbWUgZnJvbSBkaWZmZXJlbnQgcGt0bWJ1 Zl9wb29sIHdoaWNoIHdlDQo+IGRvbid0IGtub3cgdGhlaXIgcGFnZXMsIHNvIHdvbid0IGFibGUg dG8gZ2V0IHRoZWlyIGtlcm5lbCB2aXJ0dWFsIGFkZHJlc3MuDQoNCkFsbCB0aGVzZSBjaHVua3Mg aGF2ZSB0byBiZSB2aXJ0dWFsbHkgY29udGlndW91cywgb3RoZXJ3aXNlIHRoaXMgYXBwcm9hY2gg d2lsbCBub3Qgd29yay4gSGVyZSBvbmUgdGhpbmcgd2UgY2FuIGRvIGlzIGNyZWF0ZSB0aGUgbWFw cGluZyBmb3IgY29tcGxldGUgaHVnZSBwYWdlLCBhbmQgbWFrZSBzdXJlIGFsbCB0aGUgbWJ1ZmZf bWVtcG9vbHMgd2lsbCBiZSB3aXRoIGluIHRoaXMgb2Zmc2V0LiBBcyBodWdlIHBhZ2Ugc2l6ZSB3 aWxsIGJlIGJpZyAoeDY0IGl0IGlzIDFHLCBBUk0gNTEyTUIpLCB3ZSBtYXkgbm90IGV4Y2VlZCB0 aGUgc2l6ZSwgZXZlbiB3aXRoIG11bHRpcGxlIHBrdG1idWZfcG9vbHMuIElmIG1idWZfcG9vbHMg d2VyZSBjcmVhdGVkIG91dHNpZGUgdGhpcyBodWdlX3BhZ2UsIHRoaXMgYXBwcm9hY2ggd2lsbCBu b3Qgd29yayBhbmQgd2Ugd2lsbCBmYWxsIGJhY2sgdG8gUEEgbW9kZS4NCg==