From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <zhihong.wang@intel.com>
Received: from mga07.intel.com (mga07.intel.com [134.134.136.100])
 by dpdk.org (Postfix) with ESMTP id 7428D5B34
 for <dev@dpdk.org>; Mon,  2 Apr 2018 03:58:15 +0200 (CEST)
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from orsmga004.jf.intel.com ([10.7.209.38])
 by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 01 Apr 2018 18:58:12 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.48,393,1517904000"; d="scan'208";a="187840901"
Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202])
 by orsmga004.jf.intel.com with ESMTP; 01 Apr 2018 18:58:11 -0700
Received: from fmsmsx121.amr.corp.intel.com (10.18.125.36) by
 fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS)
 id 14.3.319.2; Sun, 1 Apr 2018 18:58:11 -0700
Received: from shsmsx104.ccr.corp.intel.com (10.239.4.70) by
 fmsmsx121.amr.corp.intel.com (10.18.125.36) with Microsoft SMTP Server (TLS)
 id 14.3.319.2; Sun, 1 Apr 2018 18:58:11 -0700
Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.235]) by
 SHSMSX104.ccr.corp.intel.com ([169.254.5.226]) with mapi id 14.03.0319.002;
 Mon, 2 Apr 2018 09:58:08 +0800
From: "Wang, Zhihong" <zhihong.wang@intel.com>
To: Maxime Coquelin <maxime.coquelin@redhat.com>, "dev@dpdk.org" <dev@dpdk.org>
CC: "Tan, Jianfeng" <jianfeng.tan@intel.com>, "Bie, Tiwei"
 <tiwei.bie@intel.com>, "yliu@fridaylinux.org" <yliu@fridaylinux.org>,
 "Liang, Cunming" <cunming.liang@intel.com>, "Wang, Xiao W"
 <xiao.w.wang@intel.com>, "Daly, Dan" <dan.daly@intel.com>
Thread-Topic: [PATCH v4 2/5] vhost: support selective datapath
Thread-Index: AQHTyA4KB9rdOb9zJE69eJEcg7iRTaPpV6cAgANikoA=
Date: Mon, 2 Apr 2018 01:58:08 +0000
Message-ID: <8F6C2BD409508844A0EFC19955BE094151418413@SHSMSX103.ccr.corp.intel.com>
References: <1517614137-62926-1-git-send-email-zhihong.wang@intel.com>
 <20180310100148.12030-1-zhihong.wang@intel.com>
 <20180310100148.12030-3-zhihong.wang@intel.com>
 <ef1262a7-4af2-4b49-e7c9-ad8173902cbb@redhat.com>
In-Reply-To: <ef1262a7-4af2-4b49-e7c9-ad8173902cbb@redhat.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.239.127.40]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Subject: Re: [dpdk-dev] [PATCH v4 2/5] vhost: support selective datapath
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Mon, 02 Apr 2018 01:58:16 -0000

DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTWF4aW1lIENvcXVlbGlu
IFttYWlsdG86bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb21dDQo+IFNlbnQ6IFNhdHVyZGF5LCBN
YXJjaCAzMSwgMjAxOCAyOjEwIFBNDQo+IFRvOiBXYW5nLCBaaGlob25nIDx6aGlob25nLndhbmdA
aW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+IENjOiBUYW4sIEppYW5mZW5nIDxqaWFuZmVuZy50
YW5AaW50ZWwuY29tPjsgQmllLCBUaXdlaQ0KPiA8dGl3ZWkuYmllQGludGVsLmNvbT47IHlsaXVA
ZnJpZGF5bGludXgub3JnOyBMaWFuZywgQ3VubWluZw0KPiA8Y3VubWluZy5saWFuZ0BpbnRlbC5j
b20+OyBXYW5nLCBYaWFvIFcgPHhpYW8udy53YW5nQGludGVsLmNvbT47IERhbHksDQo+IERhbiA8
ZGFuLmRhbHlAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHY0IDIvNV0gdmhvc3Q6
IHN1cHBvcnQgc2VsZWN0aXZlIGRhdGFwYXRoDQo+IA0KPiANCj4gDQo+IE9uIDAzLzEwLzIwMTgg
MTE6MDEgQU0sIFpoaWhvbmcgV2FuZyB3cm90ZToNCj4gPiBUaGlzIHBhdGNoIHNldCBpbnRyb2R1
Y2VzIHN1cHBvcnQgZm9yIHNlbGVjdGl2ZSBkYXRhcGF0aCBpbiBEUERLIHZob3N0LXVzZXINCj4g
PiBsaWIuIHZEUEEgc3RhbmRzIGZvciB2aG9zdCBEYXRhIFBhdGggQWNjZWxlcmF0aW9uLiBUaGUg
aWRlYSBpcyB0byBzdXBwb3J0DQo+ID4gdmlydGlvIHJpbmcgY29tcGF0aWJsZSBkZXZpY2VzIHRv
IHNlcnZlIHZpcnRpbyBkcml2ZXIgZGlyZWN0bHkgdG8gZW5hYmxlDQo+ID4gZGF0YXBhdGggYWNj
ZWxlcmF0aW9uLg0KPiA+DQo+ID4gQSBzZXQgb2YgZGV2aWNlIG9wcyBpcyBkZWZpbmVkIGZvciBk
ZXZpY2Ugc3BlY2lmaWMgb3BlcmF0aW9uczoNCj4gPg0KPiA+ICAgICAgIGEuIHF1ZXVlX251bV9n
ZXQ6IENhbGxlZCB0byBnZXQgc3VwcG9ydGVkIHF1ZXVlIG51bWJlciBvZiB0aGUNCj4gZGV2aWNl
Lg0KPiA+DQo+ID4gICAgICAgYi4gZmVhdHVyZV9nZXQ6IENhbGxlZCB0byBnZXQgc3VwcG9ydGVk
IGZlYXR1cmVzIG9mIHRoZSBkZXZpY2UuDQo+ID4NCj4gPiAgICAgICBjLiBwcm90b2NvbF9mZWF0
dXJlX2dldDogQ2FsbGVkIHRvIGdldCBzdXBwb3J0ZWQgcHJvdG9jb2wgZmVhdHVyZXMgb2YNCj4g
PiAgICAgICAgICB0aGUgZGV2aWNlLg0KPiA+DQo+ID4gICAgICAgZC4gZGV2X2NvbmY6IENhbGxl
ZCB0byBjb25maWd1cmUgdGhlIGFjdHVhbCBkZXZpY2Ugd2hlbiB0aGUgdmlydGlvDQo+ID4gICAg
ICAgICAgZGV2aWNlIGJlY29tZXMgcmVhZHkuDQo+ID4NCj4gPiAgICAgICBlLiBkZXZfY2xvc2U6
IENhbGxlZCB0byBjbG9zZSB0aGUgYWN0dWFsIGRldmljZSB3aGVuIHRoZSB2aXJ0aW8gZGV2aWNl
DQo+ID4gICAgICAgICAgaXMgc3RvcHBlZC4NCj4gPg0KPiA+ICAgICAgIGYuIHZyaW5nX3N0YXRl
X3NldDogQ2FsbGVkIHRvIGNoYW5nZSB0aGUgc3RhdGUgb2YgdGhlIHZyaW5nIGluIHRoZQ0KPiA+
ICAgICAgICAgIGFjdHVhbCBkZXZpY2Ugd2hlbiB2cmluZyBzdGF0ZSBjaGFuZ2VzLg0KPiA+DQo+
ID4gICAgICAgZy4gZmVhdHVyZV9zZXQ6IENhbGxlZCB0byBzZXQgdGhlIG5lZ290aWF0ZWQgZmVh
dHVyZXMgdG8gZGV2aWNlLg0KPiA+DQo+ID4gICAgICAgaC4gbWlncmF0aW9uX2RvbmU6IENhbGxl
ZCB0byBhbGxvdyB0aGUgZGV2aWNlIHRvIHJlc3BvbnNlIHRvIFJBUlANCj4gPiAgICAgICAgICBz
ZW5kaW5nLg0KPiA+DQo+ID4gICAgICAgaS4gZ2V0X3ZmaW9fZ3JvdXBfZmQ6IENhbGxlZCB0byBn
ZXQgdGhlIFZGSU8gZ3JvdXAgZmQgb2YgdGhlIGRldmljZS4NCj4gPg0KPiA+ICAgICAgIGouIGdl
dF92ZmlvX2RldmljZV9mZDogQ2FsbGVkIHRvIGdldCB0aGUgVkZJTyBkZXZpY2UgZmQgb2YgdGhl
IGRldmljZS4NCj4gPg0KPiA+ICAgICAgIGsuIGdldF9ub3RpZnlfYXJlYTogQ2FsbGVkIHRvIGdl
dCB0aGUgbm90aWZ5IGFyZWEgaW5mbyBvZiB0aGUgcXVldWUuDQo+ID4NCj4gPiBTaWduZWQtb2Zm
LWJ5OiBaaGlob25nIFdhbmcgPHpoaWhvbmcud2FuZ0BpbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4g
Q2hhbmdlcyBpbiB2NDoNCj4gPg0KPiA+ICAgMS4gUmVtb3ZlIHRoZSAiZW5naW5lIiBjb25jZXB0
IGluIHRoZSBsaWIuDQo+ID4NCj4gPiAtLS0NCj4gPiBDaGFuZ2VzIGluIHYyOg0KPiA+DQo+ID4g
ICAxLiBBZGQgVkZJTyByZWxhdGVkIHZEUEEgZGV2aWNlIG9wcy4NCj4gPg0KPiA+ICAgbGliL2xp
YnJ0ZV92aG9zdC9NYWtlZmlsZSAgICAgICAgICAgICAgfCAgNCArLQ0KPiA+ICAgbGliL2xpYnJ0
ZV92aG9zdC9ydGVfdmRwYS5oICAgICAgICAgICAgfCA5NA0KPiArKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysNCj4gPiAgIGxpYi9saWJydGVfdmhvc3QvcnRlX3Zob3N0X3ZlcnNpb24u
bWFwIHwgIDYgKysrDQo+ID4gICBsaWIvbGlicnRlX3Zob3N0L3ZkcGEuYyAgICAgICAgICAgICAg
ICB8IDk2DQo+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiAgIDQgZmls
ZXMgY2hhbmdlZCwgMTk4IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pDQo+ID4gICBjcmVh
dGUgbW9kZSAxMDA2NDQgbGliL2xpYnJ0ZV92aG9zdC9ydGVfdmRwYS5oDQo+ID4gICBjcmVhdGUg
bW9kZSAxMDA2NDQgbGliL2xpYnJ0ZV92aG9zdC92ZHBhLmMNCj4gPg0KPiA+IGRpZmYgLS1naXQg
YS9saWIvbGlicnRlX3Zob3N0L01ha2VmaWxlIGIvbGliL2xpYnJ0ZV92aG9zdC9NYWtlZmlsZQ0K
PiA+IGluZGV4IDVkNmM2YWJhZS4uMzcwNDRhYzAzIDEwMDY0NA0KPiA+IC0tLSBhL2xpYi9saWJy
dGVfdmhvc3QvTWFrZWZpbGUNCj4gPiArKysgYi9saWIvbGlicnRlX3Zob3N0L01ha2VmaWxlDQo+
ID4gQEAgLTIyLDkgKzIyLDkgQEAgTERMSUJTICs9IC1scnRlX2VhbCAtbHJ0ZV9tZW1wb29sIC1s
cnRlX21idWYgLQ0KPiBscnRlX2V0aGRldiAtbHJ0ZV9uZXQNCj4gPg0KPiA+ICAgIyBhbGwgc291
cmNlIGFyZSBzdG9yZWQgaW4gU1JDUy15DQo+ID4gICBTUkNTLSQoQ09ORklHX1JURV9MSUJSVEVf
VkhPU1QpIDo9IGZkX21hbi5jIGlvdGxiLmMgc29ja2V0LmMgdmhvc3QuYw0KPiBcDQo+ID4gLQkJ
CQkJdmhvc3RfdXNlci5jIHZpcnRpb19uZXQuYw0KPiA+ICsJCQkJCXZob3N0X3VzZXIuYyB2aXJ0
aW9fbmV0LmMgdmRwYS5jDQo+ID4NCj4gPiAgICMgaW5zdGFsbCBpbmNsdWRlcw0KPiA+IC1TWU1M
SU5LLSQoQ09ORklHX1JURV9MSUJSVEVfVkhPU1QpLWluY2x1ZGUgKz0gcnRlX3Zob3N0LmgNCj4g
PiArU1lNTElOSy0kKENPTkZJR19SVEVfTElCUlRFX1ZIT1NUKS1pbmNsdWRlICs9IHJ0ZV92aG9z
dC5oDQo+IHJ0ZV92ZHBhLmgNCj4gPg0KPiA+ICAgaW5jbHVkZSAkKFJURV9TREspL21rL3J0ZS5s
aWIubWsNCj4gPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV92aG9zdC9ydGVfdmRwYS5oIGIvbGli
L2xpYnJ0ZV92aG9zdC9ydGVfdmRwYS5oDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBp
bmRleCAwMDAwMDAwMDAuLmE0YmJiZDkzZA0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysgYi9s
aWIvbGlicnRlX3Zob3N0L3J0ZV92ZHBhLmgNCj4gPiBAQCAtMCwwICsxLDk0IEBADQo+ID4gKy8q
IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gPiArICogQ29weXJpZ2h0
KGMpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24NCj4gPiArICovDQo+ID4gKw0KPiA+ICsjaWZuZGVm
IF9SVEVfVkRQQV9IXw0KPiA+ICsjZGVmaW5lIF9SVEVfVkRQQV9IXw0KPiA+ICsNCj4gPiArLyoq
DQo+ID4gKyAqIEBmaWxlDQo+ID4gKyAqDQo+ID4gKyAqIERldmljZSBzcGVjaWZpYyB2aG9zdCBs
aWINCj4gPiArICovDQo+ID4gKw0KPiA+ICsjaW5jbHVkZSA8cnRlX3BjaS5oPg0KPiA+ICsjaW5j
bHVkZSAicnRlX3Zob3N0LmgiDQo+ID4gKw0KPiA+ICsjZGVmaW5lIE1BWF9WRFBBX05BTUVfTEVO
IDEyOA0KPiA+ICsNCj4gPiArZW51bSB2ZHBhX2FkZHJfdHlwZSB7DQo+ID4gKwlQQ0lfQUREUiwN
Cj4gPiArCVZEUEFfQUREUl9NQVgNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0cnVjdCBydGVfdmRw
YV9kZXZfYWRkciB7DQo+ID4gKwllbnVtIHZkcGFfYWRkcl90eXBlIHR5cGU7DQo+ID4gKwl1bmlv
biB7DQo+ID4gKwkJdWludDhfdCBfX2R1bW15WzY0XTsNCj4gPiArCQlzdHJ1Y3QgcnRlX3BjaV9h
ZGRyIHBjaV9hZGRyOw0KPiA+ICsJfTsNCj4gPiArfTsNCj4gPiArDQo+ID4gKy8qIEdldCBjYXBh
YmlsaXRpZXMgb2YgdGhpcyBkZXZpY2UgKi8NCj4gPiArdHlwZWRlZiBpbnQgKCp2ZHBhX2Rldl9x
dWV1ZV9udW1fZ2V0X3QpKGludCBkaWQsIHVpbnQzMl90DQo+ICpxdWV1ZV9udW0pOw0KPiA+ICt0
eXBlZGVmIGludCAoKnZkcGFfZGV2X2ZlYXR1cmVfZ2V0X3QpKGludCBkaWQsIHVpbnQ2NF90ICpm
ZWF0dXJlcyk7DQo+ID4gKw0KPiA+ICsvKiBEcml2ZXIgY29uZmlndXJlL2Nsb3NlIHRoZSBkZXZp
Y2UgKi8NCj4gPiArdHlwZWRlZiBpbnQgKCp2ZHBhX2Rldl9jb25mX3QpKGludCB2aWQpOw0KPiA+
ICt0eXBlZGVmIGludCAoKnZkcGFfZGV2X2Nsb3NlX3QpKGludCB2aWQpOw0KPiA+ICsNCj4gPiAr
LyogRW5hYmxlL2Rpc2FibGUgdGhpcyB2cmluZyAqLw0KPiA+ICt0eXBlZGVmIGludCAoKnZkcGFf
dnJpbmdfc3RhdGVfc2V0X3QpKGludCB2aWQsIGludCB2cmluZywgaW50IHN0YXRlKTsNCj4gPiAr
DQo+ID4gKy8qIFNldCBmZWF0dXJlcyB3aGVuIGNoYW5nZWQgKi8NCj4gPiArdHlwZWRlZiBpbnQg
KCp2ZHBhX2ZlYXR1cmVfc2V0X3QpKGludCB2aWQpOw0KPiA+ICsNCj4gPiArLyogRGVzdGluYXRp
b24gb3BlcmF0aW9ucyB3aGVuIG1pZ3JhdGlvbiBkb25lICovDQo+ID4gK3R5cGVkZWYgaW50ICgq
dmRwYV9taWdyYXRpb25fZG9uZV90KShpbnQgdmlkKTsNCj4gPiArDQo+ID4gKy8qIEdldCB0aGUg
dmZpbyBncm91cCBmZCAqLw0KPiA+ICt0eXBlZGVmIGludCAoKnZkcGFfZ2V0X3ZmaW9fZ3JvdXBf
ZmRfdCkoaW50IHZpZCk7DQo+ID4gKw0KPiA+ICsvKiBHZXQgdGhlIHZmaW8gZGV2aWNlIGZkICov
DQo+ID4gK3R5cGVkZWYgaW50ICgqdmRwYV9nZXRfdmZpb19kZXZpY2VfZmRfdCkoaW50IHZpZCk7
DQo+ID4gKw0KPiA+ICsvKiBHZXQgdGhlIG5vdGlmeSBhcmVhIGluZm8gb2YgdGhlIHF1ZXVlICov
DQo+ID4gK3R5cGVkZWYgaW50ICgqdmRwYV9nZXRfbm90aWZ5X2FyZWFfdCkoaW50IHZpZCwgaW50
IHFpZCwgdWludDY0X3QgKm9mZnNldCwNCj4gPiArCQl1aW50NjRfdCAqc2l6ZSk7DQo+ID4gKy8q
IERldmljZSBvcHMgKi8NCj4gPiArc3RydWN0IHJ0ZV92ZHBhX2Rldl9vcHMgew0KPiA+ICsJdmRw
YV9kZXZfcXVldWVfbnVtX2dldF90ICBxdWV1ZV9udW1fZ2V0Ow0KPiA+ICsJdmRwYV9kZXZfZmVh
dHVyZV9nZXRfdCAgICBmZWF0dXJlX2dldDsNCj4gPiArCXZkcGFfZGV2X2ZlYXR1cmVfZ2V0X3Qg
ICAgcHJvdG9jb2xfZmVhdHVyZV9nZXQ7DQo+ID4gKwl2ZHBhX2Rldl9jb25mX3QgICAgICAgICAg
IGRldl9jb25mOw0KPiA+ICsJdmRwYV9kZXZfY2xvc2VfdCAgICAgICAgICBkZXZfY2xvc2U7DQo+
ID4gKwl2ZHBhX3ZyaW5nX3N0YXRlX3NldF90ICAgIHZyaW5nX3N0YXRlX3NldDsNCj4gPiArCXZk
cGFfZmVhdHVyZV9zZXRfdCAgICAgICAgZmVhdHVyZV9zZXQ7DQo+ID4gKwl2ZHBhX21pZ3JhdGlv
bl9kb25lX3QgICAgIG1pZ3JhdGlvbl9kb25lOw0KPiA+ICsJdmRwYV9nZXRfdmZpb19ncm91cF9m
ZF90ICBnZXRfdmZpb19ncm91cF9mZDsNCj4gPiArCXZkcGFfZ2V0X3ZmaW9fZGV2aWNlX2ZkX3Qg
Z2V0X3ZmaW9fZGV2aWNlX2ZkOw0KPiA+ICsJdmRwYV9nZXRfbm90aWZ5X2FyZWFfdCAgICBnZXRf
bm90aWZ5X2FyZWE7DQo+IA0KPiBNYXliZSB5b3UgY291bGQgcmVzZXJ2ZSBzb21lIHJvb20gaGVy
ZSB0byBhdm9pZCBicmVha2luZyB0aGUgQUJJIGluIHRoZQ0KPiBmdXR1cmUgaWYgd2UgbmVlZCB0
byBhZGQgc29tZSBvcHRpb25hbCBvcHMuDQoNCkdvb2Qgc3VnZ2VzdGlvbi4NCg0KPiANCj4gPiAr
fTsNCj4gPiArDQo+ID4gK3N0cnVjdCBydGVfdmRwYV9kZXZpY2Ugew0KPiA+ICsJc3RydWN0IHJ0
ZV92ZHBhX2Rldl9hZGRyIGFkZHI7DQo+ID4gKwlzdHJ1Y3QgcnRlX3ZkcGFfZGV2X29wcyAqb3Bz
Ow0KPiA+ICt9IF9fcnRlX2NhY2hlX2FsaWduZWQ7DQo+ID4gKw0KPiA+ICtleHRlcm4gc3RydWN0
IHJ0ZV92ZHBhX2RldmljZSAqdmRwYV9kZXZpY2VzW107DQo+ID4gK2V4dGVybiB1aW50MzJfdCB2
ZHBhX2RldmljZV9udW07DQo+ID4gKw0KPiA+ICsvKiBSZWdpc3RlciBhIHZkcGEgZGV2aWNlLCBy
ZXR1cm4gZGlkIGlmIHN1Y2Nlc3NmdWwsIC0xIG9uIGZhaWx1cmUgKi8NCj4gPiAraW50IF9fcnRl
X2V4cGVyaW1lbnRhbA0KPiA+ICtydGVfdmRwYV9yZWdpc3Rlcl9kZXZpY2Uoc3RydWN0IHJ0ZV92
ZHBhX2Rldl9hZGRyICphZGRyLA0KPiA+ICsJCXN0cnVjdCBydGVfdmRwYV9kZXZfb3BzICpvcHMp
Ow0KPiA+ICsNCj4gPiArLyogVW5yZWdpc3RlciBhIHZkcGEgZGV2aWNlLCByZXR1cm4gLTEgb24g
ZmFpbHVyZSAqLw0KPiA+ICtpbnQgX19ydGVfZXhwZXJpbWVudGFsDQo+ID4gK3J0ZV92ZHBhX3Vu
cmVnaXN0ZXJfZGV2aWNlKGludCBkaWQpOw0KPiA+ICsNCj4gPiArLyogRmluZCBkaWQgb2YgYSB2
ZHBhIGRldmljZSwgcmV0dXJuIC0xIG9uIGZhaWx1cmUgKi8NCj4gPiAraW50IF9fcnRlX2V4cGVy
aW1lbnRhbA0KPiA+ICtydGVfdmRwYV9maW5kX2RldmljZV9pZChzdHJ1Y3QgcnRlX3ZkcGFfZGV2
X2FkZHIgKmFkZHIpOw0KPiA+ICsNCj4gPiArI2VuZGlmIC8qIF9SVEVfVkRQQV9IXyAqLw0KPiA+
IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3Zob3N0L3J0ZV92aG9zdF92ZXJzaW9uLm1hcA0KPiBi
L2xpYi9saWJydGVfdmhvc3QvcnRlX3Zob3N0X3ZlcnNpb24ubWFwDQo+ID4gaW5kZXggZGYwMTAz
MTI5Li43YmNmZmI0OTAgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL2xpYnJ0ZV92aG9zdC9ydGVfdmhv
c3RfdmVyc2lvbi5tYXANCj4gPiArKysgYi9saWIvbGlicnRlX3Zob3N0L3J0ZV92aG9zdF92ZXJz
aW9uLm1hcA0KPiA+IEBAIC01OSwzICs1OSw5IEBAIERQREtfMTguMDIgew0KPiA+ICAgCXJ0ZV92
aG9zdF92cmluZ19jYWxsOw0KPiA+DQo+ID4gICB9IERQREtfMTcuMDg7DQo+ID4gKw0KPiA+ICtF
WFBFUklNRU5UQUwgew0KPiA+ICsJcnRlX3ZkcGFfcmVnaXN0ZXJfZGV2aWNlOw0KPiA+ICsJcnRl
X3ZkcGFfdW5yZWdpc3Rlcl9kZXZpY2U7DQo+ID4gKwlydGVfdmRwYV9maW5kX2RldmljZV9pZDsN
Cj4gDQo+IEkgdGhpbmsgeW91IG5lZWQgYWxzbyB0byBkZWNsYXJlIHRoZSBuZXcgc3RydWN0cyBo
ZXJlLA0KPiBub3Qgb25seSB0aGUgbmV3IGZ1bmN0aW9ucy4NCg0KT2suDQoNCj4gDQo+ID4gK30g
RFBES18xOC4wMjsNCj4gPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV92aG9zdC92ZHBhLmMgYi9s
aWIvbGlicnRlX3Zob3N0L3ZkcGEuYw0KPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ID4gaW5k
ZXggMDAwMDAwMDAwLi4wYzk1MGQ0NWYNCj4gPiAtLS0gL2Rldi9udWxsDQo+ID4gKysrIGIvbGli
L2xpYnJ0ZV92aG9zdC92ZHBhLmMNCj4gPiBAQCAtMCwwICsxLDk2IEBADQo+ID4gKy8qIFNQRFgt
TGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UNCj4gPiArICogQ29weXJpZ2h0KGMpIDIw
MTggSW50ZWwgQ29ycG9yYXRpb24NCj4gPiArICovDQo+ID4gKw0KPiA+ICsvKioNCj4gPiArICog
QGZpbGUNCj4gPiArICoNCj4gPiArICogRGV2aWNlIHNwZWNpZmljIHZob3N0IGxpYg0KPiA+ICsg
Ki8NCj4gPiArDQo+ID4gKyNpbmNsdWRlIDxzdGRib29sLmg+DQo+ID4gKw0KPiA+ICsjaW5jbHVk
ZSA8cnRlX21hbGxvYy5oPg0KPiA+ICsjaW5jbHVkZSAicnRlX3ZkcGEuaCINCj4gPiArI2luY2x1
ZGUgInZob3N0LmgiDQo+ID4gKw0KPiA+ICtzdHJ1Y3QgcnRlX3ZkcGFfZGV2aWNlICp2ZHBhX2Rl
dmljZXNbTUFYX1ZIT1NUX0RFVklDRV07DQo+ID4gK3VpbnQzMl90IHZkcGFfZGV2aWNlX251bTsN
Cj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgaXNfc2FtZV92ZHBhX2Rldl9hZGRyKHN0cnVjdCBydGVf
dmRwYV9kZXZfYWRkciAqYSwNCj4gPiArCQlzdHJ1Y3QgcnRlX3ZkcGFfZGV2X2FkZHIgKmIpDQo+
ID4gK3sNCj4gDQo+IEdpdmVuIHRoZSBib29sZWFuIG5hdHVyZSBvZiB0aGUgZnVuY3Rpb24gbmFt
ZSwgSSB3b3VsZCByZXR1cm4gMSBpZiBzYW1lDQo+IGRldmljZSwgMCBpZiBkaWZmZXJlbnQuDQoN
Ck9rLCB3aWxsIHVzZSBib29sLg0KDQo+IA0KPiA+ICsJaW50IHJldCA9IDA7DQo+ID4gKw0KPiA+
ICsJaWYgKGEtPnR5cGUgIT0gYi0+dHlwZSkNCj4gPiArCQlyZXR1cm4gLTE7DQo+ID4gKw0KPiA+
ICsJc3dpdGNoIChhLT50eXBlKSB7DQo+ID4gKwljYXNlIFBDSV9BRERSOg0KPiA+ICsJCWlmIChh
LT5wY2lfYWRkci5kb21haW4gIT0gYi0+cGNpX2FkZHIuZG9tYWluIHx8DQo+ID4gKwkJCQlhLT5w
Y2lfYWRkci5idXMgIT0gYi0+cGNpX2FkZHIuYnVzIHx8DQo+ID4gKwkJCQlhLT5wY2lfYWRkci5k
ZXZpZCAhPSBiLT5wY2lfYWRkci5kZXZpZCB8fA0KPiA+ICsJCQkJYS0+cGNpX2FkZHIuZnVuY3Rp
b24gIT0gYi0+cGNpX2FkZHIuZnVuY3Rpb24pDQo+ID4gKwkJCXJldCA9IC0xOw0KPiA+ICsJCWJy
ZWFrOw0KPiA+ICsJZGVmYXVsdDoNCj4gPiArCQlicmVhazsNCj4gPiArCX0NCj4gPiArDQo+ID4g
KwlyZXR1cm4gcmV0Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ICtpbnQgcnRlX3ZkcGFfcmVnaXN0ZXJf
ZGV2aWNlKHN0cnVjdCBydGVfdmRwYV9kZXZfYWRkciAqYWRkciwNCj4gPiArCQlzdHJ1Y3QgcnRl
X3ZkcGFfZGV2X29wcyAqb3BzKQ0KPiA+ICt7DQo+ID4gKwlzdHJ1Y3QgcnRlX3ZkcGFfZGV2aWNl
ICpkZXY7DQo+ID4gKwljaGFyIGRldmljZV9uYW1lW01BWF9WRFBBX05BTUVfTEVOXTsNCj4gPiAr
CWludCBpOw0KPiA+ICsNCj4gPiArCWlmICh2ZHBhX2RldmljZV9udW0gPj0gTUFYX1ZIT1NUX0RF
VklDRSkNCj4gPiArCQlyZXR1cm4gLTE7DQo+ID4gKw0KPiA+ICsJZm9yIChpID0gMDsgaSA8IE1B
WF9WSE9TVF9ERVZJQ0U7IGkrKykgew0KPiA+ICsJCWlmICh2ZHBhX2RldmljZXNbaV0gPT0gTlVM
TCkNCj4gPiArCQkJYnJlYWs7DQo+IFlvdSBtaWdodCB3YW50IHRvIGNoZWNrIHNhbWUgZGV2aWNl
IGlzbid0IGJlaW5nIHJlZ2lzdGVyaW5nIGEgc2Vjb25kDQo+IHRpbWUsIGFuZCByZXR1cm4gYW4g
ZXJyb3IgaW4gdGhhdCBjYXNlLg0KDQpXaWxsIGRvLg0KDQpUaGFua3MNCi1aaGlob25nDQoNCj4g
DQo+IFRoaXMgaXMgbm90IGEgYmxvY2tlciB0aG91Z2gsIGFuZCBjYW4gYmUgZG9uZSBpbiBhIGRl
ZGljYXRlZCBwYXRjaC4NCj4gDQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJc3ByaW50ZihkZXZpY2Vf
bmFtZSwgInZkcGEtZGV2LSVkIiwgaSk7DQo+ID4gKwlkZXYgPSBydGVfem1hbGxvYyhkZXZpY2Vf
bmFtZSwgc2l6ZW9mKHN0cnVjdCBydGVfdmRwYV9kZXZpY2UpLA0KPiA+ICsJCQlSVEVfQ0FDSEVf
TElORV9TSVpFKTsNCj4gPiArCWlmICghZGV2KQ0KPiA+ICsJCXJldHVybiAtMTsNCj4gPiArDQo+
ID4gKwltZW1jcHkoJmRldi0+YWRkciwgYWRkciwgc2l6ZW9mKHN0cnVjdCBydGVfdmRwYV9kZXZf
YWRkcikpOw0KPiA+ICsJZGV2LT5vcHMgPSBvcHM7DQo+ID4gKwl2ZHBhX2RldmljZXNbaV0gPSBk
ZXY7DQo+ID4gKwl2ZHBhX2RldmljZV9udW0rKzsNCj4gPiArDQo+ID4gKwlyZXR1cm4gaTsNCj4g
PiArfQ0KPiA+ICsNCj4gPiAraW50IHJ0ZV92ZHBhX3VucmVnaXN0ZXJfZGV2aWNlKGludCBkaWQp
DQo+ID4gK3sNCj4gPiArCWlmIChkaWQgPCAwIHx8IGRpZCA+PSBNQVhfVkhPU1RfREVWSUNFIHx8
IHZkcGFfZGV2aWNlc1tkaWRdID09DQo+IE5VTEwpDQo+ID4gKwkJcmV0dXJuIC0xOw0KPiA+ICsN
Cj4gPiArCXJ0ZV9mcmVlKHZkcGFfZGV2aWNlc1tkaWRdKTsNCj4gPiArCXZkcGFfZGV2aWNlc1tk
aWRdID0gTlVMTDsNCj4gPiArCXZkcGFfZGV2aWNlX251bS0tOw0KPiA+ICsNCj4gPiArCXJldHVy
biBkaWQ7DQo+ID4gK30NCj4gPiArDQo+ID4gK2ludCBydGVfdmRwYV9maW5kX2RldmljZV9pZChz
dHJ1Y3QgcnRlX3ZkcGFfZGV2X2FkZHIgKmFkZHIpDQo+ID4gK3sNCj4gPiArCXN0cnVjdCBydGVf
dmRwYV9kZXZpY2UgKmRldjsNCj4gPiArCWludCBpOw0KPiA+ICsNCj4gPiArCWZvciAoaSA9IDA7
IGkgPCBNQVhfVkhPU1RfREVWSUNFOyArK2kpIHsNCj4gPiArCQlkZXYgPSB2ZHBhX2RldmljZXNb
aV07DQo+ID4gKwkJaWYgKGRldiAmJiBpc19zYW1lX3ZkcGFfZGV2X2FkZHIoJmRldi0+YWRkciwg
YWRkcikgPT0gMCkNCj4gPiArCQkJcmV0dXJuIGk7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJcmV0
dXJuIC0xOw0KPiA+ICt9DQo+ID4NCg==