From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 ; 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" To: Maxime Coquelin , "dev@dpdk.org" CC: "i.maximets@ovn.org" , "Xia, Chenbo" , "Richardson, Bruce" , "Van Haaren, Harry" , "Mcnamara, John" , "Pai G, Sunil" 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: 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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==