From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 6717B1B65B for ; Fri, 13 Oct 2017 09:55:10 +0200 (CEST) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Oct 2017 00:55:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.43,369,1503385200"; d="scan'208";a="1181537577" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by orsmga001.jf.intel.com with ESMTP; 13 Oct 2017 00:55:08 -0700 Received: from FMSMSX110.amr.corp.intel.com (10.18.116.10) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 13 Oct 2017 00:55:08 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx110.amr.corp.intel.com (10.18.116.10) with Microsoft SMTP Server (TLS) id 14.3.319.2; Fri, 13 Oct 2017 00:55:07 -0700 Received: from shsmsx151.ccr.corp.intel.com ([169.254.3.98]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.213]) with mapi id 14.03.0319.002; Fri, 13 Oct 2017 15:55:06 +0800 From: "Yao, Lei A" To: Maxime Coquelin , "dev@dpdk.org" , "Horton, Remy" , "Bie, Tiwei" , "yliu@fridaylinux.org" CC: "mst@redhat.com" , "jfreiman@redhat.com" , "vkaplans@redhat.com" , "jasowang@redhat.com" Thread-Topic: [dpdk-dev] [PATCH v3 15/19] vhost: postpone rings addresses translation Thread-Index: AQHTQ/W6Kobd20mIoEetykH84hGngqLhaOrA Date: Fri, 13 Oct 2017 07:55:04 +0000 Message-ID: <2DBBFF226F7CF64BAFCA79B681719D953A2ADA3F@SHSMSX151.ccr.corp.intel.com> References: <20171005083627.27828-1-maxime.coquelin@redhat.com> <20171005083627.27828-16-maxime.coquelin@redhat.com> <2DBBFF226F7CF64BAFCA79B681719D953A2A66FC@SHSMSX151.ccr.corp.intel.com> <1105ba3f-1f6f-d8f2-0299-2d26158790b8@redhat.com> In-Reply-To: <1105ba3f-1f6f-d8f2-0299-2d26158790b8@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZGU1ZWZlNTAtZTY2MS00OGVhLWE4YjEtYjY1OGMyZjBhYWE0IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6IkErcTVxZUUxZm5yZmQzMENuYTY4dEVKakRWM2JTOEQraWg5bG1KU3g5blk9In0= x-ctpclassification: CTP_IC dlp-product: dlpe-windows dlp-version: 11.0.0.116 dlp-reaction: no-action 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 v3 15/19] vhost: postpone rings addresses translation 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: , X-List-Received-Date: Fri, 13 Oct 2017 07:55:11 -0000 SGksIE1heGltZQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1heGlt ZSBDb3F1ZWxpbiBbbWFpbHRvOm1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tXQ0KPiBTZW50OiBG cmlkYXksIE9jdG9iZXIgMTMsIDIwMTcgMzozMiBQTQ0KPiBUbzogWWFvLCBMZWkgQSA8bGVpLmEu eWFvQGludGVsLmNvbT47IGRldkBkcGRrLm9yZzsgSG9ydG9uLCBSZW15DQo+IDxyZW15LmhvcnRv bkBpbnRlbC5jb20+OyBCaWUsIFRpd2VpIDx0aXdlaS5iaWVAaW50ZWwuY29tPjsNCj4geWxpdUBm cmlkYXlsaW51eC5vcmcNCj4gQ2M6IG1zdEByZWRoYXQuY29tOyBqZnJlaW1hbkByZWRoYXQuY29t OyB2a2FwbGFuc0ByZWRoYXQuY29tOw0KPiBqYXNvd2FuZ0ByZWRoYXQuY29tDQo+IFN1YmplY3Q6 IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2MyAxNS8xOV0gdmhvc3Q6IHBvc3Rwb25lIHJpbmdzIGFk ZHJlc3Nlcw0KPiB0cmFuc2xhdGlvbg0KPiANCj4gSGkgTGVpLA0KPiANCj4gT24gMTAvMTMvMjAx NyAwMzo0NyBBTSwgWWFvLCBMZWkgQSB3cm90ZToNCj4gPiBIaSwgTWF4aW1lDQo+ID4NCj4gPiBB ZnRlciB0aGlzIGNvbW1pdCwgdmhvc3QvdmlydGlvIGxvb3BiYWNrIHRlc3Qgd2lsbCBmYWlsIHdo ZW4NCj4gPiB1c2UgdGhlIENQVSBvbiBzb2NrZXQgMS4NCj4gPiBFcnJvciBtZXNzYWdlIGxpa2Ug Zm9sbG93aW5nIGR1cmluZyBpbml0aWFsaXplOg0KPiA+IFZIT1NUX0NPTkZJRzogdnJpbmcga2lj ayBpZHg6MCBmaWxlOjIwDQo+ID4gVkhPU1RfQ09ORklHOiByZWFsbG9jYXRlIHZxIGZyb20gMCB0 byAxIG5vZGUNCj4gPiBWSE9TVF9DT05GSUc6IHJlYWxsb2NhdGUgZGV2IGZyb20gMCB0byAxIG5v ZGUNCj4gPiBWSE9TVF9DT05GSUc6ICgwKSBmYWlsZWQgdG8gZmluZCBhdmFpbCByaW5nIGFkZHJl c3MuDQo+ID4gVkhPU1RfQ09ORklHOiByZWFkIG1lc3NhZ2UgVkhPU1RfVVNFUl9TRVRfVlJJTkdf TlVNDQo+ID4gVkhPU1RfQ09ORklHOiByZWFkIG1lc3NhZ2UgVkhPU1RfVVNFUl9TRVRfVlJJTkdf QkFTRQ0KPiA+IFZIT1NUX0NPTkZJRzogcmVhZCBtZXNzYWdlIFZIT1NUX1VTRVJfU0VUX1ZSSU5H X0FERFINCj4gPiBWSE9TVF9DT05GSUc6IHJlYWQgbWVzc2FnZSBWSE9TVF9VU0VSX1NFVF9WUklO R19LSUNLDQo+ID4gVkhPU1RfQ09ORklHOiB2cmluZyBraWNrIGlkeDoxIGZpbGU6MjENCj4gPiBW SE9TVF9DT05GSUc6IHJlYWxsb2NhdGUgdnEgZnJvbSAwIHRvIDEgbm9kZQ0KPiA+IFZIT1NUX0NP TkZJRzogKDApIGZhaWxlZCB0byBmaW5kIGF2YWlsIHJpbmcgYWRkcmVzcy4NCj4gPg0KPiA+IEJ1 dCBpZiB1c2UgQ1BVIG9uIHNvY2tldCAwLiBJdCBzdGlsbCBjYW4gd29yay4gQ291bGQgeW91IGhh dmUgYSBjaGVjayBvbg0KPiA+IHRoaXM/IFRoYW5rcyBhIGxvdCENCj4gDQo+IFRoYW5rcyBmb3Ig cmVwb3J0aW5nIHRoZSBpc3N1ZS4gSXQgc2VlbXMgYWRkciBwb2ludGVyIHN0aWxsIHBvaW50cyB0 bw0KPiB0aGUgb2xkIHN0cnVjdHVyZSBhZnRlciB0aGUgcmVhbGxvY2F0aW9uLiBUaGlzIHBhdGNo IHNob3VsZCBmaXggdGhlDQo+IGlzc3VlOg0KPiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV92aG9z dC92aG9zdF91c2VyLmMgYi9saWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYw0KPiBpbmRleCA5 YWNhYzYxMjUuLjI0MTZhMDA2MSAxMDA2NDQNCj4gLS0tIGEvbGliL2xpYnJ0ZV92aG9zdC92aG9z dF91c2VyLmMNCj4gKysrIGIvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmMNCj4gQEAgLTQx Nyw2ICs0MTcsNyBAQCB0cmFuc2xhdGVfcmluZ19hZGRyZXNzZXMoc3RydWN0IHZpcnRpb19uZXQg KmRldiwgaW50DQo+IHZxX2luZGV4KQ0KPiANCj4gICAgICAgICAgZGV2ID0gbnVtYV9yZWFsbG9j KGRldiwgdnFfaW5kZXgpOw0KPiAgICAgICAgICB2cSA9IGRldi0+dmlydHF1ZXVlW3ZxX2luZGV4 XTsNCj4gKyAgICAgICBhZGRyID0gJnZxLT5yaW5nX2FkZHJzOw0KPiANCj4gICAgICAgICAgdnEt PmF2YWlsID0gKHN0cnVjdCB2cmluZ19hdmFpbCAqKSh1aW50cHRyX3QpcmluZ19hZGRyX3RvX3Z2 YShkZXYsDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICB2cSwgYWRkci0+YXZhaWxfdXNlcl9h ZGRyLCBzaXplb2Yoc3RydWN0DQo+IHZyaW5nX2F2YWlsKSk7DQo+IA0KPiBJIG9ubHkgaGF2ZSBh Y2Nlc3MgdG8gc2luZ2xlLXNvY2tldCBtYWNoaW5lcyBhdCB0aGUgbW9tZW50LCBzbyBJIGNhbm5v dA0KPiByZXByb2R1Y2UgdGhlIGlzc3VlLg0KPiBDYW4geW91IGhhdmUgYSB0cnk/DQpXaXRoIHlv dXIgbmV3IHBhdGNoLCBpdCBjYW4gd29yayBvbiBzb2NrZXQgMSBub3cuIFRoYW5rcy4NCg0KPiAN Cj4gVGhhbmtzLA0KPiBNYXhpbWUNCj4gDQo+ID4gRm9sbG93aW5nIGlzIG15IGNtZDoNCj4gPiBW aG9zdDogdGVzdHBtZCAtbiA0IC1jIDB4MzAwMDAwMCAtLXNvY2tldC1tZW0gMTAyNCwxMDI0IC0t ZmlsZS0NCj4gcHJlZml4PXZob3N0IFwNCj4gPiAgICAgICAgICAgICAgICAgIC0tdmRldiAnbmV0 X3Zob3N0MCxpZmFjZT12aG9zdC1uZXQscXVldWVzPTEsY2xpZW50PTAnIC0tIC1pDQo+ID4gVmly dGlvLXVzZXI6IHRlc3RwbWQgLW4gNCAtYyAweGMwMDAwMCAtLXNvY2tldC1tZW0gMTAyNCwxMDI0 IC0tbm8tcGNpIC0tDQo+IGZpbGUtcHJlZml4PXZpcnRpbyBcDQo+ID4gICAgICAgICAgICAgICAg ICAgICAgICAgLS12ZGV2PW5ldF92aXJ0aW9fdXNlcjAsbWFjPTAwOjAxOjAyOjAzOjA0OjA1LHBh dGg9Li92aG9zdC0NCj4gbmV0IFwNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gLWkg LS10eHFmbGFncz0weGYwMSAtLWRpc2FibGUtaHctdmxhbi1maWx0ZXINCj4gPg0KPiA+IEJScw0K PiA+IExlaQ0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206 IGRldiBbbWFpbHRvOmRldi1ib3VuY2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2YgTWF4aW1lDQo+ IENvcXVlbGluDQo+ID4+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDUsIDIwMTcgNDozNiBQTQ0K PiA+PiBUbzogZGV2QGRwZGsub3JnOyBIb3J0b24sIFJlbXkgPHJlbXkuaG9ydG9uQGludGVsLmNv bT47IEJpZSwgVGl3ZWkNCj4gPj4gPHRpd2VpLmJpZUBpbnRlbC5jb20+OyB5bGl1QGZyaWRheWxp bnV4Lm9yZw0KPiA+PiBDYzogbXN0QHJlZGhhdC5jb207IGpmcmVpbWFuQHJlZGhhdC5jb207IHZr YXBsYW5zQHJlZGhhdC5jb207DQo+ID4+IGphc293YW5nQHJlZGhhdC5jb207IE1heGltZSBDb3F1 ZWxpbg0KPiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+ID4+IFN1YmplY3Q6IFtkcGRr LWRldl0gW1BBVENIIHYzIDE1LzE5XSB2aG9zdDogcG9zdHBvbmUgcmluZ3MgYWRkcmVzc2VzDQo+ ID4+IHRyYW5zbGF0aW9uDQo+ID4+DQo+ID4+IFRoaXMgcGF0Y2ggcG9zdHBvbmVzIHJpbmdzIGFk ZHJlc3NlcyB0cmFuc2xhdGlvbnMgYW5kIGNoZWNrcywgYXMNCj4gPj4gYWRkcmVzc2VzIHNlbnQg YnkgdGhlIG1hc3RlciBzaHVsZCBub3QgYmUgaW50ZXJwcmV0ZWQgYXMgbG9uZyBhcw0KPiA+PiBy aW5nIGlzIG5vdCBzdGFydGVkIGFuZCBlbmFibGVkWzBdLg0KPiA+Pg0KPiA+PiBXaGVuIHByb3Rv Y29sIGZlYXR1cmVzIGFyZW4ndCBuZWdvdGlhdGVkLCB0aGUgcmluZyBpcyBzdGFydGVkIGluDQo+ ID4+IGVuYWJsZWQgc3RhdGUsIHNvIHRoZSBhZGRyZXNzZXMgdHJhbnNsYXRpb25zIGFyZSBwb3N0 cG9uZWQgdG8NCj4gPj4gdmhvc3RfdXNlcl9zZXRfdnJpbmdfa2ljaygpLg0KPiA+PiBPdGhlcndp c2UsIGl0IGlzIHBvc3Rwb25lZCB0byB3aGVuIHJpbmcgaXMgZW5hYmxlZCwgaW4NCj4gPj4gdmhv c3RfdXNlcl9zZXRfdnJpbmdfZW5hYmxlKCkuDQo+ID4+DQo+ID4+IFswXTogaHR0cDovL2xpc3Rz Lm5vbmdudS5vcmcvYXJjaGl2ZS9odG1sL3FlbXUtZGV2ZWwvMjAxNy0NCj4gPj4gMDUvbXNnMDQz NTUuaHRtbA0KPiA+Pg0KPiA+PiBTaWduZWQtb2ZmLWJ5OiBNYXhpbWUgQ29xdWVsaW4gPG1heGlt ZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiA+PiAtLS0NCj4gPj4gICBsaWIvbGlicnRlX3Zob3N0 L3Zob3N0LmggICAgICB8ICAxICsNCj4gPj4gICBsaWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIu YyB8IDY5DQo+ID4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0N Cj4gPj4gICAyIGZpbGVzIGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygt KQ0KPiA+Pg0KPiA+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV92aG9zdC92aG9zdC5oIGIvbGli L2xpYnJ0ZV92aG9zdC92aG9zdC5oDQo+ID4+IGluZGV4IDc5MzUxYzY2Zi4uOTAzZGE1ZGI1IDEw MDY0NA0KPiA+PiAtLS0gYS9saWIvbGlicnRlX3Zob3N0L3Zob3N0LmgNCj4gPj4gKysrIGIvbGli L2xpYnJ0ZV92aG9zdC92aG9zdC5oDQo+ID4+IEBAIC0xMjUsNiArMTI1LDcgQEAgc3RydWN0IHZo b3N0X3ZpcnRxdWV1ZSB7DQo+ID4+DQo+ID4+ICAgCXN0cnVjdCB2cmluZ191c2VkX2VsZW0gICpz aGFkb3dfdXNlZF9yaW5nOw0KPiA+PiAgIAl1aW50MTZfdCAgICAgICAgICAgICAgICBzaGFkb3df dXNlZF9pZHg7DQo+ID4+ICsJc3RydWN0IHZob3N0X3ZyaW5nX2FkZHIgcmluZ19hZGRyczsNCj4g Pj4NCj4gPj4gICAJc3RydWN0IGJhdGNoX2NvcHlfZWxlbQkqYmF0Y2hfY29weV9lbGVtczsNCj4g Pj4gICAJdWludDE2X3QJCWJhdGNoX2NvcHlfbmJfZWxlbXM7DQo+ID4+IGRpZmYgLS1naXQgYS9s aWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYyBiL2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNl ci5jDQo+ID4+IGluZGV4IGY0OTVkZDM2ZS4uMzE5ODY3YzY1IDEwMDY0NA0KPiA+PiAtLS0gYS9s aWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYw0KPiA+PiArKysgYi9saWIvbGlicnRlX3Zob3N0 L3Zob3N0X3VzZXIuYw0KPiA+PiBAQCAtMzU2LDYgKzM1Niw3IEBAIHN0YXRpYyBpbnQNCj4gPj4g ICB2aG9zdF91c2VyX3NldF92cmluZ19hZGRyKHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYsIFZob3N0 VXNlck1zZyAqbXNnKQ0KPiA+PiAgIHsNCj4gPj4gICAJc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSAq dnE7DQo+ID4+ICsJc3RydWN0IHZob3N0X3ZyaW5nX2FkZHIgKmFkZHIgPSAmbXNnLT5wYXlsb2Fk LmFkZHI7DQo+ID4+DQo+ID4+ICAgCWlmIChkZXYtPm1lbSA9PSBOVUxMKQ0KPiA+PiAgIAkJcmV0 dXJuIC0xOw0KPiA+PiBAQCAtMzYzLDM1ICszNjQsNTAgQEAgdmhvc3RfdXNlcl9zZXRfdnJpbmdf YWRkcihzdHJ1Y3QgdmlydGlvX25ldA0KPiAqZGV2LA0KPiA+PiBWaG9zdFVzZXJNc2cgKm1zZykN Cj4gPj4gICAJLyogYWRkci0+aW5kZXggcmVmZXJzIHRvIHRoZSBxdWV1ZSBpbmRleC4gVGhlIHR4 cSAxLCByeHEgaXMgMC4gKi8NCj4gPj4gICAJdnEgPSBkZXYtPnZpcnRxdWV1ZVttc2ctPnBheWxv YWQuYWRkci5pbmRleF07DQo+ID4+DQo+ID4+ICsJLyoNCj4gPj4gKwkgKiBSaW5ncyBhZGRyZXNz ZXMgc2hvdWxkIG5vdCBiZSBpbnRlcnByZXRlZCBhcyBsb25nIGFzIHRoZSByaW5nIGlzIG5vdA0K PiA+PiArCSAqIHN0YXJ0ZWQgYW5kIGVuYWJsZWQNCj4gPj4gKwkgKi8NCj4gPj4gKwltZW1jcHko JnZxLT5yaW5nX2FkZHJzLCBhZGRyLCBzaXplb2YoKmFkZHIpKTsNCj4gPj4gKw0KPiA+PiArCXJl dHVybiAwOw0KPiA+PiArfQ0KPiA+PiArDQo+ID4+ICtzdGF0aWMgc3RydWN0IHZpcnRpb19uZXQg KnRyYW5zbGF0ZV9yaW5nX2FkZHJlc3NlcyhzdHJ1Y3QgdmlydGlvX25ldCAqZGV2LA0KPiA+PiAr CQlpbnQgdnFfaW5kZXgpDQo+ID4+ICt7DQo+ID4+ICsJc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSAq dnEgPSBkZXYtPnZpcnRxdWV1ZVt2cV9pbmRleF07DQo+ID4+ICsJc3RydWN0IHZob3N0X3ZyaW5n X2FkZHIgKmFkZHIgPSAmdnEtPnJpbmdfYWRkcnM7DQo+ID4+ICsNCj4gPj4gICAJLyogVGhlIGFk ZHJlc3NlcyBhcmUgY29udmVydGVkIGZyb20gUUVNVSB2aXJ0dWFsIHRvIFZob3N0IHZpcnR1YWwu DQo+ID4+ICovDQo+ID4+ICAgCXZxLT5kZXNjID0gKHN0cnVjdCB2cmluZ19kZXNjICopKHVpbnRw dHJfdClxdmFfdG9fdnZhKGRldiwNCj4gPj4gLQkJCW1zZy0+cGF5bG9hZC5hZGRyLmRlc2NfdXNl cl9hZGRyKTsNCj4gPj4gKwkJCWFkZHItPmRlc2NfdXNlcl9hZGRyKTsNCj4gPj4gICAJaWYgKHZx LT5kZXNjID09IDApIHsNCj4gPj4gICAJCVJURV9MT0coRVJSLCBWSE9TVF9DT05GSUcsDQo+ID4+ ICAgCQkJIiglZCkgZmFpbGVkIHRvIGZpbmQgZGVzYyByaW5nIGFkZHJlc3MuXG4iLA0KPiA+PiAg IAkJCWRldi0+dmlkKTsNCj4gPj4gLQkJcmV0dXJuIC0xOw0KPiA+PiArCQlyZXR1cm4gTlVMTDsN Cj4gPj4gICAJfQ0KPiA+Pg0KPiA+PiAtCWRldiA9IG51bWFfcmVhbGxvYyhkZXYsIG1zZy0+cGF5 bG9hZC5hZGRyLmluZGV4KTsNCj4gPj4gLQl2cSA9IGRldi0+dmlydHF1ZXVlW21zZy0+cGF5bG9h ZC5hZGRyLmluZGV4XTsNCj4gPj4gKwlkZXYgPSBudW1hX3JlYWxsb2MoZGV2LCB2cV9pbmRleCk7 DQo+ID4+ICsJdnEgPSBkZXYtPnZpcnRxdWV1ZVt2cV9pbmRleF07DQo+ID4+DQo+ID4+ICAgCXZx LT5hdmFpbCA9IChzdHJ1Y3QgdnJpbmdfYXZhaWwgKikodWludHB0cl90KXF2YV90b192dmEoZGV2 LA0KPiA+PiAtCQkJbXNnLT5wYXlsb2FkLmFkZHIuYXZhaWxfdXNlcl9hZGRyKTsNCj4gPj4gKwkJ CWFkZHItPmF2YWlsX3VzZXJfYWRkcik7DQo+ID4+ICAgCWlmICh2cS0+YXZhaWwgPT0gMCkgew0K PiA+PiAgIAkJUlRFX0xPRyhFUlIsIFZIT1NUX0NPTkZJRywNCj4gPj4gICAJCQkiKCVkKSBmYWls ZWQgdG8gZmluZCBhdmFpbCByaW5nIGFkZHJlc3MuXG4iLA0KPiA+PiAgIAkJCWRldi0+dmlkKTsN Cj4gPj4gLQkJcmV0dXJuIC0xOw0KPiA+PiArCQlyZXR1cm4gTlVMTDsNCj4gPj4gICAJfQ0KPiA+ Pg0KPiA+PiAgIAl2cS0+dXNlZCA9IChzdHJ1Y3QgdnJpbmdfdXNlZCAqKSh1aW50cHRyX3QpcXZh X3RvX3Z2YShkZXYsDQo+ID4+IC0JCQltc2ctPnBheWxvYWQuYWRkci51c2VkX3VzZXJfYWRkcik7 DQo+ID4+ICsJCQlhZGRyLT51c2VkX3VzZXJfYWRkcik7DQo+ID4+ICAgCWlmICh2cS0+dXNlZCA9 PSAwKSB7DQo+ID4+ICAgCQlSVEVfTE9HKEVSUiwgVkhPU1RfQ09ORklHLA0KPiA+PiAgIAkJCSIo JWQpIGZhaWxlZCB0byBmaW5kIHVzZWQgcmluZyBhZGRyZXNzLlxuIiwNCj4gPj4gICAJCQlkZXYt PnZpZCk7DQo+ID4+IC0JCXJldHVybiAtMTsNCj4gPj4gKwkJcmV0dXJuIE5VTEw7DQo+ID4+ICAg CX0NCj4gPj4NCj4gPj4gICAJaWYgKHZxLT5sYXN0X3VzZWRfaWR4ICE9IHZxLT51c2VkLT5pZHgp IHsNCj4gPj4gQEAgLTQwMyw3ICs0MTksNyBAQCB2aG9zdF91c2VyX3NldF92cmluZ19hZGRyKHN0 cnVjdCB2aXJ0aW9fbmV0ICpkZXYsDQo+ID4+IFZob3N0VXNlck1zZyAqbXNnKQ0KPiA+PiAgIAkJ dnEtPmxhc3RfYXZhaWxfaWR4ID0gdnEtPnVzZWQtPmlkeDsNCj4gPj4gICAJfQ0KPiA+Pg0KPiA+ PiAtCXZxLT5sb2dfZ3Vlc3RfYWRkciA9IG1zZy0+cGF5bG9hZC5hZGRyLmxvZ19ndWVzdF9hZGRy Ow0KPiA+PiArCXZxLT5sb2dfZ3Vlc3RfYWRkciA9IGFkZHItPmxvZ19ndWVzdF9hZGRyOw0KPiA+ Pg0KPiA+PiAgIAlMT0dfREVCVUcoVkhPU1RfQ09ORklHLCAiKCVkKSBtYXBwZWQgYWRkcmVzcyBk ZXNjOiAlcFxuIiwNCj4gPj4gICAJCQlkZXYtPnZpZCwgdnEtPmRlc2MpOw0KPiA+PiBAQCAtNDE0 LDcgKzQzMCw3IEBAIHZob3N0X3VzZXJfc2V0X3ZyaW5nX2FkZHIoc3RydWN0IHZpcnRpb19uZXQg KmRldiwNCj4gPj4gVmhvc3RVc2VyTXNnICptc2cpDQo+ID4+ICAgCUxPR19ERUJVRyhWSE9TVF9D T05GSUcsICIoJWQpIGxvZ19ndWVzdF9hZGRyOiAlIiBQUkl4NjQgIlxuIiwNCj4gPj4gICAJCQlk ZXYtPnZpZCwgdnEtPmxvZ19ndWVzdF9hZGRyKTsNCj4gPj4NCj4gPj4gLQlyZXR1cm4gMDsNCj4g Pj4gKwlyZXR1cm4gZGV2Ow0KPiA+PiAgIH0NCj4gPj4NCj4gPj4gICAvKg0KPiA+PiBAQCAtNjg1 LDEwICs3MDEsMTEgQEAgdmhvc3RfdXNlcl9zZXRfdnJpbmdfY2FsbChzdHJ1Y3QgdmlydGlvX25l dA0KPiAqZGV2LA0KPiA+PiBzdHJ1Y3QgVmhvc3RVc2VyTXNnICpwbXNnKQ0KPiA+PiAgIH0NCj4g Pj4NCj4gPj4gICBzdGF0aWMgdm9pZA0KPiA+PiAtdmhvc3RfdXNlcl9zZXRfdnJpbmdfa2ljayhz dHJ1Y3QgdmlydGlvX25ldCAqZGV2LCBzdHJ1Y3QgVmhvc3RVc2VyTXNnDQo+ID4+ICpwbXNnKQ0K PiA+PiArdmhvc3RfdXNlcl9zZXRfdnJpbmdfa2ljayhzdHJ1Y3QgdmlydGlvX25ldCAqKnBkZXYs IHN0cnVjdA0KPiBWaG9zdFVzZXJNc2cNCj4gPj4gKnBtc2cpDQo+ID4+ICAgew0KPiA+PiAgIAlz dHJ1Y3Qgdmhvc3RfdnJpbmdfZmlsZSBmaWxlOw0KPiA+PiAgIAlzdHJ1Y3Qgdmhvc3RfdmlydHF1 ZXVlICp2cTsNCj4gPj4gKwlzdHJ1Y3QgdmlydGlvX25ldCAqZGV2ID0gKnBkZXY7DQo+ID4+DQo+ ID4+ICAgCWZpbGUuaW5kZXggPSBwbXNnLT5wYXlsb2FkLnU2NCAmIFZIT1NUX1VTRVJfVlJJTkdf SURYX01BU0s7DQo+ID4+ICAgCWlmIChwbXNnLT5wYXlsb2FkLnU2NCAmIFZIT1NUX1VTRVJfVlJJ TkdfTk9GRF9NQVNLKQ0KPiA+PiBAQCAtNjk4LDYgKzcxNSwxNiBAQCB2aG9zdF91c2VyX3NldF92 cmluZ19raWNrKHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYsDQo+ID4+IHN0cnVjdCBWaG9zdFVzZXJN c2cgKnBtc2cpDQo+ID4+ICAgCVJURV9MT0coSU5GTywgVkhPU1RfQ09ORklHLA0KPiA+PiAgIAkJ InZyaW5nIGtpY2sgaWR4OiVkIGZpbGU6JWRcbiIsIGZpbGUuaW5kZXgsIGZpbGUuZmQpOw0KPiA+ Pg0KPiA+PiArCS8qDQo+ID4+ICsJICogSW50ZXJwcmV0IHJpbmcgYWRkcmVzc2VzIG9ubHkgd2hl biByaW5nIGlzIHN0YXJ0ZWQgYW5kIGVuYWJsZWQuDQo+ID4+ICsJICogVGhpcyBpcyBub3cgaWYg cHJvdG9jb2wgZmVhdHVyZXMgYXJlbid0IHN1cHBvcnRlZC4NCj4gPj4gKwkgKi8NCj4gPj4gKwlp ZiAoIShkZXYtPmZlYXR1cmVzICYgKDFVTEwgPDwNCj4gPj4gVkhPU1RfVVNFUl9GX1BST1RPQ09M X0ZFQVRVUkVTKSkpIHsNCj4gPj4gKwkJKnBkZXYgPSBkZXYgPSB0cmFuc2xhdGVfcmluZ19hZGRy ZXNzZXMoZGV2LCBmaWxlLmluZGV4KTsNCj4gPj4gKwkJaWYgKCFkZXYpDQo+ID4+ICsJCQlyZXR1 cm47DQo+ID4+ICsJfQ0KPiA+PiArDQo+ID4+ICAgCXZxID0gZGV2LT52aXJ0cXVldWVbZmlsZS5p bmRleF07DQo+ID4+DQo+ID4+ICAgCS8qDQo+ID4+IEBAIC03NzgsMTUgKzgwNSwyOSBAQCB2aG9z dF91c2VyX2dldF92cmluZ19iYXNlKHN0cnVjdCB2aXJ0aW9fbmV0DQo+ICpkZXYsDQo+ID4+ICAg ICogZW5hYmxlIHRoZSB2aXJ0aW8gcXVldWUgcGFpci4NCj4gPj4gICAgKi8NCj4gPj4gICBzdGF0 aWMgaW50DQo+ID4+IC12aG9zdF91c2VyX3NldF92cmluZ19lbmFibGUoc3RydWN0IHZpcnRpb19u ZXQgKmRldiwNCj4gPj4gK3Zob3N0X3VzZXJfc2V0X3ZyaW5nX2VuYWJsZShzdHJ1Y3QgdmlydGlv X25ldCAqKnBkZXYsDQo+ID4+ICAgCQkJICAgIFZob3N0VXNlck1zZyAqbXNnKQ0KPiA+PiAgIHsN Cj4gPj4gKwlzdHJ1Y3QgdmlydGlvX25ldCAqZGV2ID0gKnBkZXY7DQo+ID4+ICAgCWludCBlbmFi bGUgPSAoaW50KW1zZy0+cGF5bG9hZC5zdGF0ZS5udW07DQo+ID4+DQo+ID4+ICAgCVJURV9MT0co SU5GTywgVkhPU1RfQ09ORklHLA0KPiA+PiAgIAkJInNldCBxdWV1ZSBlbmFibGU6ICVkIHRvIHFw IGlkeDogJWRcbiIsDQo+ID4+ICAgCQllbmFibGUsIG1zZy0+cGF5bG9hZC5zdGF0ZS5pbmRleCk7 DQo+ID4+DQo+ID4+ICsJLyoNCj4gPj4gKwkgKiBJbnRlcnByZXQgcmluZyBhZGRyZXNzZXMgb25s eSB3aGVuIHJpbmcgaXMgc3RhcnRlZCBhbmQgZW5hYmxlZC4NCj4gPj4gKwkgKiBUaGlzIGlzIG5v dyBpZiBwcm90b2NvbCBmZWF0dXJlcyBhcmUgc3VwcG9ydGVkLg0KPiA+PiArCSAqLw0KPiA+PiAr CWlmIChlbmFibGUgJiYgKGRldi0+ZmVhdHVyZXMgJg0KPiA+PiArCQkJCSgxVUxMIDw8DQo+ID4+ IFZIT1NUX1VTRVJfRl9QUk9UT0NPTF9GRUFUVVJFUykpKSB7DQo+ID4+ICsJCWRldiA9IHRyYW5z bGF0ZV9yaW5nX2FkZHJlc3NlcyhkZXYsIG1zZy0NCj4gPj4+IHBheWxvYWQuc3RhdGUuaW5kZXgp Ow0KPiA+PiArCQlpZiAoIWRldikNCj4gPj4gKwkJCXJldHVybiAtMTsNCj4gPj4gKw0KPiA+PiAr CQkqcGRldiA9IGRldjsNCj4gPj4gKwl9DQo+ID4+ICsNCj4gPj4gICAJaWYgKGRldi0+bm90aWZ5 X29wcy0+dnJpbmdfc3RhdGVfY2hhbmdlZCkNCj4gPj4gICAJCWRldi0+bm90aWZ5X29wcy0+dnJp bmdfc3RhdGVfY2hhbmdlZChkZXYtPnZpZCwNCj4gPj4gICAJCQkJbXNnLT5wYXlsb2FkLnN0YXRl LmluZGV4LCBlbmFibGUpOw0KPiA+PiBAQCAtMTE1NSw3ICsxMTk2LDcgQEAgdmhvc3RfdXNlcl9t c2dfaGFuZGxlcihpbnQgdmlkLCBpbnQgZmQpDQo+ID4+ICAgCQlicmVhazsNCj4gPj4NCj4gPj4g ICAJY2FzZSBWSE9TVF9VU0VSX1NFVF9WUklOR19LSUNLOg0KPiA+PiAtCQl2aG9zdF91c2VyX3Nl dF92cmluZ19raWNrKGRldiwgJm1zZyk7DQo+ID4+ICsJCXZob3N0X3VzZXJfc2V0X3ZyaW5nX2tp Y2soJmRldiwgJm1zZyk7DQo+ID4+ICAgCQlicmVhazsNCj4gPj4gICAJY2FzZSBWSE9TVF9VU0VS X1NFVF9WUklOR19DQUxMOg0KPiA+PiAgIAkJdmhvc3RfdXNlcl9zZXRfdnJpbmdfY2FsbChkZXYs ICZtc2cpOw0KPiA+PiBAQCAtMTE3NCw3ICsxMjE1LDcgQEAgdmhvc3RfdXNlcl9tc2dfaGFuZGxl cihpbnQgdmlkLCBpbnQgZmQpDQo+ID4+ICAgCQlicmVhazsNCj4gPj4NCj4gPj4gICAJY2FzZSBW SE9TVF9VU0VSX1NFVF9WUklOR19FTkFCTEU6DQo+ID4+IC0JCXZob3N0X3VzZXJfc2V0X3ZyaW5n X2VuYWJsZShkZXYsICZtc2cpOw0KPiA+PiArCQl2aG9zdF91c2VyX3NldF92cmluZ19lbmFibGUo JmRldiwgJm1zZyk7DQo+ID4+ICAgCQlicmVhazsNCj4gPj4gICAJY2FzZSBWSE9TVF9VU0VSX1NF TkRfUkFSUDoNCj4gPj4gICAJCXZob3N0X3VzZXJfc2VuZF9yYXJwKGRldiwgJm1zZyk7DQo+ID4+ IC0tDQo+ID4+IDIuMTMuNg0KPiA+DQo=