From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id EC033A04A4;
	Tue, 28 Dec 2021 02:15:30 +0100 (CET)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id 7710C40040;
	Tue, 28 Dec 2021 02:15:30 +0100 (CET)
Received: from mga12.intel.com (mga12.intel.com [192.55.52.136])
 by mails.dpdk.org (Postfix) with ESMTP id 55AA64003C
 for <dev@dpdk.org>; Tue, 28 Dec 2021 02:15:28 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;
 d=intel.com; i=@intel.com; q=dns/txt; s=Intel;
 t=1640654128; x=1672190128;
 h=from:to:cc:subject:date:message-id:references:
 in-reply-to:content-transfer-encoding:mime-version;
 bh=M0qME3ju5KcB5ZBJYxi8aOWFIctc9hsJX9Eh2/a4G58=;
 b=Z1HtR3e3YrADr79lBIOW1cdO+UenNF6bFgrDmfLx5+y6bNm6ueWLjjmc
 mKlLNUTdlpEKR06le+oDd1IXDrohxznIlw8spNFuJFzCGAe1VjjKSHH3m
 4MKbgmPFWkQ9tQs9a34XP/PcPAewd/nJsXZP+eCZfHncQRm2urnBv94rQ
 vkfU58LgYs2IR8Z2QHaOOJwvc8BcaG3yKT/YvHi6/WxnGJmEMNSLWCyk9
 8troal1oHIqCfsqLLW7XGkO/ob55jt0LyUtrg1t826JgFwNH9MFqMGVmg
 n7ojzFbfkmeH1ID5T773ZNsXpDF9P3cjhBO3thRK7HI5WTSQEEBfoh8bt w==;
X-IronPort-AV: E=McAfee;i="6200,9189,10210"; a="221290095"
X-IronPort-AV: E=Sophos;i="5.88,241,1635231600"; d="scan'208";a="221290095"
Received: from fmsmga002.fm.intel.com ([10.253.24.26])
 by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 27 Dec 2021 17:15:27 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.88,241,1635231600"; d="scan'208";a="615495726"
Received: from irsmsx605.ger.corp.intel.com ([163.33.146.138])
 by fmsmga002.fm.intel.com with ESMTP; 27 Dec 2021 17:15:26 -0800
Received: from shsmsx606.ccr.corp.intel.com (10.109.6.216) by
 IRSMSX605.ger.corp.intel.com (163.33.146.138) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2308.20; Tue, 28 Dec 2021 01:15:24 +0000
Received: from shsmsx606.ccr.corp.intel.com ([10.109.6.216]) by
 SHSMSX606.ccr.corp.intel.com ([10.109.6.216]) with mapi id 15.01.2308.020;
 Tue, 28 Dec 2021 09:15:21 +0800
From: "Hu, Jiayu" <jiayu.hu@intel.com>
To: Maxime Coquelin <maxime.coquelin@redhat.com>, "dev@dpdk.org" <dev@dpdk.org>
CC: "i.maximets@ovn.org" <i.maximets@ovn.org>, "Xia, Chenbo"
 <chenbo.xia@intel.com>, "Richardson, Bruce" <bruce.richardson@intel.com>,
 "Van Haaren, Harry" <harry.van.haaren@intel.com>, "Mcnamara, John"
 <john.mcnamara@intel.com>, "Pai G, Sunil" <sunil.pai.g@intel.com>
Subject: RE: [RFC 1/1] vhost: integrate dmadev in asynchronous datapath
Thread-Topic: [RFC 1/1] vhost: integrate dmadev in asynchronous datapath
Thread-Index: AQHX30wNb2AKbtvONkGzFOGHvw0mbqxBIGIAgAYmCOA=
Date: Tue, 28 Dec 2021 01:15:21 +0000
Message-ID: <c4cf886f882e44b794597157f70e8445@intel.com>
References: <20211122105437.3534231-1-jiayu.hu@intel.com>
 <20211122105437.3534231-2-jiayu.hu@intel.com>
 <61b6c53f-753b-7bc7-9aef-58e706e647aa@redhat.com>
In-Reply-To: <61b6c53f-753b-7bc7-9aef-58e706e647aa@redhat.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
dlp-reaction: no-action
dlp-version: 11.6.200.16
dlp-product: dlpe-windows
x-originating-ip: [10.239.127.36]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

SGkgTWF4aW1lLA0KDQpUaGFua3MgZm9yIHlvdXIgY29tbWVudHMsIGFuZCBzb21lIHJlcGxpZXMg
YXJlIGlubGluZS4NCg0KVGhhbmtzLA0KSmlheXUNCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2Ut
LS0tLQ0KPiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29t
Pg0KPiBTZW50OiBGcmlkYXksIERlY2VtYmVyIDI0LCAyMDIxIDY6NDAgUE0NCj4gVG86IEh1LCBK
aWF5dSA8amlheXUuaHVAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+IENjOiBpLm1heGltZXRz
QG92bi5vcmc7IFhpYSwgQ2hlbmJvIDxjaGVuYm8ueGlhQGludGVsLmNvbT47IFJpY2hhcmRzb24s
DQo+IEJydWNlIDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT47IFZhbiBIYWFyZW4sIEhhcnJ5
DQo+IDxoYXJyeS52YW4uaGFhcmVuQGludGVsLmNvbT47IE1jbmFtYXJhLCBKb2huDQo+IDxqb2hu
Lm1jbmFtYXJhQGludGVsLmNvbT47IFBhaSBHLCBTdW5pbCA8c3VuaWwucGFpLmdAaW50ZWwuY29t
Pg0KPiBTdWJqZWN0OiBSZTogW1JGQyAxLzFdIHZob3N0OiBpbnRlZ3JhdGUgZG1hZGV2IGluIGFz
eW5jaHJvbm91cyBkYXRhcGF0aA0KPiANCj4gSGkgSmlheXUsDQo+IA0KPiBUaGlzIGlzIGEgZmly
c3QgcmV2aWV3LCBJIG5lZWQgdG8gc3BlbmQgbW9yZSB0aW1lIG9uIHRoZSBzZXJpZXMgdG8gdW5k
ZXJzdGFuZA0KPiBpdCB3ZWxsLiBEbyB5b3UgaGF2ZSBhIHByb3RvdHlwZSBvZiB0aGUgT1ZTIHBh
cnQsIHNvIHRoYXQgaXQgaGVscHMgdXMgdG8gZ3Jhc3ANCj4gaG93IHRoZSBmdWxsIGludGVncmF0
aW9uIHdvdWxkIGxvb2sgbGlrZT8NCg0KSSB0aGluayBPVlMgcGF0Y2ggd2lsbCBiZSBzZW50IHNv
b24uIEFuZCB3ZSB3aWxsIHNlbmQgdGhlIGRlcSBzaWRlIGltcGxlbWVudGF0aW9uIHRvby4NCg0K
PiANCj4gT24gMTEvMjIvMjEgMTE6NTQsIEppYXl1IEh1IHdyb3RlOg0KPiA+IFNpbmNlIGRtYWRl
diBpcyBpbnRyb2R1Y2VkIGluIDIxLjExLCB0byBhdm9pZCB0aGUgb3ZlcmhlYWQgb2Ygdmhvc3QN
Cj4gPiBETUEgYWJzdHJhY3Rpb24gbGF5ZXIgYW5kIHNpbXBsaWZ5IGFwcGxpY2F0aW9uIGxvZ2lj
cywgdGhpcyBwYXRjaA0KPiA+IGludGVncmF0ZXMgZG1hZGV2IGluIGFzeW5jaHJvbm91cyBkYXRh
IHBhdGguDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBKaWF5dSBIdSA8amlheXUuaHVAaW50ZWwu
Y29tPg0KPiA+IFNpZ25lZC1vZmYtYnk6IFN1bmlsIFBhaSBHIDxzdW5pbC5wYWkuZ0BpbnRlbC5j
b20+DQo+ID4gLS0tDQo+ID4gICBkb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvdmhvc3RfbGliLnJzdCB8
ICA2MyArKysrLS0tLQ0KPiA+ICAgZXhhbXBsZXMvdmhvc3QvaW9hdC5jICAgICAgICAgICAgICAg
fCAyMTggLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ICAgZXhhbXBsZXMvdmhvc3Qv
aW9hdC5oICAgICAgICAgICAgICAgfCAgNjMgLS0tLS0tLS0NCj4gPiAgIGV4YW1wbGVzL3Zob3N0
L21haW4uYyAgICAgICAgICAgICAgIHwgMTQ0ICsrKysrKysrKysrKysrKy0tLQ0KPiA+ICAgZXhh
bXBsZXMvdmhvc3QvbWFpbi5oICAgICAgICAgICAgICAgfCAgMTIgKysNCj4gPiAgIGV4YW1wbGVz
L3Zob3N0L21lc29uLmJ1aWxkICAgICAgICAgIHwgICA2ICstDQo+ID4gICBsaWIvdmhvc3QvbWVz
b24uYnVpbGQgICAgICAgICAgICAgICB8ICAgMyArLQ0KPiA+ICAgbGliL3Zob3N0L3J0ZV92aG9z
dF9hc3luYy5oICAgICAgICAgfCAgNzMgKysrLS0tLS0tLQ0KPiA+ICAgbGliL3Zob3N0L3Zob3N0
LmMgICAgICAgICAgICAgICAgICAgfCAgMzcgKystLS0NCj4gPiAgIGxpYi92aG9zdC92aG9zdC5o
ICAgICAgICAgICAgICAgICAgIHwgIDQ1ICsrKysrLQ0KPiA+ICAgbGliL3Zob3N0L3ZpcnRpb19u
ZXQuYyAgICAgICAgICAgICAgfCAxOTggKysrKysrKysrKysrKysrKysrKystLS0tLQ0KPiA+ICAg
MTEgZmlsZXMgY2hhbmdlZCwgNDEwIGluc2VydGlvbnMoKyksIDQ1MiBkZWxldGlvbnMoLSkNCj4g
PiAgIGRlbGV0ZSBtb2RlIDEwMDY0NCBleGFtcGxlcy92aG9zdC9pb2F0LmMNCj4gPiAgIGRlbGV0
ZSBtb2RlIDEwMDY0NCBleGFtcGxlcy92aG9zdC9pb2F0LmgNCj4gPg0KPiA+IGRpZmYgLS1naXQg
YS9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvdmhvc3RfbGliLnJzdA0KPiA+IGIvZG9jL2d1aWRlcy9w
cm9nX2d1aWRlL3Zob3N0X2xpYi5yc3QNCj4gPiBpbmRleCA3NmY1ZDMwM2M5Li4zMjk2OWExYzQx
IDEwMDY0NA0KPiA+IC0tLSBhL2RvYy9ndWlkZXMvcHJvZ19ndWlkZS92aG9zdF9saWIucnN0DQo+
ID4gKysrIGIvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3Zob3N0X2xpYi5yc3QNCj4gPiBAQCAtMTEz
LDggKzExMyw4IEBAIFRoZSBmb2xsb3dpbmcgaXMgYW4gb3ZlcnZpZXcgb2Ygc29tZSBrZXkgVmhv
c3QgQVBJDQo+IGZ1bmN0aW9uczoNCj4gPiAgICAgICB0aGUgYXN5bmMgY2FwYWJpbGl0eS4gT25s
eSBwYWNrZXRzIGVucXVldWVkL2RlcXVldWVkIGJ5IGFzeW5jIEFQSXMNCj4gYXJlDQo+ID4gICAg
ICAgcHJvY2Vzc2VkIHRocm91Z2ggdGhlIGFzeW5jIGRhdGEgcGF0aC4NCj4gPg0KPiA+IC0gICAg
Q3VycmVudGx5IHRoaXMgZmVhdHVyZSBpcyBvbmx5IGltcGxlbWVudGVkIG9uIHNwbGl0IHJpbmcg
ZW5xdWV1ZSBkYXRhDQo+ID4gLSAgICBwYXRoLg0KPiA+ICsgICAgQ3VycmVudGx5IHRoaXMgZmVh
dHVyZSBpcyBvbmx5IGltcGxlbWVudGVkIG9uIHNwbGl0IGFuZCBwYWNrZWQgcmluZw0KPiA+ICsg
ICAgZW5xdWV1ZSBkYXRhIHBhdGguDQo+IA0KPiBUaGF0J3Mgbm90IHJlbGF0ZWQgdG8gdGhlIHRv
cGljIG9mIHRoaXMgcGF0Y2gsIHlvdSBtYXkgbW92ZSBpdCBpbiBhIGRlZGljYXRlZA0KPiBwYXRj
aCBpbiB2MS4NCg0KU3VyZSwgd2lsbCByZW1vdmUgbGF0ZXIuDQoNCj4gDQo+ID4NCj4gPiBkaWZm
IC0tZ2l0IGEvZXhhbXBsZXMvdmhvc3QvaW9hdC5jIGIvZXhhbXBsZXMvdmhvc3QvaW9hdC5jIGRl
bGV0ZWQNCj4gPiBmaWxlIG1vZGUgMTAwNjQ0IGluZGV4IDlhZWViMTJmZDkuLjAwMDAwMDAwMDAN
Cj4gPiAtLS0gYS9leGFtcGxlcy92aG9zdC9pb2F0LmMNCj4gPiArKysgL2Rldi9udWxsDQo+IA0K
PiBOaWNlIHRvIHNlZSBwbGF0Zm9ybS1zcGVjaWZpYyBjb2RlIG5vdCBiZWluZyBuZWNlc3Nhcnkg
Zm9yIHRoZQ0KPiBhcHBsaWNhdGlvbi4NCj4gDQo+ID4gZGlmZiAtLWdpdCBhL2V4YW1wbGVzL3Zo
b3N0L21haW4uYyBiL2V4YW1wbGVzL3Zob3N0L21haW4uYw0KPiA+IGluZGV4IDMzZDAyM2FhMzku
LjE2YTAyYjkyMTkgMTAwNjQ0DQo+ID4gLS0tIGEvZXhhbXBsZXMvdmhvc3QvbWFpbi5jDQo+ID4g
KysrIGIvZXhhbXBsZXMvdmhvc3QvbWFpbi5jDQo+ID4gQEAgLTE5OSwxMCArMjA1LDExMyBAQCBz
dHJ1Y3Qgdmhvc3RfYnVmZnRhYmxlDQo+ICp2aG9zdF90eGJ1ZmZbUlRFX01BWF9MQ09SRSAqIE1B
WF9WSE9TVF9ERVZJQ0VdOw0KPiA+ICAgc3RhdGljIGlubGluZSBpbnQNCj4gPiAgIG9wZW5fZG1h
KGNvbnN0IGNoYXIgKnZhbHVlKQ0KPiA+ICAgew0KPiA+ICsJCWlmIChydGVfZG1hX3N0YXJ0KGRl
dl9pZCkgIT0gMCkgew0KPiA+ICsJCQlSVEVfTE9HKEVSUiwgVkhPU1RfQ09ORklHLCAiRmFpbCB0
byBzdGFydA0KPiBETUEgJXUuXG4iLCBkZXZfaWQpOw0KPiA+ICsJCQlyZXQgPSAtMTsNCj4gPiAr
CQkJZ290byBvdXQ7DQo+ID4gKwkJfQ0KPiA+ICsNCj4gPiArCQkoZG1hX2luZm8gKyB2aWQpLT5k
bWFzW3ZyaW5nX2lkXS5kZXZfaWQgPSBkZXZfaWQ7DQo+ID4gKwkJKGRtYV9pbmZvICsgdmlkKS0+
ZG1hc1t2cmluZ19pZF0uaXNfdmFsaWQgPSB0cnVlOw0KPiANCj4gVGhpcyBpc192YWxpZCBmaWVs
ZCBpcyBuZXZlciB1c2VkIEFGQUlDVCwgbXkgdW5kZXJzdGFuZGluZyBpcyB0aGF0IGl0DQo+IGhh
ZCBiZWVuIGFkZGVkIHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBub3QgdmFsaWQgYW5kIGZpcnN0
IGRtYWRldiwNCj4gd2hlcmUgZGV2X2lkIHdpbGwgYmUgYm90aCB6ZXJvLiBFaXRoZXIgbWFrZSB1
c2Ugb2YgaXNfdmFsaWQgaW4gdGhlIGNvZGUsDQo+IG9yIGNoYW5nZSBkZXZfaWQgdG8gaW50LCBh
bmQgaW5pdGlhbGl6ZSBpdCB3aXRoIC0xIHZhbHVlLg0KDQpSaWdodCwgSSB3aWxsIGNoYW5nZSBp
dCBsYXRlci4gVGhhbmtzIGZvciByZW1pbmRlci4NCg0KPiANCj4gPiArCQlkbWFfaW5mby0+bnIr
KzsNCj4gPiArCQlpKys7DQo+ID4gKwl9DQo+ID4gK291dDoNCj4gPiArCWZyZWUoaW5wdXQpOw0K
PiA+ICsJcmV0dXJuIHJldDsNCj4gPiAgIH0NCj4gPg0KPiA+ICAgLyoNCj4gPiBkaWZmIC0tZ2l0
IGEvbGliL3Zob3N0L3Zob3N0LmMgYi9saWIvdmhvc3Qvdmhvc3QuYw0KPiA+IGluZGV4IDEzYTli
YjlkZDEuLjU5NWNmNjNiOGQgMTAwNjQ0DQo+ID4gLS0tIGEvbGliL3Zob3N0L3Zob3N0LmMNCj4g
PiArKysgYi9saWIvdmhvc3Qvdmhvc3QuYw0KPiA+IEBAIC0zNDQsNiArMzQ0LDcgQEAgdmhvc3Rf
ZnJlZV9hc3luY19tZW0oc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSAqdnEpDQo+ID4gICAJCXJldHVy
bjsNCj4gPg0KPiA+ICAgCXJ0ZV9mcmVlKHZxLT5hc3luYy0+cGt0c19pbmZvKTsNCj4gPiArCXJ0
ZV9mcmVlKHZxLT5hc3luYy0+cGt0c19jbXBsX2ZsYWcpOw0KPiA+DQo+ID4gICAJcnRlX2ZyZWUo
dnEtPmFzeW5jLT5idWZmZXJzX3BhY2tlZCk7DQo+ID4gICAJdnEtPmFzeW5jLT5idWZmZXJzX3Bh
Y2tlZCA9IE5VTEw7DQo+ID4gQEAgLTE2MjYsOCArMTYyNyw3IEBAIHJ0ZV92aG9zdF9leHRlcm5f
Y2FsbGJhY2tfcmVnaXN0ZXIoaW50IHZpZCwNCj4gPiAgIH0NCj4gPg0KPiA+IGRpZmYgLS1naXQg
YS9saWIvdmhvc3Qvdmhvc3QuaCBiL2xpYi92aG9zdC92aG9zdC5oDQo+ID4gaW5kZXggNzA4NWUw
ODg1Yy4uOTc0ZTQ5NWI1NiAxMDA2NDQNCj4gPiAtLS0gYS9saWIvdmhvc3Qvdmhvc3QuaA0KPiA+
ICsrKyBiL2xpYi92aG9zdC92aG9zdC5oDQo+ID4gQEAgLTUxLDYgKzUxLDExIEBADQo+ID4gICAj
ZGVmaW5lIFZIT1NUX01BWF9BU1lOQ19JVCAoTUFYX1BLVF9CVVJTVCkNCj4gPiAgICNkZWZpbmUg
VkhPU1RfTUFYX0FTWU5DX1ZFQyAyMDQ4DQo+ID4NCj4gPiArLyogRE1BIGRldmljZSBjb3B5IG9w
ZXJhdGlvbiB0cmFja2luZyByaW5nIHNpemUuICovDQo+ID4gKyNkZWZpbmUgVkhPU1RfQVNZTkNf
RE1BX1RSQUNLX1JJTkdfU0laRSAodWludDMyX3QpNDA5Ng0KPiANCj4gSG93IGlzIHRoaXMgdmFs
dWUgY2hvc2VuPyBJcyB0aGF0IHNwZWNpZmljIHRvIHlvdXIgaGFyZHdhcmU/DQoNClllcy4gQnV0
IGluIGZhY3QsIHRoaXMgdmFsdWUgc2hvdWxkIGJlIGVxdWFsIHRvIG9yIGdyZWF0ZXIgdGhhbiB2
Y2hhbg0KZGVzYyBudW1iZXIsIGFuZCBpdCBzaG91bGQgYmUgZHluYW1pYy4gSW4gYWRkaXRpb24s
IHRoZSBjb250ZXh0IHRyYWNraW5nDQphcnJheSAiIGRtYV9jb3B5X3RyYWNrIiBzaG91bGQgYmUg
cGVyLXZjaGFuIGJhc2lzLCByYXRoZXIgdGhhbiBwZXItZGV2aWNlLA0KYWx0aG91Z2ggZXhpc3Rl
ZCBETUEgZGV2aWNlcyBvbmx5IHN1cHBvcnRzIDEgdmNoYW4gYXQgbW9zdC4NCg0KSSBoYXZlIHJl
d29ya2VkIHRoaXMgcGFydCB3aGljaCBjYW4gYmUgY29uZmlndXJlZCBieSB1c2VycyBkeW5hbWlj
YWxseS4NCg0KPiANCj4gPiArI2RlZmluZSBWSE9TVF9BU1lOQ19ETUFfVFJBQ0tfUklOR19NQVNL
DQo+IChWSE9TVF9BU1lOQ19ETUFfVFJBQ0tfUklOR19TSVpFIC0gMSkNCj4gPiArI2RlZmluZSBW
SE9TVF9BU1lOQ19ETUFfQkFUQ0hJTkdfU0laRSAzMg0KPiA+ICsNCj4gPiAgICNkZWZpbmUgUEFD
S0VEX0RFU0NfRU5RVUVVRV9VU0VEX0ZMQUcodykJXA0KPiA+ICAgCSgodykgPyAoVlJJTkdfREVT
Q19GX0FWQUlMIHwgVlJJTkdfREVTQ19GX1VTRUQgfA0KPiBWUklOR19ERVNDX0ZfV1JJVEUpIDog
XA0KPiA+ICAgCQlWUklOR19ERVNDX0ZfV1JJVEUpDQo+ID4gQEAgLTExOSw2ICsxMjQsMjkgQEAg
c3RydWN0IHZyaW5nX3VzZWRfZWxlbV9wYWNrZWQgew0KPiA+ICAgCXVpbnQzMl90IGNvdW50Ow0K
PiA+ICAgfTsNCj4gPg0KPiA+ICtzdHJ1Y3QgYXN5bmNfZG1hX2luZm8gew0KPiA+ICsJLyogY2ly
Y3VsYXIgYXJyYXkgdG8gdHJhY2sgY29weSBtZXRhZGF0YSAqLw0KPiA+ICsJYm9vbCAqbWV0YWRh
dGFbVkhPU1RfQVNZTkNfRE1BX1RSQUNLX1JJTkdfU0laRV07DQo+ID4gKw0KPiA+ICsJLyogYmF0
Y2hpbmcgY29waWVzIGJlZm9yZSBhIERNQSBkb29yYmVsbCAqLw0KPiA+ICsJdWludDE2X3QgbnJf
YmF0Y2hpbmc7DQo+ID4gKw0KPiA+ICsJLyoqDQo+ID4gKwkgKiBETUEgdmlydHVhbCBjaGFubmVs
IGxvY2suIEFsdGhvdWdoIGl0IGlzIGFibGUgdG8gYmluZCBETUENCj4gPiArCSAqIHZpcnR1YWwg
Y2hhbm5lbHMgdG8gZGF0YSBwbGFuZSB0aHJlYWRzLCB2aG9zdCBjb250cm9sIHBsYW5lDQo+ID4g
KwkgKiB0aHJlYWQgY291bGQgY2FsbCBkYXRhIHBsYW5lIGZ1bmN0aW9ucyB0b28sIHRodXMgY2F1
c2luZw0KPiA+ICsJICogRE1BIGRldmljZSBjb250ZW50aW9uLg0KPiA+ICsJICoNCj4gPiArCSAq
IEZvciBleGFtcGxlLCBpbiBWTSBleGl0IGNhc2UsIHZob3N0IGNvbnRyb2wgcGxhbmUgdGhyZWFk
IG5lZWRzDQo+ID4gKwkgKiB0byBjbGVhciBpbi1mbGlnaHQgcGFja2V0cyBiZWZvcmUgZGlzYWJs
ZSB2cmluZywgYnV0IHRoZXJlIGNvdWxkDQo+ID4gKwkgKiBiZSBhbm90dGhlciBkYXRhIHBsYW5l
IHRocmVhZCBpcyBlbnF1ZXVpbmcgcGFja2V0cyB0byB0aGUgc2FtZQ0KPiA+ICsJICogdnJpbmcg
d2l0aCB0aGUgc2FtZSBETUEgdmlydHVhbCBjaGFubmVsLiBCdXQgZG1hZGV2IFBNRA0KPiBmdW5j
dGlvbnMNCj4gPiArCSAqIGFyZSBsb2NrLWZyZWUsIHNvIHRoZSBjb250cm9sIHBsYW5lIGFuZCBk
YXRhIHBsYW5lIHRocmVhZHMNCj4gPiArCSAqIGNvdWxkIG9wZXJhdGUgdGhlIHNhbWUgRE1BIHZp
cnR1YWwgY2hhbm5lbCBhdCB0aGUgc2FtZSB0aW1lLg0KPiA+ICsJICovDQo+ID4gKwlydGVfc3Bp
bmxvY2tfdCBkbWFfbG9jazsNCj4gPiArfTsNCj4gPiArDQo+ID4gICAvKioNCj4gPiAgICAqIGlu
ZmxpZ2h0IGFzeW5jIHBhY2tldCBpbmZvcm1hdGlvbg0KPiA+ICAgICovDQo+ID4gQEAgLTEyOSw5
ICsxNTcsNiBAQCBzdHJ1Y3QgYXN5bmNfaW5mbGlnaHRfaW5mbyB7DQo+ID4gICB9Ow0KPiA+DQo+
ID4gICBzdHJ1Y3Qgdmhvc3RfYXN5bmMgew0KPiA+IC0JLyogb3BlcmF0aW9uIGNhbGxiYWNrcyBm
b3IgRE1BICovDQo+ID4gLQlzdHJ1Y3QgcnRlX3Zob3N0X2FzeW5jX2NoYW5uZWxfb3BzIG9wczsN
Cj4gPiAtDQo+ID4gICAJc3RydWN0IHJ0ZV92aG9zdF9pb3ZfaXRlciBpb3ZfaXRlcltWSE9TVF9N
QVhfQVNZTkNfSVRdOw0KPiA+ICAgCXN0cnVjdCBydGVfdmhvc3RfaW92ZWMgaW92ZWNbVkhPU1Rf
TUFYX0FTWU5DX1ZFQ107DQo+ID4gICAJdWludDE2X3QgaXRlcl9pZHg7DQo+ID4gQEAgLTEzOSw4
ICsxNjQsMjIgQEAgc3RydWN0IHZob3N0X2FzeW5jIHsNCj4gPg0KPiA+ICAgCS8qIGRhdGEgdHJh
bnNmZXIgc3RhdHVzICovDQo+ID4gICAJc3RydWN0IGFzeW5jX2luZmxpZ2h0X2luZm8gKnBrdHNf
aW5mbzsNCj4gPiArCS8qKg0KPiA+ICsJICogcGFja2V0IHJlb3JkZXIgYXJyYXkuICJ0cnVlIiBp
bmRpY2F0ZXMgdGhhdCBETUENCj4gPiArCSAqIGRldmljZSBjb21wbGV0ZXMgYWxsIGNvcGllcyBm
b3IgdGhlIHBhY2tldC4NCj4gPiArCSAqDQo+ID4gKwkgKiBOb3RlIHRoYXQgdGhpcyBhcnJ5IGNv
dWxkIGJlIHdyaXR0ZW4gYnkgbXVsdGlwbGUNCj4gDQo+IGFycmF5DQoNCkkgd2lsbCBjaGFuZ2Ug
bGF0ZXIuDQoNCj4gDQo+ID4gKwkgKiB0aHJlYWRzIGF0IHRoZSBzYW1lIHRpbWUuIEZvciBleGFt
cGxlLCB0d28gdGhyZWFkcw0KPiA+ICsJICogZW5xdWV1ZSBwYWNrZXRzIHRvIHRoZSBzYW1lIHZp
cnRxdWV1ZSB3aXRoIHRoZWlyDQo+ID4gKwkgKiBvd24gRE1BIGRldmljZXMuIEhvd2V2ZXIsIHNp
bmNlIG9mZmxvYWRpbmcgaXMNCj4gPiArCSAqIHBlci1wYWNrZXQgYmFzaXMsIGVhY2ggcGFja2V0
IGZsYWcgd2lsbCBvbmx5IGJlDQo+ID4gKwkgKiB3cml0dGVuIGJ5IG9uZSB0aHJlYWQuIEFuZCBz
aW5nbGUgYnl0ZSB3cml0ZSBpcw0KPiA+ICsJICogYXRvbWljLCBzbyBubyBsb2NrIGlzIG5lZWRl
ZC4NCj4gPiArCSAqLw0KPiA+ICsJYm9vbCAqcGt0c19jbXBsX2ZsYWc7DQo+ID4gICAJdWludDE2
X3QgcGt0c19pZHg7DQo+ID4gICAJdWludDE2X3QgcGt0c19pbmZsaWdodF9uOw0KPiA+ICsNCj4g
PiAgIAl1bmlvbiB7DQo+ID4gICAJCXN0cnVjdCB2cmluZ191c2VkX2VsZW0gICpkZXNjc19zcGxp
dDsNCj4gPiAgIAkJc3RydWN0IHZyaW5nX3VzZWRfZWxlbV9wYWNrZWQgKmJ1ZmZlcnNfcGFja2Vk
Ow0KPiA+IGRpZmYgLS1naXQgYS9saWIvdmhvc3QvdmlydGlvX25ldC5jIGIvbGliL3Zob3N0L3Zp
cnRpb19uZXQuYw0KPiA+IGluZGV4IGIzZDk1NGFhYjQuLjk1ZWNmZWI2NGIgMTAwNjQ0DQo+ID4g
LS0tIGEvbGliL3Zob3N0L3ZpcnRpb19uZXQuYw0KPiA+ICsrKyBiL2xpYi92aG9zdC92aXJ0aW9f
bmV0LmMNCj4gPiBAQCAtMTEsNiArMTEsNyBAQA0KPiA+ICAgI2luY2x1ZGUgPHJ0ZV9uZXQuaD4N
Cj4gPiAgICNpbmNsdWRlIDxydGVfZXRoZXIuaD4NCj4gPiAgICNpbmNsdWRlIDxydGVfaXAuaD4N
Cj4gPiArI2luY2x1ZGUgPHJ0ZV9kbWFkZXYuaD4NCj4gPiAgICNpbmNsdWRlIDxydGVfdmhvc3Qu
aD4NCj4gPiAgICNpbmNsdWRlIDxydGVfdGNwLmg+DQo+ID4gICAjaW5jbHVkZSA8cnRlX3VkcC5o
Pg0KPiA+IEBAIC0yNSw2ICsyNiw5IEBADQo+ID4NCj4gPiAgICNkZWZpbmUgTUFYX0JBVENIX0xF
TiAyNTYNCj4gPg0KPiA+ICsvKiBETUEgZGV2aWNlIGNvcHkgb3BlcmF0aW9uIHRyYWNraW5nIGFy
cmF5LiAqLw0KPiA+ICtzdGF0aWMgc3RydWN0IGFzeW5jX2RtYV9pbmZvDQo+IGRtYV9jb3B5X3Ry
YWNrW1JURV9ETUFERVZfREVGQVVMVF9NQVhdOw0KPiA+ICsNCj4gPiAgIHN0YXRpYyAgX19ydGVf
YWx3YXlzX2lubGluZSBib29sDQo+ID4gICByeHZxX2lzX21lcmdlYWJsZShzdHJ1Y3QgdmlydGlv
X25ldCAqZGV2KQ0KPiA+ICAgew0KPiA+IEBAIC00Myw2ICs0NywxMDggQEAgaXNfdmFsaWRfdmly
dF9xdWV1ZV9pZHgodWludDMyX3QgaWR4LCBpbnQgaXNfdHgsDQo+IHVpbnQzMl90IG5yX3ZyaW5n
KQ0KPiA+ICAgCXJldHVybiAoaXNfdHggXiAoaWR4ICYgMSkpID09IDAgJiYgaWR4IDwgbnJfdnJp
bmc7DQo+ID4gICB9DQo+ID4NCj4gPiArc3RhdGljIHVpbnQxNl90DQo+ID4gK3Zob3N0X2FzeW5j
X2RtYV90cmFuc2ZlcihzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICp2cSwgdWludDE2X3QgZG1hX2lk
LA0KPiA+ICsJCXVpbnQxNl90IGRtYV92Y2hhbiwgdWludDE2X3QgaGVhZF9pZHgsDQo+ID4gKwkJ
c3RydWN0IHJ0ZV92aG9zdF9pb3ZfaXRlciAqcGt0cywgdWludDE2X3QgbnJfcGt0cykNCj4gPiAr
ew0KPiA+ICsJc3RydWN0IGFzeW5jX2RtYV9pbmZvICpkbWFfaW5mbyA9ICZkbWFfY29weV90cmFj
a1tkbWFfaWRdOw0KPiA+ICsJdWludDE2X3QgZG1hX3NwYWNlX2xlZnQgPSBydGVfZG1hX2J1cnN0
X2NhcGFjaXR5KGRtYV9pZCwgMCk7DQo+ID4gKwl1aW50MTZfdCBwa3RfaWR4ID0gMDsNCj4gPiAr
DQo+ID4gKwlydGVfc3BpbmxvY2tfbG9jaygmZG1hX2luZm8tPmRtYV9sb2NrKTsNCj4gPiArDQo+
ID4gKwl3aGlsZSAocGt0X2lkeCA8IG5yX3BrdHMpIHsNCj4gDQo+IEEgZm9yIGxvb3Agd291bGQg
YmUgcHJlZmVyZWQgaGVyZS4NCg0KU3VyZSwgSSB3aWxsIGNoYW5nZSBsYXRlci4NCj4gDQo+ID4g
KwkJc3RydWN0IHJ0ZV92aG9zdF9pb3ZlYyAqaW92ID0gcGt0c1twa3RfaWR4XS5pb3Y7DQo+ID4g
KwkJaW50IGNvcHlfaWR4ID0gMDsNCj4gPiArCQl1aW50MTZfdCBucl9zZWdzID0gcGt0c1twa3Rf
aWR4XS5ucl9zZWdzOw0KPiA+ICsJCXVpbnQxNl90IGk7DQo+ID4gKw0KPiA+ICsJCWlmICh1bmxp
a2VseShkbWFfc3BhY2VfbGVmdCA8IG5yX3NlZ3MpKSB7DQo+ID4gKwkJCWdvdG8gb3V0Ow0KPiA+
ICsJCX0NCj4gPiArDQo+ID4gKwkJZm9yIChpID0gMDsgaSA8IG5yX3NlZ3M7IGkrKykgew0KPiA+
ICsJCQljb3B5X2lkeCA9IHJ0ZV9kbWFfY29weShkbWFfaWQsIGRtYV92Y2hhbiwNCj4gPiArCQkJ
CQkocnRlX2lvdmFfdClpb3ZbaV0uc3JjX2FkZHIsDQo+ID4gKwkJCQkJKHJ0ZV9pb3ZhX3QpaW92
W2ldLmRzdF9hZGRyLA0KPiA+ICsJCQkJCWlvdltpXS5sZW4sIFJURV9ETUFfT1BfRkxBR19MTEMp
Ow0KPiA+ICsJCQlpZiAodW5saWtlbHkoY29weV9pZHggPCAwKSkgew0KPiA+ICsJCQkJVkhPU1Rf
TE9HX0RBVEEoRVJSLCAiRE1BIGRldmljZSAldQ0KPiAoJXUpIGNvcHkgZmFpbGVkXG4iLA0KPiA+
ICsJCQkJCQlkbWFfaWQsIGRtYV92Y2hhbik7DQo+ID4gKwkJCQlkbWFfaW5mby0+bnJfYmF0Y2hp
bmcgKz0gaTsNCj4gPiArCQkJCWdvdG8gb3V0Ow0KPiA+ICsJCQl9DQo+ID4gKw0KPiA+ICsJCQlk
bWFfaW5mby0+bWV0YWRhdGFbY29weV9pZHggJg0KPiBWSE9TVF9BU1lOQ19ETUFfVFJBQ0tfUklO
R19NQVNLXSA9IE5VTEw7DQo+ID4gKwkJfQ0KPiA+ICsNCj4gPiArCQkvKioNCj4gPiArCQkgKiBP
bmx5IHN0b3JlIHBhY2tldCBjb21wbGV0aW9uIGZsYWcgYWRkcmVzcyBpbiB0aGUgbGFzdCBjb3B5
J3MNCj4gPiArCQkgKiBzbG90LCBhbmQgb3RoZXIgc2xvdHMgYXJlIHNldCB0byBOVUxMLg0KPiA+
ICsJCSAqLw0KPiA+ICsJCWRtYV9pbmZvLT5tZXRhZGF0YVtjb3B5X2lkeCAmDQo+IFZIT1NUX0FT
WU5DX0RNQV9UUkFDS19SSU5HX01BU0tdID0NCj4gPiArCQkJJnZxLT5hc3luYy0+cGt0c19jbXBs
X2ZsYWdbaGVhZF9pZHggJSB2cS0+c2l6ZV07DQo+ID4gKw0KPiA+ICsJCWRtYV9pbmZvLT5ucl9i
YXRjaGluZyArPSBucl9zZWdzOw0KPiA+ICsJCWlmICh1bmxpa2VseShkbWFfaW5mby0+bnJfYmF0
Y2hpbmcgPg0KPiBWSE9TVF9BU1lOQ19ETUFfQkFUQ0hJTkdfU0laRSkpIHsNCj4gPiArCQkJcnRl
X2RtYV9zdWJtaXQoZG1hX2lkLCAwKTsNCj4gPiArCQkJZG1hX2luZm8tPm5yX2JhdGNoaW5nID0g
MDsNCj4gPiArCQl9DQo+ID4gKw0KPiA+ICsJCWRtYV9zcGFjZV9sZWZ0IC09IG5yX3NlZ3M7DQo+
ID4gKwkJcGt0X2lkeCsrOw0KPiA+ICsJCWhlYWRfaWR4Kys7DQo+ID4gKwl9DQo+ID4gKw0KPiA+
ICtvdXQ6DQo+ID4gKwlpZiAoZG1hX2luZm8tPm5yX2JhdGNoaW5nID4gMCkgew0KPiA+ICsJCXJ0
ZV9kbWFfc3VibWl0KGRtYV9pZCwgMCk7DQo+ID4gKwkJZG1hX2luZm8tPm5yX2JhdGNoaW5nID0g
MDsNCj4gPiArCX0NCj4gPiArCXJ0ZV9zcGlubG9ja191bmxvY2soJmRtYV9pbmZvLT5kbWFfbG9j
ayk7DQo+IA0KPiBBdCBhIGZpcnN0IHNpZ2h0LCB0aGF0IGxvb2tzIGxpa2UgYSBsb3Qgb2YgdGhp
bmcgYmVpbmcgZG9uZSB3aGlsZSB0aGUNCj4gc3BpbmxvY2sgaXMgaGVsZC4gQnV0IG1heWJlIHRo
ZXJlIHdpbGwgYmUgb25seSBjb250ZW50aW9uIGluIHNvbWUgY29ybmVyDQo+IGNhc2VzPw0KDQpJ
IHRoaW5rIHRoZSBhbnN3ZXIgaXMgeWVzLiBBcyBhIHR5cGljYWwgbW9kZWwgaXMgYmluZGluZyBk
bWEgZGV2aWNlcyB0byBkYXRhLXBhdGgNCnRocmVhZHMuIFRoYXQgaXMsIHRoZXJlIGlzIG5vIERN
QSBzaGFyaW5nIGluIGRhdGEtcGF0aC4gT25lIGNhc2Ugb2YgY29udGVudGlvbg0KaGFwcGVucyBi
ZXR3ZWVuIGNvbnRyb2wgcGxhbmUgYW5kIGRhdGEgcGxhbmUgdGhyZWFkcy4gQnV0IGl0IG9ubHkg
aGFwcGVucyB3aGVuDQp2cmluZ3MgbmVlZHMgdG8gc3RvcCBldGMuLiBTbyBJIHRoaW5rIHRoZSBj
b250ZW50aW9uIHNob3VsZCBiZSBub3QgdmVyeSBvZnRlbi4NCg0KVGhhbmtzLA0KSmlheXUNCg==