From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 0D1EA1B34E for ; Mon, 16 Oct 2017 07:59:55 +0200 (CEST) Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Oct 2017 22:59:54 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.43,385,1503385200"; d="scan'208";a="146849273" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by orsmga002.jf.intel.com with ESMTP; 15 Oct 2017 22:59:54 -0700 Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.319.2; Sun, 15 Oct 2017 22:59:52 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.175]) by SHSMSX103.ccr.corp.intel.com ([169.254.4.213]) with mapi id 14.03.0319.002; Mon, 16 Oct 2017 13:59:51 +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/W6Kobd20mIoEetykH84hGngqLhaOrAgASV2kA= Date: Mon, 16 Oct 2017 05:59:50 +0000 Message-ID: <2DBBFF226F7CF64BAFCA79B681719D953A2B92CC@shsmsx102.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> <2DBBFF226F7CF64BAFCA79B681719D953A2ADA3F@SHSMSX151.ccr.corp.intel.com> In-Reply-To: <2DBBFF226F7CF64BAFCA79B681719D953A2ADA3F@SHSMSX151.ccr.corp.intel.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: Mon, 16 Oct 2017 05:59:56 -0000 SGksIE1heGltZQ0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IFlhbywg TGVpIEENCj4gU2VudDogRnJpZGF5LCBPY3RvYmVyIDEzLCAyMDE3IDM6NTUgUE0NCj4gVG86IE1h eGltZSBDb3F1ZWxpbiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+OyBkZXZAZHBkay5vcmc7 DQo+IEhvcnRvbiwgUmVteSA8cmVteS5ob3J0b25AaW50ZWwuY29tPjsgQmllLCBUaXdlaSA8dGl3 ZWkuYmllQGludGVsLmNvbT47DQo+IHlsaXVAZnJpZGF5bGludXgub3JnDQo+IENjOiBtc3RAcmVk aGF0LmNvbTsgamZyZWltYW5AcmVkaGF0LmNvbTsgdmthcGxhbnNAcmVkaGF0LmNvbTsNCj4gamFz b3dhbmdAcmVkaGF0LmNvbQ0KPiBTdWJqZWN0OiBSRTogW2RwZGstZGV2XSBbUEFUQ0ggdjMgMTUv MTldIHZob3N0OiBwb3N0cG9uZSByaW5ncyBhZGRyZXNzZXMNCj4gdHJhbnNsYXRpb24NCj4gDQo+ IEhpLCBNYXhpbWUNCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9t OiBNYXhpbWUgQ29xdWVsaW4gW21haWx0bzptYXhpbWUuY29xdWVsaW5AcmVkaGF0LmNvbV0NCj4g PiBTZW50OiBGcmlkYXksIE9jdG9iZXIgMTMsIDIwMTcgMzozMiBQTQ0KPiA+IFRvOiBZYW8sIExl aSBBIDxsZWkuYS55YW9AaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnOyBIb3J0b24sIFJlbXkNCj4g PiA8cmVteS5ob3J0b25AaW50ZWwuY29tPjsgQmllLCBUaXdlaSA8dGl3ZWkuYmllQGludGVsLmNv bT47DQo+ID4geWxpdUBmcmlkYXlsaW51eC5vcmcNCj4gPiBDYzogbXN0QHJlZGhhdC5jb207IGpm cmVpbWFuQHJlZGhhdC5jb207IHZrYXBsYW5zQHJlZGhhdC5jb207DQo+ID4gamFzb3dhbmdAcmVk aGF0LmNvbQ0KPiA+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2MyAxNS8xOV0gdmhv c3Q6IHBvc3Rwb25lIHJpbmdzIGFkZHJlc3Nlcw0KPiA+IHRyYW5zbGF0aW9uDQo+ID4NCj4gPiBI aSBMZWksDQo+ID4NCj4gPiBPbiAxMC8xMy8yMDE3IDAzOjQ3IEFNLCBZYW8sIExlaSBBIHdyb3Rl Og0KPiA+ID4gSGksIE1heGltZQ0KPiA+ID4NCj4gPiA+IEFmdGVyIHRoaXMgY29tbWl0LCB2aG9z dC92aXJ0aW8gbG9vcGJhY2sgdGVzdCB3aWxsIGZhaWwgd2hlbg0KPiA+ID4gdXNlIHRoZSBDUFUg b24gc29ja2V0IDEuDQo+ID4gPiBFcnJvciBtZXNzYWdlIGxpa2UgZm9sbG93aW5nIGR1cmluZyBp bml0aWFsaXplOg0KPiA+ID4gVkhPU1RfQ09ORklHOiB2cmluZyBraWNrIGlkeDowIGZpbGU6MjAN Cj4gPiA+IFZIT1NUX0NPTkZJRzogcmVhbGxvY2F0ZSB2cSBmcm9tIDAgdG8gMSBub2RlDQo+ID4g PiBWSE9TVF9DT05GSUc6IHJlYWxsb2NhdGUgZGV2IGZyb20gMCB0byAxIG5vZGUNCj4gPiA+IFZI T1NUX0NPTkZJRzogKDApIGZhaWxlZCB0byBmaW5kIGF2YWlsIHJpbmcgYWRkcmVzcy4NCj4gPiA+ IFZIT1NUX0NPTkZJRzogcmVhZCBtZXNzYWdlIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX05VTQ0KPiA+ ID4gVkhPU1RfQ09ORklHOiByZWFkIG1lc3NhZ2UgVkhPU1RfVVNFUl9TRVRfVlJJTkdfQkFTRQ0K PiA+ID4gVkhPU1RfQ09ORklHOiByZWFkIG1lc3NhZ2UgVkhPU1RfVVNFUl9TRVRfVlJJTkdfQURE Ug0KPiA+ID4gVkhPU1RfQ09ORklHOiByZWFkIG1lc3NhZ2UgVkhPU1RfVVNFUl9TRVRfVlJJTkdf S0lDSw0KPiA+ID4gVkhPU1RfQ09ORklHOiB2cmluZyBraWNrIGlkeDoxIGZpbGU6MjENCj4gPiA+ IFZIT1NUX0NPTkZJRzogcmVhbGxvY2F0ZSB2cSBmcm9tIDAgdG8gMSBub2RlDQo+ID4gPiBWSE9T VF9DT05GSUc6ICgwKSBmYWlsZWQgdG8gZmluZCBhdmFpbCByaW5nIGFkZHJlc3MuDQo+ID4gPg0K PiA+ID4gQnV0IGlmIHVzZSBDUFUgb24gc29ja2V0IDAuIEl0IHN0aWxsIGNhbiB3b3JrLiBDb3Vs ZCB5b3UgaGF2ZSBhIGNoZWNrIG9uDQo+ID4gPiB0aGlzPyBUaGFua3MgYSBsb3QhDQo+ID4NCj4g PiBUaGFua3MgZm9yIHJlcG9ydGluZyB0aGUgaXNzdWUuIEl0IHNlZW1zIGFkZHIgcG9pbnRlciBz dGlsbCBwb2ludHMgdG8NCj4gPiB0aGUgb2xkIHN0cnVjdHVyZSBhZnRlciB0aGUgcmVhbGxvY2F0 aW9uLiBUaGlzIHBhdGNoIHNob3VsZCBmaXggdGhlDQo+ID4gaXNzdWU6DQo+ID4gZGlmZiAtLWdp dCBhL2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jIGIvbGliL2xpYnJ0ZV92aG9zdC92aG9z dF91c2VyLmMNCj4gPiBpbmRleCA5YWNhYzYxMjUuLjI0MTZhMDA2MSAxMDA2NDQNCj4gPiAtLS0g YS9saWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYw0KPiA+ICsrKyBiL2xpYi9saWJydGVfdmhv c3Qvdmhvc3RfdXNlci5jDQo+ID4gQEAgLTQxNyw2ICs0MTcsNyBAQCB0cmFuc2xhdGVfcmluZ19h ZGRyZXNzZXMoc3RydWN0IHZpcnRpb19uZXQgKmRldiwgaW50DQo+ID4gdnFfaW5kZXgpDQo+ID4N Cj4gPiAgICAgICAgICBkZXYgPSBudW1hX3JlYWxsb2MoZGV2LCB2cV9pbmRleCk7DQo+ID4gICAg ICAgICAgdnEgPSBkZXYtPnZpcnRxdWV1ZVt2cV9pbmRleF07DQo+ID4gKyAgICAgICBhZGRyID0g JnZxLT5yaW5nX2FkZHJzOw0KPiA+DQo+ID4gICAgICAgICAgdnEtPmF2YWlsID0gKHN0cnVjdCB2 cmluZ19hdmFpbCAqKSh1aW50cHRyX3QpcmluZ19hZGRyX3RvX3Z2YShkZXYsDQo+ID4gICAgICAg ICAgICAgICAgICAgICAgICAgIHZxLCBhZGRyLT5hdmFpbF91c2VyX2FkZHIsIHNpemVvZihzdHJ1 Y3QNCj4gPiB2cmluZ19hdmFpbCkpOw0KPiA+DQo+ID4gSSBvbmx5IGhhdmUgYWNjZXNzIHRvIHNp bmdsZS1zb2NrZXQgbWFjaGluZXMgYXQgdGhlIG1vbWVudCwgc28gSSBjYW5ub3QNCj4gPiByZXBy b2R1Y2UgdGhlIGlzc3VlLg0KPiA+IENhbiB5b3UgaGF2ZSBhIHRyeT8NCj4gV2l0aCB5b3VyIG5l dyBwYXRjaCwgaXQgY2FuIHdvcmsgb24gc29ja2V0IDEgbm93LiBUaGFua3MuDQo+IA0KSSBmaW5k IGFub3RoZXIgaXNzdWUgd2l0aCB0aGlzIHBhdGNoIHdoZW4gSSB1c2UgVjE3LjExLXJjMS4NCkl0 IHdpbGwgYnJlYWsgdGhlIGNvbm5lY3Rpb24gYmV0d2VlbiB2aG9zdCBhbmQgdmlydGlvLW5ldCBp biBWTS4NClRoZSBsaW5rIHN0YXR1cyBvZiB2aG9zdC11c2VyIHBvcnQgaXMgYWx3YXlzIGRvd24u DQpCdXQgdmlydGlvLXBtZCBkcml2ZXIgaXMgc3RpbGwgb2suIA0KDQpNeSBxZW11IHZlcnNpb246 IDIuNQ0KR3Vlc3QgT1M6IFVidW50dSAxNi4wNA0KR3Vlc3Qga2VybmVsOiA0LjQuMA0KDQpDb3Vs ZCB5b3UgaGF2ZSBhIGNoZWNrIG9uIHRoaXMgaXNzdWU/IFRoYW5rcyBhIGxvdCENCg0KQlJzDQpM ZWkNCg0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+IE1heGltZQ0KPiA+DQo+ID4gPiBGb2xsb3dpbmcg aXMgbXkgY21kOg0KPiA+ID4gVmhvc3Q6IHRlc3RwbWQgLW4gNCAtYyAweDMwMDAwMDAgLS1zb2Nr ZXQtbWVtIDEwMjQsMTAyNCAtLWZpbGUtDQo+ID4gcHJlZml4PXZob3N0IFwNCj4gPiA+ICAgICAg ICAgICAgICAgICAgLS12ZGV2ICduZXRfdmhvc3QwLGlmYWNlPXZob3N0LW5ldCxxdWV1ZXM9MSxj bGllbnQ9MCcgLS0gLWkNCj4gPiA+IFZpcnRpby11c2VyOiB0ZXN0cG1kIC1uIDQgLWMgMHhjMDAw MDAgLS1zb2NrZXQtbWVtIDEwMjQsMTAyNCAtLW5vLXBjaSAtLQ0KPiA+IGZpbGUtcHJlZml4PXZp cnRpbyBcDQo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAtLQ0KPiB2ZGV2PW5ldF92aXJ0 aW9fdXNlcjAsbWFjPTAwOjAxOjAyOjAzOjA0OjA1LHBhdGg9Li92aG9zdC0NCj4gPiBuZXQgXA0K PiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgIC0tIC1pIC0tdHhxZmxhZ3M9MHhmMDEgLS1k aXNhYmxlLWh3LXZsYW4tZmlsdGVyDQo+ID4gPg0KPiA+ID4gQlJzDQo+ID4gPiBMZWkNCj4gPiA+ DQo+ID4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+PiBGcm9tOiBkZXYgW21h aWx0bzpkZXYtYm91bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxmIE9mIE1heGltZQ0KPiA+IENvcXVl bGluDQo+ID4gPj4gU2VudDogVGh1cnNkYXksIE9jdG9iZXIgNSwgMjAxNyA0OjM2IFBNDQo+ID4g Pj4gVG86IGRldkBkcGRrLm9yZzsgSG9ydG9uLCBSZW15IDxyZW15LmhvcnRvbkBpbnRlbC5jb20+ OyBCaWUsIFRpd2VpDQo+ID4gPj4gPHRpd2VpLmJpZUBpbnRlbC5jb20+OyB5bGl1QGZyaWRheWxp bnV4Lm9yZw0KPiA+ID4+IENjOiBtc3RAcmVkaGF0LmNvbTsgamZyZWltYW5AcmVkaGF0LmNvbTsg dmthcGxhbnNAcmVkaGF0LmNvbTsNCj4gPiA+PiBqYXNvd2FuZ0ByZWRoYXQuY29tOyBNYXhpbWUg Q29xdWVsaW4NCj4gPiA8bWF4aW1lLmNvcXVlbGluQHJlZGhhdC5jb20+DQo+ID4gPj4gU3ViamVj dDogW2RwZGstZGV2XSBbUEFUQ0ggdjMgMTUvMTldIHZob3N0OiBwb3N0cG9uZSByaW5ncyBhZGRy ZXNzZXMNCj4gPiA+PiB0cmFuc2xhdGlvbg0KPiA+ID4+DQo+ID4gPj4gVGhpcyBwYXRjaCBwb3N0 cG9uZXMgcmluZ3MgYWRkcmVzc2VzIHRyYW5zbGF0aW9ucyBhbmQgY2hlY2tzLCBhcw0KPiA+ID4+ IGFkZHJlc3NlcyBzZW50IGJ5IHRoZSBtYXN0ZXIgc2h1bGQgbm90IGJlIGludGVycHJldGVkIGFz IGxvbmcgYXMNCj4gPiA+PiByaW5nIGlzIG5vdCBzdGFydGVkIGFuZCBlbmFibGVkWzBdLg0KPiA+ ID4+DQo+ID4gPj4gV2hlbiBwcm90b2NvbCBmZWF0dXJlcyBhcmVuJ3QgbmVnb3RpYXRlZCwgdGhl IHJpbmcgaXMgc3RhcnRlZCBpbg0KPiA+ID4+IGVuYWJsZWQgc3RhdGUsIHNvIHRoZSBhZGRyZXNz ZXMgdHJhbnNsYXRpb25zIGFyZSBwb3N0cG9uZWQgdG8NCj4gPiA+PiB2aG9zdF91c2VyX3NldF92 cmluZ19raWNrKCkuDQo+ID4gPj4gT3RoZXJ3aXNlLCBpdCBpcyBwb3N0cG9uZWQgdG8gd2hlbiBy aW5nIGlzIGVuYWJsZWQsIGluDQo+ID4gPj4gdmhvc3RfdXNlcl9zZXRfdnJpbmdfZW5hYmxlKCku DQo+ID4gPj4NCj4gPiA+PiBbMF06IGh0dHA6Ly9saXN0cy5ub25nbnUub3JnL2FyY2hpdmUvaHRt bC9xZW11LWRldmVsLzIwMTctDQo+ID4gPj4gMDUvbXNnMDQzNTUuaHRtbA0KPiA+ID4+DQo+ID4g Pj4gU2lnbmVkLW9mZi1ieTogTWF4aW1lIENvcXVlbGluIDxtYXhpbWUuY29xdWVsaW5AcmVkaGF0 LmNvbT4NCj4gPiA+PiAtLS0NCj4gPiA+PiAgIGxpYi9saWJydGVfdmhvc3Qvdmhvc3QuaCAgICAg IHwgIDEgKw0KPiA+ID4+ICAgbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmMgfCA2OQ0KPiA+ ID4+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0NCj4gPiA+PiAg IDIgZmlsZXMgY2hhbmdlZCwgNTYgaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pDQo+ID4g Pj4NCj4gPiA+PiBkaWZmIC0tZ2l0IGEvbGliL2xpYnJ0ZV92aG9zdC92aG9zdC5oIGIvbGliL2xp YnJ0ZV92aG9zdC92aG9zdC5oDQo+ID4gPj4gaW5kZXggNzkzNTFjNjZmLi45MDNkYTVkYjUgMTAw NjQ0DQo+ID4gPj4gLS0tIGEvbGliL2xpYnJ0ZV92aG9zdC92aG9zdC5oDQo+ID4gPj4gKysrIGIv bGliL2xpYnJ0ZV92aG9zdC92aG9zdC5oDQo+ID4gPj4gQEAgLTEyNSw2ICsxMjUsNyBAQCBzdHJ1 Y3Qgdmhvc3RfdmlydHF1ZXVlIHsNCj4gPiA+Pg0KPiA+ID4+ICAgCXN0cnVjdCB2cmluZ191c2Vk X2VsZW0gICpzaGFkb3dfdXNlZF9yaW5nOw0KPiA+ID4+ICAgCXVpbnQxNl90ICAgICAgICAgICAg ICAgIHNoYWRvd191c2VkX2lkeDsNCj4gPiA+PiArCXN0cnVjdCB2aG9zdF92cmluZ19hZGRyIHJp bmdfYWRkcnM7DQo+ID4gPj4NCj4gPiA+PiAgIAlzdHJ1Y3QgYmF0Y2hfY29weV9lbGVtCSpiYXRj aF9jb3B5X2VsZW1zOw0KPiA+ID4+ICAgCXVpbnQxNl90CQliYXRjaF9jb3B5X25iX2VsZW1zOw0K PiA+ID4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYyBiL2xpYi9s aWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jDQo+ID4gPj4gaW5kZXggZjQ5NWRkMzZlLi4zMTk4Njdj NjUgMTAwNjQ0DQo+ID4gPj4gLS0tIGEvbGliL2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmMNCj4g PiA+PiArKysgYi9saWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYw0KPiA+ID4+IEBAIC0zNTYs NiArMzU2LDcgQEAgc3RhdGljIGludA0KPiA+ID4+ICAgdmhvc3RfdXNlcl9zZXRfdnJpbmdfYWRk cihzdHJ1Y3QgdmlydGlvX25ldCAqZGV2LCBWaG9zdFVzZXJNc2cNCj4gKm1zZykNCj4gPiA+PiAg IHsNCj4gPiA+PiAgIAlzdHJ1Y3Qgdmhvc3RfdmlydHF1ZXVlICp2cTsNCj4gPiA+PiArCXN0cnVj dCB2aG9zdF92cmluZ19hZGRyICphZGRyID0gJm1zZy0+cGF5bG9hZC5hZGRyOw0KPiA+ID4+DQo+ ID4gPj4gICAJaWYgKGRldi0+bWVtID09IE5VTEwpDQo+ID4gPj4gICAJCXJldHVybiAtMTsNCj4g PiA+PiBAQCAtMzYzLDM1ICszNjQsNTAgQEAgdmhvc3RfdXNlcl9zZXRfdnJpbmdfYWRkcihzdHJ1 Y3QgdmlydGlvX25ldA0KPiA+ICpkZXYsDQo+ID4gPj4gVmhvc3RVc2VyTXNnICptc2cpDQo+ID4g Pj4gICAJLyogYWRkci0+aW5kZXggcmVmZXJzIHRvIHRoZSBxdWV1ZSBpbmRleC4gVGhlIHR4cSAx LCByeHEgaXMgMC4gKi8NCj4gPiA+PiAgIAl2cSA9IGRldi0+dmlydHF1ZXVlW21zZy0+cGF5bG9h ZC5hZGRyLmluZGV4XTsNCj4gPiA+Pg0KPiA+ID4+ICsJLyoNCj4gPiA+PiArCSAqIFJpbmdzIGFk ZHJlc3NlcyBzaG91bGQgbm90IGJlIGludGVycHJldGVkIGFzIGxvbmcgYXMgdGhlIHJpbmcgaXMg bm90DQo+ID4gPj4gKwkgKiBzdGFydGVkIGFuZCBlbmFibGVkDQo+ID4gPj4gKwkgKi8NCj4gPiA+ PiArCW1lbWNweSgmdnEtPnJpbmdfYWRkcnMsIGFkZHIsIHNpemVvZigqYWRkcikpOw0KPiA+ID4+ ICsNCj4gPiA+PiArCXJldHVybiAwOw0KPiA+ID4+ICt9DQo+ID4gPj4gKw0KPiA+ID4+ICtzdGF0 aWMgc3RydWN0IHZpcnRpb19uZXQgKnRyYW5zbGF0ZV9yaW5nX2FkZHJlc3NlcyhzdHJ1Y3Qgdmly dGlvX25ldA0KPiAqZGV2LA0KPiA+ID4+ICsJCWludCB2cV9pbmRleCkNCj4gPiA+PiArew0KPiA+ ID4+ICsJc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSAqdnEgPSBkZXYtPnZpcnRxdWV1ZVt2cV9pbmRl eF07DQo+ID4gPj4gKwlzdHJ1Y3Qgdmhvc3RfdnJpbmdfYWRkciAqYWRkciA9ICZ2cS0+cmluZ19h ZGRyczsNCj4gPiA+PiArDQo+ID4gPj4gICAJLyogVGhlIGFkZHJlc3NlcyBhcmUgY29udmVydGVk IGZyb20gUUVNVSB2aXJ0dWFsIHRvIFZob3N0IHZpcnR1YWwuDQo+ID4gPj4gKi8NCj4gPiA+PiAg IAl2cS0+ZGVzYyA9IChzdHJ1Y3QgdnJpbmdfZGVzYyAqKSh1aW50cHRyX3QpcXZhX3RvX3Z2YShk ZXYsDQo+ID4gPj4gLQkJCW1zZy0+cGF5bG9hZC5hZGRyLmRlc2NfdXNlcl9hZGRyKTsNCj4gPiA+ PiArCQkJYWRkci0+ZGVzY191c2VyX2FkZHIpOw0KPiA+ID4+ICAgCWlmICh2cS0+ZGVzYyA9PSAw KSB7DQo+ID4gPj4gICAJCVJURV9MT0coRVJSLCBWSE9TVF9DT05GSUcsDQo+ID4gPj4gICAJCQki KCVkKSBmYWlsZWQgdG8gZmluZCBkZXNjIHJpbmcgYWRkcmVzcy5cbiIsDQo+ID4gPj4gICAJCQlk ZXYtPnZpZCk7DQo+ID4gPj4gLQkJcmV0dXJuIC0xOw0KPiA+ID4+ICsJCXJldHVybiBOVUxMOw0K PiA+ID4+ICAgCX0NCj4gPiA+Pg0KPiA+ID4+IC0JZGV2ID0gbnVtYV9yZWFsbG9jKGRldiwgbXNn LT5wYXlsb2FkLmFkZHIuaW5kZXgpOw0KPiA+ID4+IC0JdnEgPSBkZXYtPnZpcnRxdWV1ZVttc2ct PnBheWxvYWQuYWRkci5pbmRleF07DQo+ID4gPj4gKwlkZXYgPSBudW1hX3JlYWxsb2MoZGV2LCB2 cV9pbmRleCk7DQo+ID4gPj4gKwl2cSA9IGRldi0+dmlydHF1ZXVlW3ZxX2luZGV4XTsNCj4gPiA+ Pg0KPiA+ID4+ICAgCXZxLT5hdmFpbCA9IChzdHJ1Y3QgdnJpbmdfYXZhaWwgKikodWludHB0cl90 KXF2YV90b192dmEoZGV2LA0KPiA+ID4+IC0JCQltc2ctPnBheWxvYWQuYWRkci5hdmFpbF91c2Vy X2FkZHIpOw0KPiA+ID4+ICsJCQlhZGRyLT5hdmFpbF91c2VyX2FkZHIpOw0KPiA+ID4+ICAgCWlm ICh2cS0+YXZhaWwgPT0gMCkgew0KPiA+ID4+ICAgCQlSVEVfTE9HKEVSUiwgVkhPU1RfQ09ORklH LA0KPiA+ID4+ICAgCQkJIiglZCkgZmFpbGVkIHRvIGZpbmQgYXZhaWwgcmluZyBhZGRyZXNzLlxu IiwNCj4gPiA+PiAgIAkJCWRldi0+dmlkKTsNCj4gPiA+PiAtCQlyZXR1cm4gLTE7DQo+ID4gPj4g KwkJcmV0dXJuIE5VTEw7DQo+ID4gPj4gICAJfQ0KPiA+ID4+DQo+ID4gPj4gICAJdnEtPnVzZWQg PSAoc3RydWN0IHZyaW5nX3VzZWQgKikodWludHB0cl90KXF2YV90b192dmEoZGV2LA0KPiA+ID4+ IC0JCQltc2ctPnBheWxvYWQuYWRkci51c2VkX3VzZXJfYWRkcik7DQo+ID4gPj4gKwkJCWFkZHIt PnVzZWRfdXNlcl9hZGRyKTsNCj4gPiA+PiAgIAlpZiAodnEtPnVzZWQgPT0gMCkgew0KPiA+ID4+ ICAgCQlSVEVfTE9HKEVSUiwgVkhPU1RfQ09ORklHLA0KPiA+ID4+ICAgCQkJIiglZCkgZmFpbGVk IHRvIGZpbmQgdXNlZCByaW5nIGFkZHJlc3MuXG4iLA0KPiA+ID4+ICAgCQkJZGV2LT52aWQpOw0K PiA+ID4+IC0JCXJldHVybiAtMTsNCj4gPiA+PiArCQlyZXR1cm4gTlVMTDsNCj4gPiA+PiAgIAl9 DQo+ID4gPj4NCj4gPiA+PiAgIAlpZiAodnEtPmxhc3RfdXNlZF9pZHggIT0gdnEtPnVzZWQtPmlk eCkgew0KPiA+ID4+IEBAIC00MDMsNyArNDE5LDcgQEAgdmhvc3RfdXNlcl9zZXRfdnJpbmdfYWRk cihzdHJ1Y3QgdmlydGlvX25ldA0KPiAqZGV2LA0KPiA+ID4+IFZob3N0VXNlck1zZyAqbXNnKQ0K PiA+ID4+ICAgCQl2cS0+bGFzdF9hdmFpbF9pZHggPSB2cS0+dXNlZC0+aWR4Ow0KPiA+ID4+ICAg CX0NCj4gPiA+Pg0KPiA+ID4+IC0JdnEtPmxvZ19ndWVzdF9hZGRyID0gbXNnLT5wYXlsb2FkLmFk ZHIubG9nX2d1ZXN0X2FkZHI7DQo+ID4gPj4gKwl2cS0+bG9nX2d1ZXN0X2FkZHIgPSBhZGRyLT5s b2dfZ3Vlc3RfYWRkcjsNCj4gPiA+Pg0KPiA+ID4+ICAgCUxPR19ERUJVRyhWSE9TVF9DT05GSUcs ICIoJWQpIG1hcHBlZCBhZGRyZXNzIGRlc2M6ICVwXG4iLA0KPiA+ID4+ICAgCQkJZGV2LT52aWQs IHZxLT5kZXNjKTsNCj4gPiA+PiBAQCAtNDE0LDcgKzQzMCw3IEBAIHZob3N0X3VzZXJfc2V0X3Zy aW5nX2FkZHIoc3RydWN0IHZpcnRpb19uZXQNCj4gKmRldiwNCj4gPiA+PiBWaG9zdFVzZXJNc2cg Km1zZykNCj4gPiA+PiAgIAlMT0dfREVCVUcoVkhPU1RfQ09ORklHLCAiKCVkKSBsb2dfZ3Vlc3Rf YWRkcjogJSIgUFJJeDY0ICJcbiIsDQo+ID4gPj4gICAJCQlkZXYtPnZpZCwgdnEtPmxvZ19ndWVz dF9hZGRyKTsNCj4gPiA+Pg0KPiA+ID4+IC0JcmV0dXJuIDA7DQo+ID4gPj4gKwlyZXR1cm4gZGV2 Ow0KPiA+ID4+ICAgfQ0KPiA+ID4+DQo+ID4gPj4gICAvKg0KPiA+ID4+IEBAIC02ODUsMTAgKzcw MSwxMSBAQCB2aG9zdF91c2VyX3NldF92cmluZ19jYWxsKHN0cnVjdCB2aXJ0aW9fbmV0DQo+ID4g KmRldiwNCj4gPiA+PiBzdHJ1Y3QgVmhvc3RVc2VyTXNnICpwbXNnKQ0KPiA+ID4+ICAgfQ0KPiA+ ID4+DQo+ID4gPj4gICBzdGF0aWMgdm9pZA0KPiA+ID4+IC12aG9zdF91c2VyX3NldF92cmluZ19r aWNrKHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYsIHN0cnVjdA0KPiBWaG9zdFVzZXJNc2cNCj4gPiA+ PiAqcG1zZykNCj4gPiA+PiArdmhvc3RfdXNlcl9zZXRfdnJpbmdfa2ljayhzdHJ1Y3QgdmlydGlv X25ldCAqKnBkZXYsIHN0cnVjdA0KPiA+IFZob3N0VXNlck1zZw0KPiA+ID4+ICpwbXNnKQ0KPiA+ ID4+ICAgew0KPiA+ID4+ICAgCXN0cnVjdCB2aG9zdF92cmluZ19maWxlIGZpbGU7DQo+ID4gPj4g ICAJc3RydWN0IHZob3N0X3ZpcnRxdWV1ZSAqdnE7DQo+ID4gPj4gKwlzdHJ1Y3QgdmlydGlvX25l dCAqZGV2ID0gKnBkZXY7DQo+ID4gPj4NCj4gPiA+PiAgIAlmaWxlLmluZGV4ID0gcG1zZy0+cGF5 bG9hZC51NjQgJiBWSE9TVF9VU0VSX1ZSSU5HX0lEWF9NQVNLOw0KPiA+ID4+ICAgCWlmIChwbXNn LT5wYXlsb2FkLnU2NCAmIFZIT1NUX1VTRVJfVlJJTkdfTk9GRF9NQVNLKQ0KPiA+ID4+IEBAIC02 OTgsNiArNzE1LDE2IEBAIHZob3N0X3VzZXJfc2V0X3ZyaW5nX2tpY2soc3RydWN0IHZpcnRpb19u ZXQNCj4gKmRldiwNCj4gPiA+PiBzdHJ1Y3QgVmhvc3RVc2VyTXNnICpwbXNnKQ0KPiA+ID4+ICAg CVJURV9MT0coSU5GTywgVkhPU1RfQ09ORklHLA0KPiA+ID4+ICAgCQkidnJpbmcga2ljayBpZHg6 JWQgZmlsZTolZFxuIiwgZmlsZS5pbmRleCwgZmlsZS5mZCk7DQo+ID4gPj4NCj4gPiA+PiArCS8q DQo+ID4gPj4gKwkgKiBJbnRlcnByZXQgcmluZyBhZGRyZXNzZXMgb25seSB3aGVuIHJpbmcgaXMg c3RhcnRlZCBhbmQgZW5hYmxlZC4NCj4gPiA+PiArCSAqIFRoaXMgaXMgbm93IGlmIHByb3RvY29s IGZlYXR1cmVzIGFyZW4ndCBzdXBwb3J0ZWQuDQo+ID4gPj4gKwkgKi8NCj4gPiA+PiArCWlmICgh KGRldi0+ZmVhdHVyZXMgJiAoMVVMTCA8PA0KPiA+ID4+IFZIT1NUX1VTRVJfRl9QUk9UT0NPTF9G RUFUVVJFUykpKSB7DQo+ID4gPj4gKwkJKnBkZXYgPSBkZXYgPSB0cmFuc2xhdGVfcmluZ19hZGRy ZXNzZXMoZGV2LCBmaWxlLmluZGV4KTsNCj4gPiA+PiArCQlpZiAoIWRldikNCj4gPiA+PiArCQkJ cmV0dXJuOw0KPiA+ID4+ICsJfQ0KPiA+ID4+ICsNCj4gPiA+PiAgIAl2cSA9IGRldi0+dmlydHF1 ZXVlW2ZpbGUuaW5kZXhdOw0KPiA+ID4+DQo+ID4gPj4gICAJLyoNCj4gPiA+PiBAQCAtNzc4LDE1 ICs4MDUsMjkgQEAgdmhvc3RfdXNlcl9nZXRfdnJpbmdfYmFzZShzdHJ1Y3QgdmlydGlvX25ldA0K PiA+ICpkZXYsDQo+ID4gPj4gICAgKiBlbmFibGUgdGhlIHZpcnRpbyBxdWV1ZSBwYWlyLg0KPiA+ ID4+ICAgICovDQo+ID4gPj4gICBzdGF0aWMgaW50DQo+ID4gPj4gLXZob3N0X3VzZXJfc2V0X3Zy aW5nX2VuYWJsZShzdHJ1Y3QgdmlydGlvX25ldCAqZGV2LA0KPiA+ID4+ICt2aG9zdF91c2VyX3Nl dF92cmluZ19lbmFibGUoc3RydWN0IHZpcnRpb19uZXQgKipwZGV2LA0KPiA+ID4+ICAgCQkJICAg IFZob3N0VXNlck1zZyAqbXNnKQ0KPiA+ID4+ICAgew0KPiA+ID4+ICsJc3RydWN0IHZpcnRpb19u ZXQgKmRldiA9ICpwZGV2Ow0KPiA+ID4+ICAgCWludCBlbmFibGUgPSAoaW50KW1zZy0+cGF5bG9h ZC5zdGF0ZS5udW07DQo+ID4gPj4NCj4gPiA+PiAgIAlSVEVfTE9HKElORk8sIFZIT1NUX0NPTkZJ RywNCj4gPiA+PiAgIAkJInNldCBxdWV1ZSBlbmFibGU6ICVkIHRvIHFwIGlkeDogJWRcbiIsDQo+ ID4gPj4gICAJCWVuYWJsZSwgbXNnLT5wYXlsb2FkLnN0YXRlLmluZGV4KTsNCj4gPiA+Pg0KPiA+ ID4+ICsJLyoNCj4gPiA+PiArCSAqIEludGVycHJldCByaW5nIGFkZHJlc3NlcyBvbmx5IHdoZW4g cmluZyBpcyBzdGFydGVkIGFuZCBlbmFibGVkLg0KPiA+ID4+ICsJICogVGhpcyBpcyBub3cgaWYg cHJvdG9jb2wgZmVhdHVyZXMgYXJlIHN1cHBvcnRlZC4NCj4gPiA+PiArCSAqLw0KPiA+ID4+ICsJ aWYgKGVuYWJsZSAmJiAoZGV2LT5mZWF0dXJlcyAmDQo+ID4gPj4gKwkJCQkoMVVMTCA8PA0KPiA+ ID4+IFZIT1NUX1VTRVJfRl9QUk9UT0NPTF9GRUFUVVJFUykpKSB7DQo+ID4gPj4gKwkJZGV2ID0g dHJhbnNsYXRlX3JpbmdfYWRkcmVzc2VzKGRldiwgbXNnLQ0KPiA+ID4+PiBwYXlsb2FkLnN0YXRl LmluZGV4KTsNCj4gPiA+PiArCQlpZiAoIWRldikNCj4gPiA+PiArCQkJcmV0dXJuIC0xOw0KPiA+ ID4+ICsNCj4gPiA+PiArCQkqcGRldiA9IGRldjsNCj4gPiA+PiArCX0NCj4gPiA+PiArDQo+ID4g Pj4gICAJaWYgKGRldi0+bm90aWZ5X29wcy0+dnJpbmdfc3RhdGVfY2hhbmdlZCkNCj4gPiA+PiAg IAkJZGV2LT5ub3RpZnlfb3BzLT52cmluZ19zdGF0ZV9jaGFuZ2VkKGRldi0+dmlkLA0KPiA+ID4+ ICAgCQkJCW1zZy0+cGF5bG9hZC5zdGF0ZS5pbmRleCwgZW5hYmxlKTsNCj4gPiA+PiBAQCAtMTE1 NSw3ICsxMTk2LDcgQEAgdmhvc3RfdXNlcl9tc2dfaGFuZGxlcihpbnQgdmlkLCBpbnQgZmQpDQo+ ID4gPj4gICAJCWJyZWFrOw0KPiA+ID4+DQo+ID4gPj4gICAJY2FzZSBWSE9TVF9VU0VSX1NFVF9W UklOR19LSUNLOg0KPiA+ID4+IC0JCXZob3N0X3VzZXJfc2V0X3ZyaW5nX2tpY2soZGV2LCAmbXNn KTsNCj4gPiA+PiArCQl2aG9zdF91c2VyX3NldF92cmluZ19raWNrKCZkZXYsICZtc2cpOw0KPiA+ ID4+ICAgCQlicmVhazsNCj4gPiA+PiAgIAljYXNlIFZIT1NUX1VTRVJfU0VUX1ZSSU5HX0NBTEw6 DQo+ID4gPj4gICAJCXZob3N0X3VzZXJfc2V0X3ZyaW5nX2NhbGwoZGV2LCAmbXNnKTsNCj4gPiA+ PiBAQCAtMTE3NCw3ICsxMjE1LDcgQEAgdmhvc3RfdXNlcl9tc2dfaGFuZGxlcihpbnQgdmlkLCBp bnQgZmQpDQo+ID4gPj4gICAJCWJyZWFrOw0KPiA+ID4+DQo+ID4gPj4gICAJY2FzZSBWSE9TVF9V U0VSX1NFVF9WUklOR19FTkFCTEU6DQo+ID4gPj4gLQkJdmhvc3RfdXNlcl9zZXRfdnJpbmdfZW5h YmxlKGRldiwgJm1zZyk7DQo+ID4gPj4gKwkJdmhvc3RfdXNlcl9zZXRfdnJpbmdfZW5hYmxlKCZk ZXYsICZtc2cpOw0KPiA+ID4+ICAgCQlicmVhazsNCj4gPiA+PiAgIAljYXNlIFZIT1NUX1VTRVJf U0VORF9SQVJQOg0KPiA+ID4+ICAgCQl2aG9zdF91c2VyX3NlbmRfcmFycChkZXYsICZtc2cpOw0K PiA+ID4+IC0tDQo+ID4gPj4gMi4xMy42DQo+ID4gPg0K