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 5EA62A0471 for ; Mon, 15 Jul 2019 15:06:54 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 374742C5E; Mon, 15 Jul 2019 15:06:53 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id E3B2B2C23 for ; Mon, 15 Jul 2019 15:06:50 +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 x6FD5ICi014065; Mon, 15 Jul 2019 06:06:48 -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=T0IsT+bIEvY8vy2xeNfeQmhZozV8wUl1eorft/rFM/8=; b=tZ04bOOQeGL5Gmq7e+0Bpv5x9H85EV+hiMAm2q/xG+KZPG0x4MrzP9yK6vRDfRzi/zND xxoAT0wpfr9Kv44DqRXiCQ9cdP58ZeE/Ru5wdvEzCxNB5J7fA3dVW0s8ciAY9uOPMSMx k8nPeN1kTbV6Nen/knzkJ/JU8EjjIJ2arUI88EoqNkOy9vzECvlS9V/tH4XAyzIl2+8X nJUV0kne/seeEQfeAiZk7Mi7//R91+H2NmFYQ68+Fyd01AJUdObi8zhVlBko6jrEEnvN aDuV0eYNBifQx1BBTDhXidDRb14lnQUjp0FaPt3nr30A+99sdrVpNFusWivParH3Zs7r kg== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0a-0016f401.pphosted.com with ESMTP id 2tqcnpqjx8-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Mon, 15 Jul 2019 06:06:48 -0700 Received: from SC-EXCH03.marvell.com (10.93.176.83) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Mon, 15 Jul 2019 06:06:47 -0700 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (104.47.40.53) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Mon, 15 Jul 2019 06:06:47 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mjzJH9W4MGUS6X98vExSS4sRLmpyOIcqRFNab6K4lu177nh3qlVMzF42ZaocE4g4PjPXg5n//pFZr4Hzw3KYRQtwOlxTOjK88UoFE4T/kTg4UWhni2Q2W98Fesoz70GTdHf1lpDG8dAUtAOkwS9OBJ8bMVn5H/nTh78wfGBn5uWIzT8QdIIvg4cDyYQgDos+9jHHoLlGwPLV7ZfFjrW6+6yZBbXrSeMrDDVgzxGrf/zMMRlYoH9CkySKpkIgspitRkRozgTlm/5fbYiI9tvKhOXxtplzMjoMKUlOkbKwyhaUPM/3kfW8QOcvNLl/obipXX1UU/s7KLu7z9nBmF7ECQ== 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=T0IsT+bIEvY8vy2xeNfeQmhZozV8wUl1eorft/rFM/8=; b=iKKFCilJkz0AZColZ1U7bcI6fpelwebhQcUXiUGJpaVhYzwJFt6mfSJX9qFnux1lIRHGG+Q58rjSi+hF5pHqpSlvxIGtDjtllmXVDJGl4lmNKChEza5Lro0M6uBffh56L+9Xm6kLiaVVcscXKqAhPOjPViqV6C7lJyrOjzwUBbyRMilLFC9JYdikZ36wXcbv12m/mQz8yr1bBRQ0kwbawTHvDwvpK/m1ajt0PAFepctKnRPNa3jUOqwNNug3PAMSKmTk9Of7uboHqRJXNkWnstcMeyBkb3IaeD9K87zx4ll5FVC+qXbb2VymjwJhCafEvI0B6TyjIUO9WzLswfdm4g== 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=T0IsT+bIEvY8vy2xeNfeQmhZozV8wUl1eorft/rFM/8=; b=oDrh6lgA/0OHni/Sbi94nFaa6rx4eUQ/QkhVgxdJeEAFOK8Ev7qs1gUx8x3dIWBajJe3ThZSPs0ztINulCjJ8sk4WpBdFQ26AFLCuDX0WLkrugp//UuOJl7GiSU3wlHKB7vveOqzGACMi0DPorrs+tmZF64GQLWbxOSYX4qb8Co= Received: from CH2PR18MB3381.namprd18.prod.outlook.com (52.132.246.204) by CH2PR18MB3142.namprd18.prod.outlook.com (52.132.244.76) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2073.14; Mon, 15 Jul 2019 13:06:42 +0000 Received: from CH2PR18MB3381.namprd18.prod.outlook.com ([fe80::189c:3889:b207:8922]) by CH2PR18MB3381.namprd18.prod.outlook.com ([fe80::189c:3889:b207:8922%5]) with mapi id 15.20.2073.012; Mon, 15 Jul 2019 13:06:42 +0000 From: Vamsi Krishna Attunuru To: Ferruh Yigit , "dev@dpdk.org" CC: "olivier.matz@6wind.com" , "arybchenko@solarflare.com" , "Kiran Kumar Kokkilagadda" Thread-Topic: [EXT] Re: [PATCH v6 4/4] kernel/linux/kni: add IOVA support in kni module Thread-Index: AQHVKwoY02zw7QZOhk6Qx0GGn6LtY6bFtcEAgAEscCyAAAxvgIAAVnDQgARlOgCAABBhwA== Date: Mon, 15 Jul 2019 13:06:42 +0000 Message-ID: References: <20190422061533.17538-1-kirankumark@marvell.com> <20190625035700.2953-1-vattunuru@marvell.com> <20190625035700.2953-5-vattunuru@marvell.com> <98bf2103-f48f-4baa-0d4a-f03f9e538519@intel.com> <285145b7-a829-b614-7971-2df171800466@intel.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: 10c6d579-0fd3-49e0-5c8d-08d709254802 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:CH2PR18MB3142; x-ms-traffictypediagnostic: CH2PR18MB3142: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:4303; x-forefront-prvs: 00997889E7 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(376002)(39850400004)(366004)(396003)(346002)(136003)(13464003)(189003)(199004)(6436002)(4326008)(486006)(33656002)(110136005)(54906003)(99286004)(6506007)(52536014)(478600001)(5660300002)(55236004)(53936002)(102836004)(53546011)(68736007)(81166006)(81156014)(6246003)(76176011)(7696005)(2501003)(186003)(107886003)(71200400001)(71190400001)(26005)(55016002)(9686003)(3846002)(8676002)(2906002)(6116002)(11346002)(476003)(446003)(7736002)(66556008)(66446008)(66476007)(66066001)(64756008)(66946007)(86362001)(76116006)(14454004)(8936002)(256004)(305945005)(229853002)(74316002)(14444005)(316002)(25786009); DIR:OUT; SFP:1101; SCL:1; SRVR:CH2PR18MB3142; H:CH2PR18MB3381.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: NYauUCjM/rv2w5JhpsYLzagUKSlIxCLb/HvjCZYp4C8WRqSS8cVLrcs7xpdOfdblCuBT4giTmeMd2Y9cYr0+5uYqCnHxBFmYHu8AG4JmmopdYDV+LhyHXhmdhzkd7THArosDVAPzfS4xmQvenZPCfr5ksyyaFqyWSvYtRFD1WWULRe6DP8lAinAYOxhp5ZJ6Xx1+H0q2Iqxko8VuJKMa9pR4KOJ/GPh7ztLEihaBHVT8H5prxtzLEZHjesyum/LonTE64DeXLNepzDrYLBhFd0DcDIu+pmbTLe9y4B2dWEgE9sSiE9sO5zAPOYnQ9/ryW9z7zakD/pGrjKGrQmx5VANC5YjM4pPgTCXbeKL7bEsTHEaudKYYhtlFrZ+c9JhfubMcFi8ARE4oAHwciXiTazEp46ZZ9oKTYR+G903OzI8= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 10c6d579-0fd3-49e0-5c8d-08d709254802 X-MS-Exchange-CrossTenant-originalarrivaltime: 15 Jul 2019 13:06:42.0989 (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: vattunuru@marvell.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR18MB3142 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:5.22.84,1.0.8 definitions=2019-07-15_04:2019-07-15,2019-07-15 signatures=0 Subject: Re: [dpdk-dev] [EXT] Re: [PATCH v6 4/4] kernel/linux/kni: add IOVA 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" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRmVycnVoIFlpZ2l0IDxm ZXJydWgueWlnaXRAaW50ZWwuY29tPg0KPiBTZW50OiBNb25kYXksIEp1bHkgMTUsIDIwMTkgNDo1 NyBQTQ0KPiBUbzogVmFtc2kgS3Jpc2huYSBBdHR1bnVydSA8dmF0dHVudXJ1QG1hcnZlbGwuY29t PjsgZGV2QGRwZGsub3JnDQo+IENjOiBvbGl2aWVyLm1hdHpANndpbmQuY29tOyBhcnliY2hlbmtv QHNvbGFyZmxhcmUuY29tOyBLaXJhbiBLdW1hcg0KPiBLb2traWxhZ2FkZGEgPGtpcmFua3VtYXJr QG1hcnZlbGwuY29tPg0KPiBTdWJqZWN0OiBSZTogW0VYVF0gUmU6IFtQQVRDSCB2NiA0LzRdIGtl cm5lbC9saW51eC9rbmk6IGFkZCBJT1ZBIHN1cHBvcnQgaW4ga25pDQo+IG1vZHVsZQ0KPiANCj4g T24gNy8xMi8yMDE5IDU6MjkgUE0sIFZhbXNpIEtyaXNobmEgQXR0dW51cnUgd3JvdGU6DQo+ID4N Cj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+PiBGcm9tOiBGZXJydWgg WWlnaXQgPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+DQo+ID4+IFNlbnQ6IEZyaWRheSwgSnVseSAx MiwgMjAxOSA0OjQwIFBNDQo+ID4+IFRvOiBWYW1zaSBLcmlzaG5hIEF0dHVudXJ1IDx2YXR0dW51 cnVAbWFydmVsbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gPj4gQ2M6IG9saXZpZXIubWF0ekA2d2lu ZC5jb207IGFyeWJjaGVua29Ac29sYXJmbGFyZS5jb207IEtpcmFuIEt1bWFyDQo+ID4+IEtva2tp bGFnYWRkYSA8a2lyYW5rdW1hcmtAbWFydmVsbC5jb20+DQo+ID4+IFN1YmplY3Q6IFJlOiBbRVhU XSBSZTogW1BBVENIIHY2IDQvNF0ga2VybmVsL2xpbnV4L2tuaTogYWRkIElPVkENCj4gPj4gc3Vw cG9ydCBpbiBrbmkgbW9kdWxlDQo+ID4+DQo+ID4+IE9uIDcvMTIvMjAxOSAxMTozOCBBTSwgVmFt c2kgS3Jpc2huYSBBdHR1bnVydSB3cm90ZToNCj4gPj4+DQo+ID4+Pg0KPiA+Pj4NCj4gPj4+IC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ID4+PiAtLQ0KPiA+Pj4gLS0tLS0tLS0tLQ0KPiA+Pj4gKkZyb206KiBGZXJy dWggWWlnaXQgPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+DQo+ID4+PiAqU2VudDoqIFRodXJzZGF5 LCBKdWx5IDExLCAyMDE5IDEwOjAwIFBNDQo+ID4+PiAqVG86KiBWYW1zaSBLcmlzaG5hIEF0dHVu dXJ1OyBkZXZAZHBkay5vcmcNCj4gPj4+ICpDYzoqIG9saXZpZXIubWF0ekA2d2luZC5jb207IGFy eWJjaGVua29Ac29sYXJmbGFyZS5jb207IEtpcmFuIEt1bWFyDQo+ID4+PiBLb2traWxhZ2FkZGEN Cj4gPj4+ICpTdWJqZWN0OiogW0VYVF0gUmU6IFtQQVRDSCB2NiA0LzRdIGtlcm5lbC9saW51eC9r bmk6IGFkZCBJT1ZBDQo+ID4+PiBzdXBwb3J0IGluIGtuaSBtb2R1bGUNCj4gPj4+DQo+ID4+PiBF eHRlcm5hbCBFbWFpbA0KPiA+Pj4NCj4gPj4+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4+PiAtLSBPbiA2LzI1 LzIwMTkgNDo1NyBBTSwgdmF0dHVudXJ1QG1hcnZlbGwuY29tIHdyb3RlOg0KPiA+Pj4+IEZyb206 IEtpcmFuIEt1bWFyIEsgPGtpcmFua3VtYXJrQG1hcnZlbGwuY29tPg0KPiA+Pj4+DQo+ID4+Pj4g UGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBrZXJuZWwgbW9kdWxlIHRvIHdvcmsgaW4gSU9WQSA9IFZB IG1vZGUsIHRoZQ0KPiA+Pj4+IGlkZWEgaXMgdG8gZ2V0IHBoeXNpY2FsIGFkZHJlc3MgZnJvbSBp b3ZhIGFkZHJlc3MgdXNpbmcNCj4gPj4+PiBpb21tdV9pb3ZhX3RvX3BoeXMgQVBJIGFuZCBsYXRl ciB1c2UgcGh5c190b192aXJ0IEFQSSB0byBjb252ZXJ0DQo+ID4+Pj4gdGhlIHBoeXNpY2FsIGFk ZHJlc3MgdG8ga2VybmVsIHZpcnR1YWwgYWRkcmVzcy4NCj4gPj4+Pg0KPiA+Pj4+IFdoZW4gY29t cGFyZWQgd2l0aCBJT1ZBID0gUEEgbW9kZSwgdGhlcmUgaXMgbm8gcGVyZm9ybWFuY2UgZHJvcA0K PiA+PiB3aXRoDQo+ID4+Pj4gdGhpcyBhcHByb2FjaC4NCj4gPj4+Pg0KPiA+Pj4+IFRoaXMgYXBw cm9hY2ggZG9lcyBub3Qgd29yayB3aXRoIHRoZSBrZXJuZWwgdmVyc2lvbnMgbGVzcyB0aGFuDQo+ ID4+Pj4gNC40LjAgYmVjYXVzZSBvZiBBUEkgY29tcGF0aWJpbGl0eSBpc3N1ZXMuDQo+ID4+Pj4N Cj4gPj4+PiBTaWduZWQtb2ZmLWJ5OiBLaXJhbiBLdW1hciBLIDxraXJhbmt1bWFya0BtYXJ2ZWxs LmNvbT4NCj4gPj4+PiBTaWduZWQtb2ZmLWJ5OiBWYW1zaSBBdHR1bnVydSA8dmF0dHVudXJ1QG1h cnZlbGwuY29tPg0KPiA+Pj4NCj4gPj4+IDwuLi4+DQo+ID4+Pg0KPiA+Pj4+IEBAIC0zNTEsMTUg KzM1NCw1NiBAQCBrbmlfaW9jdGxfY3JlYXRlKHN0cnVjdCBuZXQgKm5ldCwgdWludDMyX3QNCj4g Pj4+PiBpb2N0bF9udW0sDQo+ID4+Pj4gwqDCoMKgwqDCoMKgwqAgc3RybmNweShrbmktPm5hbWUs IGRldl9pbmZvLm5hbWUsIFJURV9LTklfTkFNRVNJWkUpOw0KPiA+Pj4+DQo+ID4+Pj4gwqDCoMKg wqDCoMKgwqAgLyogVHJhbnNsYXRlIHVzZXIgc3BhY2UgaW5mbyBpbnRvIGtlcm5lbCBzcGFjZSBp bmZvICovDQo+ID4+Pj4gLcKgwqDCoMKgIGtuaS0+dHhfcSA9IHBoeXNfdG9fdmlydChkZXZfaW5m by50eF9waHlzKTsNCj4gPj4+PiAtwqDCoMKgwqAga25pLT5yeF9xID0gcGh5c190b192aXJ0KGRl dl9pbmZvLnJ4X3BoeXMpOw0KPiA+Pj4+IC3CoMKgwqDCoCBrbmktPmFsbG9jX3EgPSBwaHlzX3Rv X3ZpcnQoZGV2X2luZm8uYWxsb2NfcGh5cyk7DQo+ID4+Pj4gLcKgwqDCoMKgIGtuaS0+ZnJlZV9x ID0gcGh5c190b192aXJ0KGRldl9pbmZvLmZyZWVfcGh5cyk7DQo+ID4+Pj4gLQ0KPiA+Pj4+IC3C oMKgwqDCoCBrbmktPnJlcV9xID0gcGh5c190b192aXJ0KGRldl9pbmZvLnJlcV9waHlzKTsNCj4g Pj4+PiAtwqDCoMKgwqAga25pLT5yZXNwX3EgPSBwaHlzX3RvX3ZpcnQoZGV2X2luZm8ucmVzcF9w aHlzKTsNCj4gPj4+PiAtwqDCoMKgwqAga25pLT5zeW5jX3ZhID0gZGV2X2luZm8uc3luY192YTsN Cj4gPj4+PiAtwqDCoMKgwqAga25pLT5zeW5jX2t2YSA9IHBoeXNfdG9fdmlydChkZXZfaW5mby5z eW5jX3BoeXMpOw0KPiA+Pj4+ICvCoMKgwqDCoCBpZiAoZGV2X2luZm8uaW92YV9tb2RlKSB7DQo+ ID4+Pj4gKyNpZiBLRVJORUxfVkVSU0lPTig0LCA0LCAwKSA+IExJTlVYX1ZFUlNJT05fQ09ERQ0K PiA+Pj4NCj4gPj4+IFdlIGhhdmUgImtuaS9jb21wYXQuaCIgdG8gcHV0IHRoZSB2ZXJzaW9uIGNo ZWNrcywgcGxlYXNlIHVzZQ0KPiA+Pj4gYWJzdHJhY3RlZCBmZWF0dXJlIGNoZWNrcyBvbmx5IGlu IHRoZSBjb2RlLg0KPiA+Pj4gRnJvbSBleHBlcmllbmNlIHRoaXMgZ29lcyB1Z2x5IHF1aWNrbHkg d2l0aCB0aGUgYWRkaXRpb24gdG8gZGlzdHJvDQo+ID4+PiBrZXJuZWxzIGFuZCB0aGVpciBzcGVj aWZpYyB2ZXJzaW9uaW5nLCBzbyBiZXR0ZXIgdG8gaGlkZSB0aGVzZSBhbGwNCj4gPj4+IGZyb20g dGhlDQo+ID4+IHNvdXJjZSBjb2RlLg0KPiA+Pj4NCj4gPj4+IEFuZCB0aGlzIHZlcnNpb24gcmVx dWlyZW1lbnQgbmVlZHMgdG8gYmUgZG9jdW1lbnRlZCBpbiBrbmkgZG9jLg0KPiA+Pj4NCj4gPj4+ IGFjaw0KPiA+Pj4NCj4gPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICh2b2lkKXBjaTsN Cj4gPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHByX2VycigiS2VybmVsIHZlcnNpb24g aXMgbm90IHN1cHBvcnRlZFxuIik7DQo+ID4+Pg0KPiA+Pj4gQ2FuIHlvdSBwbGVhc2UgaW5jbHVk ZSAnaW92YV9tb2RlJyBjb25kaXRpb24gaW50byB0aGUgbWVzc2FnZSBsb2csDQo+ID4+PiBiZWNh dXNlIHRoaXMga2VybmVsIHZlcnNpb24gaXMgc3VwcG9ydGVkIGlmIHVzZXIgd2FudHMgdG8gdXNl IHZpYQ0KPiA+PiAnaW92YV9tb2RlID09IDAnIGNvbmRpdGlvbi4NCj4gPj4+DQo+ID4+PiBhY2sN Cj4gPj4+DQo+ID4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVJTlZBTDsN Cj4gPj4+PiArI2Vsc2UNCj4gPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBjaSA9IHBj aV9nZXRfZGV2aWNlKGRldl9pbmZvLnZlbmRvcl9pZCwNCj4gPj4+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRldl9p bmZvLmRldmljZV9pZCwgTlVMTCk7DQo+ID4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB3 aGlsZSAocGNpKSB7DQo+ID4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgaWYgKChwY2ktPmJ1cy0+bnVtYmVyID09IGRldl9pbmZvLmJ1cykgJiYNCj4gPj4+PiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChQQ0lfU0xP VChwY2ktPmRldmZuKSA9PSBkZXZfaW5mby5kZXZpZCkNCj4gPj4+PiArJiYNCj4gPj4+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChQQ0lfRlVOQyhw Y2ktPmRldmZuKSA9PQ0KPiA+Pj4+ICtkZXZfaW5mby5mdW5jdGlvbikpIHsNCj4gPj4+PiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZG9t YWluID0NCj4gPj4+PiAraW9tbXVfZ2V0X2RvbWFpbl9mb3JfZGV2KCZwY2ktPmRldik7DQo+ID4+ Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGJyZWFrOw0KPiA+Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIH0NCj4gPj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBw Y2kgPSBwY2lfZ2V0X2RldmljZShkZXZfaW5mby52ZW5kb3JfaWQsDQo+ID4+Pj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgZGV2X2luZm8uZGV2aWNlX2lkLA0KPiA+Pj4+ICtwY2kpOw0KPiA+ Pj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQ0KPiA+Pj4NCj4gPj4+IFdoYXQgaWYgJ3Bj aScgaXMgTlVMTCBoZXJlPw0KPiA+Pj4gSW4ga25pIGl0IGlzIG5vdCByZXF1aXJlZCB0byBwcm92 aWRlIGEgZGV2aWNlIGF0IGFsbC4NCj4gPj4+DQo+ID4+PiBBY2ssIHdpbGwgYWRkIGEgTlVMTCBj aGVjay4NCj4gPj4+IG90aGVyIHBvaW50IGlzIG5vdCBjbGVhciB0byBtZSwgZGV2aWNlIGluZm8g aXMgYWJzb2x1dGVseSByZXF1aXJlZA0KPiA+Pj4gYXQgbGVhc3QgZm9ywqAgSU9WQT1WQSBtb2Rl LCBzaW5jZSBpdCByZXF1aXJlcyB0byBwcm9jdXJlIGlvbW11DQo+ID4+PiBkb21haW4NCj4gPj4g ZGV0YWlscy4NCj4gPj4NCj4gPj4gImRldmljZSBpbmZvIGlzIGFic29sdXRlbHkgcmVxdWlyZWQi ICpvbmx5KiBmb3IgSU9WQT1WQSBtb2RlLCBzbyB1c2VyDQo+ID4+IG1heSBza2lwIHRvIHByb3Zp ZGUgaXQuDQo+ID4+DQo+ID4+PiBBbnkgdGhvdWdodHMgb3Igd2F5cyB0byBhZGRyZXNzIHRoaXMg d2l0aG91dCBkZXZpY2UuPw0KPiA+Pg0KPiA+PiBSZXR1cm4gZXJyb3IgaWYgJ2lvdmFfbW9kZScg cmVxdWVzdGVkIGJ1dCBkZXZpY2UgaW5mbyBub3Q/DQo+ID4+DQo+ID4+IEJ1dCB5b3UgZGlkbid0 IHJlcGxpZWQgdG8gcGFzc2luZyAnaW92YV9tb2RlJyBmcm9tIGFwcGxpY2F0aW9uLCBJDQo+ID4+ IHdvdWxkIGxpa2UgaGVhciB3aGF0IHlvdSBhcmUgdGhpbmtpbmcgYWJvdXQgaXQuLg0KPiA+DQo+ ID4gT25lIHF1ZXJ5IHJlZ2FyZGluZyBkZWZpbmluZyBjb25maWcgZm9yIGtuaSBXaGVyZSB0aGlz IGNvbmZpZyBjb21lcywNCj4gPiBlYWwgb3Iga25pIHNhbXBsZSBhcHAgb3IgS05JIHB1YmxpYyBB UEk/DQo+IA0KPiBDb25maWcgY29tZXMgZnJvbSB0aGUgYXBwbGljYXRpb24sIGJ1dCB0aGUgS05J IHB1YmxpYyBBUEkgaGFzIHRvIHZhbGlkYXRlIGlmIHRoZQ0KPiByZXF1ZXN0IGNhbiBiZSBqdXN0 aWZpZWQgYW5kIHJldHVybiBlcnJvciBpZiBjYW4ndCBiZS4NCj4gSSB0aGluayB0aGUgS05JIEFQ SSBjaGVjayBpcyByZXF1aXJlZCB0byBiZSBhYmxlIHRvIHJlbW92ZSB0aGUgY2hlY2sgaW4gdGhl IGVhbC4NCj4gDQoNCklmIGVhbCBpcyBlbmFibGVkIGluIGlvdmE9VkEgbW9kZSwga25pIGFwcGxp Y2F0aW9uIGNhbiBvcGVyYXRlIGluIHRoYXQgVkEgbW9kZSByaWdodC4NCkkgZGlkIG5vdCB1bmRl cnN0YW5kIHRoZSBhcHBsaWNhdGlvbidzIHVzZSBvciByZXF1aXJlbWVudCB0byBjb25maWd1cmUv ZW5mb3JjZSBQQSBtb2RlDQp3aGVuIGVhbCBpcyBlbmFibGVkIHdpdGggaW92YT1WQSBtb2RlLg0K DQpIb3cgYWJvdXQgdXNpbmcgcnRlX2VhbF9pb3ZhX21vZGUoKSA9PSBWQSBjaGVjayBpbiBrbmkg YXBwbGljYXRpb24gYW5kIGtuaSBsaWIgdG8gcGFzcyBkZXZpY2UNCmluZm8ocGNpKSBhbmQgYWxz byBmb3IgcG9vbCBjcmVhdGlvbih3aXRoIG5vIHBhZ2Ugc3BsaXQgZmxhZyksIG1lYW5pbmcgYWxs IHRoZXNlIHBhdGNoIGNoYW5nZXMgd2lsbCBnbw0KdW5kZXIgdGhhdCBjaGVjay4NCg0KQ3VycmVu dCBlYWwgY2hlY2soaXMga25pIG1vZHVsZSBpbnNlcnRlZCB3aGVuIGVhbCBtb2RlIGlzIFZBKSBh bHNvIGNhbiBiZSBhZGRyZXNzZWQgYnkgY2hlY2tpbmcgDQpsaW51eCB2ZXJzaW9uLCB3aGVyZSBp ZiBydGVfZWFsX2lvdmFfbW9kZSgpIGlzICBWQSBidXQga2VybmVsIHZlcnNpb24gPCA0LjQuMCwg DQpQQSBtb2RlIGNhbiBiZSBlbmZvcmNlZCBhbmQgYWxsIHdpbGwgYmUgY29uZmlndXJlZCBpbiBQ QSBtb2RlLg0KDQpXaXRoIGFib3ZlIGFwcHJvYWNoLCBJIHRoaW5rIFBBIG1vZGUgaXMgc3RpbGwg aW50YWN0IGFuZCB0aGVyZSB3b3VsZCBub3QgYmUgYW55IGlzc3Vlcy4NCg0KPiA+DQo+ID4+DQo+ ID4+Pg0KPiA+Pj4gPC4uLj4NCj4gPj4+DQo+ID4+Pj4gQEAgLTE4Niw3ICsyMDIsMTAgQEAga25p X2ZpZm9fdHJhbnNfcGEydmEoc3RydWN0IGtuaV9kZXYgKmtuaSwNCj4gPj4+PiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybjsNCj4gPj4+Pg0KPiA+ Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmb3IgKGkgPSAwOyBpIDwgbnVtX3J4 OyBpKyspIHsNCj4gPj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBrdmEgPSBwYTJrdmEoa25pLT5wYVtpXSk7DQo+ID4+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKGxpa2VseShrbmktPmlvdmFfbW9kZSA9PSAxKSkNCj4g Pj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAga3ZhID0gaW92YTJrdmEoa25pLCBrbmktPnBhW2ldKTsNCj4gPj4+PiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBlbHNlDQo+ID4+Pj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGt2YSA9IHBhMmt2 YShrbmktPnBhW2ldKTsNCj4gPj4+DQo+ID4+PiBUbyByZWR1Y2UgdGhlIGNodXJuLCB3aGF0IGFi b3V0IHVwZGF0aW5nIHRoZSAncGEya3ZhKCknIGFuZCBwdXQgdGhlDQo+ID4+PiAiKGtuaS0+aW92 YV9tb2RlID09IDEpIiBjaGVjayB0aGVyZT8gRG9lcyBpdCBoZWxwPyAobm90IG9ubHkNCj4gPj4+ ICdwYTJrdmEoKScgYnV0IGl0cyBmcmllbmRzIGFsc28sIGFuZCBpZiBpdCBtYWtlcyBtb3JlIHNl bnNlIGFncmVlIHRvDQo+ID4+PiByZW5hbWUgdGhlIGZ1bmN0aW9ucykNCj4gPj4+DQo+ID4+PiBO bywgaW4gVkEgbW9kZSwga25pLT5wYVtpXSBwb2ludHMgdG8gaW92YSBhZGRyZXNzLCBwYTJrdmEo KSBvZiBpb3ZhDQo+ID4+PiBhZGRyZXNzIG1pZ2h0IGNyYXNoLCBoZW5jZSB0aGUgaWYuLmVsc2Ug Y2hlY2sgaXMgYWRkZWQuDQo+ID4+DQo+ID4+IEkgdW5kZXJzdGFuZCB0aGF0IHBhcnQuDQo+ID4+ IFdoYXQgSSBhbSBzdWdnZXN0aW9uIGlzIHNvbWV0aGluZyBsaWtlIHRoaXM6DQo+ID4+DQo+ID4+ IGt2YSA9IGNvbW1vbl9mdW5jdGlvbihrbmksIGtuaS0+cGFbaV0pOw0KPiA+Pg0KPiA+PiAtLS0N Cj4gPj4NCj4gPj4gY29tbW9uX2Z1bmN0aW9uKCkgew0KPiA+PiAJaWYgKHVubGlrZWx5KGtuaS0+ aW92YV9tb2RlID09IDEpKQ0KPiA+PiAJCXJldHVybiBpb3ZhMmt2YShrbmksIGtuaS0+cGFbaV0p Ow0KPiA+PiAJcmV0dXJuIHBhMmt2YShrbmktPnBhW2ldKTsNCj4gPj4gfQ0KPiA+Pg0KPiA+PiBU byBoaWRlIHRoZSBjaGVjayBpbiB0aGUgZnVuY3Rpb24gYW5kIG1ha2UgY29kZSBtb3JlIHJlYWRh YmxlDQo+ID4+DQo+ID4+Pg0KPiA+Pj4gQW5kIGJ0dywgd2h5ICdsaWtlbHknIGNhc2UgaXMgImtu aS0+aW92YV9tb2RlID09IDEiPw0KPiA+Pj4NCj4gPj4+IG5vIHNwZWNpZmljIGNhc2Ugb3RoZXIg dGhhbiBicmFuY2ggcHJlZGljdCwgd2lsbCByZW1vdmUgdGhpcyBpZiBpdCdzDQo+ID4+PiByZWFs bHkgaGFybWZ1bCB0byBQQSBtb2RlLg0KPiA+DQoNCg==