From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4C701A00BE; Fri, 1 Nov 2019 08:16:30 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A67E61D447; Fri, 1 Nov 2019 08:16:28 +0100 (CET) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id 988251D440 for ; Fri, 1 Nov 2019 08:16:27 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 01 Nov 2019 00:16:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,254,1569308400"; d="scan'208";a="284128234" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga001.jf.intel.com with ESMTP; 01 Nov 2019 00:16:26 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Fri, 1 Nov 2019 00:16:25 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Fri, 1 Nov 2019 00:16:25 -0700 Received: from shsmsx107.ccr.corp.intel.com (10.239.4.96) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Fri, 1 Nov 2019 00:16:25 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.60]) by SHSMSX107.ccr.corp.intel.com ([169.254.9.63]) with mapi id 14.03.0439.000; Fri, 1 Nov 2019 15:16:23 +0800 From: "Liu, Yong" To: Adrian Moreno , "Bie, Tiwei" CC: "maxime.coquelin@redhat.com" , "Wang, Zhihong" , "dev@dpdk.org" Thread-Topic: [PATCH v3] vhost: fix vhost user virtqueue not accessible Thread-Index: AQHVjvIE3UnRA2x5qE2Uz8jCmwrUwqd0C76AgADK6ED//6v4gIABYf3g Date: Fri, 1 Nov 2019 07:16:23 +0000 Message-ID: <86228AFD5BCD8E4EBFD2B90117B5E81E633EE800@SHSMSX103.ccr.corp.intel.com> References: <20191030110723.20195-1-yong.liu@intel.com> <20191030145602.1948-1-yong.liu@intel.com> <20191031104220.GA22299@___> <86228AFD5BCD8E4EBFD2B90117B5E81E633EE261@SHSMSX103.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNmVjMzkzNjMtZDNjNy00ZWNjLTg3MGUtOTUyYzFkNjhlYTYwIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiWThpdjhqdFwvVFF2SWhFWWhnUFdBdDF1ZU1UalhieG5SOVJGMldMSWxSTFwvWk9uMTdsd09pTDNyc2V0V2tha0tiIn0= x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.2.0.6 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] vhost: fix vhost user virtqueue not accessible 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQWRyaWFuIE1vcmVubyBb bWFpbHRvOmFtb3Jlbm96QHJlZGhhdC5jb21dDQo+IFNlbnQ6IEZyaWRheSwgTm92ZW1iZXIgMDEs IDIwMTkgMTo0OCBBTQ0KPiBUbzogTGl1LCBZb25nIDx5b25nLmxpdUBpbnRlbC5jb20+OyBCaWUs IFRpd2VpIDx0aXdlaS5iaWVAaW50ZWwuY29tPg0KPiBDYzogbWF4aW1lLmNvcXVlbGluQHJlZGhh dC5jb207IFdhbmcsIFpoaWhvbmcgPHpoaWhvbmcud2FuZ0BpbnRlbC5jb20+Ow0KPiBkZXZAZHBk ay5vcmcNCj4gU3ViamVjdDogUmU6IFtQQVRDSCB2M10gdmhvc3Q6IGZpeCB2aG9zdCB1c2VyIHZp cnRxdWV1ZSBub3QgYWNjZXNzaWJsZQ0KPiANCj4gSGkgTWFydmluLA0KPiANCj4gT24gMTAvMzEv MTkgMzo1NCBQTSwgTGl1LCBZb25nIHdyb3RlOg0KPiA+DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5h bCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogQmllLCBUaXdlaQ0KPiA+PiBTZW50OiBUaHVyc2Rh eSwgT2N0b2JlciAzMSwgMjAxOSA2OjQyIFBNDQo+ID4+IFRvOiBMaXUsIFlvbmcgPHlvbmcubGl1 QGludGVsLmNvbT4NCj4gPj4gQ2M6IG1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tOyBXYW5nLCBa aGlob25nIDx6aGlob25nLndhbmdAaW50ZWwuY29tPjsNCj4gPj4gYW1vcmVub3pAcmVkaGF0LmNv bTsgZGV2QGRwZGsub3JnDQo+ID4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjNdIHZob3N0OiBmaXgg dmhvc3QgdXNlciB2aXJ0cXVldWUgbm90IGFjY2Vzc2libGUNCj4gPj4NCj4gPj4gT24gV2VkLCBP Y3QgMzAsIDIwMTkgYXQgMTA6NTY6MDJQTSArMDgwMCwgTWFydmluIExpdSB3cm90ZToNCj4gPj4+ IExvZyBmZWF0dXJlIGlzIGRpc2FibGVkIGluIHZob3N0IHVzZXIsIHNvIHRoYXQgbG9nIGFkZHJl c3Mgd2FzIGludmFsaWQNCj4gPj4+IHdoZW4gY2hlY2tpbmcuIENoZWNrIHdoZXRoZXIgbG9nIGFk ZHJlc3MgaXMgdmFsaWQgY2FuIHdvcmthcm91bmQgaXQuDQo+ID4+PiBBbHNvIGxvZyBhZGRyZXNz IHNob3VsZCBiZSB0cmFuc2xhdGVkIGluIHBhY2tlZCByaW5nIHZpcnRxdWV1ZS4NCj4gPj4+DQo+ ID4+PiBGaXhlczogMDRjZmM3ZmRiZmNhICgidmhvc3Q6IHRyYW5zbGF0ZSBpbmNvbWluZyBsb2cg YWRkcmVzcyB0byBncGEiKQ0KPiA+Pj4NCj4gPj4+IFNpZ25lZC1vZmYtYnk6IE1hcnZpbiBMaXUg PHlvbmcubGl1QGludGVsLmNvbT4NCj4gPj4+IC0tLQ0KPiA+Pj4gIGxpYi9saWJydGVfdmhvc3Qv dmhvc3RfdXNlci5jIHwgMzAgKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tDQo+ID4+PiAg MSBmaWxlIGNoYW5nZWQsIDEzIGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQ0KPiA+Pj4N Cj4gPj4+IGRpZmYgLS1naXQgYS9saWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYw0KPiA+PiBi L2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5jDQo+ID4+PiBpbmRleCA2MWVmNjk5YWMuLjc3 NTRkMjQ2NyAxMDA2NDQNCj4gPj4+IC0tLSBhL2xpYi9saWJydGVfdmhvc3Qvdmhvc3RfdXNlci5j DQo+ID4+PiArKysgYi9saWIvbGlicnRlX3Zob3N0L3Zob3N0X3VzZXIuYw0KPiA+Pj4gQEAgLTY0 MSwxMSArNjQxLDIzIEBAIHRyYW5zbGF0ZV9yaW5nX2FkZHJlc3NlcyhzdHJ1Y3QgdmlydGlvX25l dCAqZGV2LA0KPiA+PiBpbnQgdnFfaW5kZXgpDQo+ID4+PiAgCXN0cnVjdCB2aG9zdF92cmluZ19h ZGRyICphZGRyID0gJnZxLT5yaW5nX2FkZHJzOw0KPiA+Pj4gIAl1aW50NjRfdCBsZW4sIGV4cGVj dGVkX2xlbjsNCj4gPj4+DQo+ID4+PiArCWRldiA9IG51bWFfcmVhbGxvYyhkZXYsIHZxX2luZGV4 KTsNCj4gPj4NCj4gPj4gV2UgbmVlZCB0byB1cGRhdGUgYHZxLT5kZXNjYCBmaXJzdCBiZWZvcmUg ZG9pbmcgbnVtYV9yZWFsbG9jLg0KPiA+Pg0KPiBodHRwczovL2dpdGh1Yi5jb20vRFBESy9kcGRr L2Jsb2IvMTkzOTdjN2JmMjU0NWU2YWRhYjQxYjY1N2ExZjFkYTNjNzM0NGU3Yi8NCj4gPj4gbGli L2xpYnJ0ZV92aG9zdC92aG9zdF91c2VyLmMjTDQ0NQ0KPiA+Pg0KPiA+Pj4gKwl2cSA9IGRldi0+ dmlydHF1ZXVlW3ZxX2luZGV4XTsNCj4gPj4+ICsJaWYgKGFkZHItPmZsYWdzICYgKDEgPDwgVkhP U1RfVlJJTkdfRl9MT0cpKSB7DQo+ID4+DQo+IEkgZmVhciB0aGUgcG9zc2libGUgY29uc2VxdWVu Y2VzIG9mIHRoaXMgY2hhbmdlLg0KPiBCZWZvcmUgMDRjZmM3ZmRiZmNhIHRoZSBhcHByb2FjaCB3 YXMgImJlc3QtZWZmb3J0Ii4gVGhlIGxvZyBhZGRyZXNzIHdvdWxkDQo+IGJlDQo+IGFzc2lnbmVk IHdpdGhvdXQgZnVydGhlciBjaGVja3M6DQo+IA0KPiAJdnEtPmxvZ19ndWVzdF9hZGRyID0gYWRk ci0+bG9nX2d1ZXN0X2FkZHI7DQo+IA0KPiBUaGVuLCB0aGUgYmVoYXZpb3IgY2hhbmdlZCBhbmQg YW4gZXJyb3Igd2FzIGdlbmVyYXRlZCBpZiB0aGUgbG9nIGFkZHJlc3MNCj4gd2FzDQo+IGludmFs aWQsIHdoaWNoIEkgZ3Vlc3MgaXMgdGhlIHByb2JsZW0geW91IGhhdmUgaGl0Og0KPiANCj4gCXZx LT5sb2dfZ3Vlc3RfYWRkciA9DQo+IAkJdHJhbnNsYXRlX2xvZ19hZGRyKGRldiwgdnEsIGFkZHIt PmxvZ19ndWVzdF9hZGRyKTsNCj4gCWlmICh2cS0+bG9nX2d1ZXN0X2FkZHIgPT0gMCkgew0KPiAJ CVJURV9MT0coREVCVUcsIFZIT1NUX0NPTkZJRywNCj4gCQkJIiglZCkgZmFpbGVkIHRvIG1hcCBs b2dfZ3Vlc3RfYWRkciAuXG4iLA0KPiAJCQlkZXYtPnZpZCk7DQo+IAkJcmV0dXJuIGRldjsNCj4g CX0NCj4gDQo+IEluIHRoZSB0ZXN0cyBJIHJhbiBJIGFsd2F5cyBzYXcgdmFsaWQgbG9nIGFkZHJl c3NlcyBiZWluZyBzZW50IGF0IHJpbmcNCj4gaW5pdGlhbGl6YXRpb24gcGhhc2UsIGJ1dCBpZiwg YXMgeW91IGNsYWltLCBpdCdzIHBvc3NpYmxlIHRoYXQgaW52YWxpZA0KPiBhZGRyZXNzZXMNCj4g YXJlIGdpdmVuIGF0IGluaXRpYWxpemF0aW9uIHBoYXNlLCBtYXliZSB3ZSBzaG91bGQgZ28gYmFj ayB0byAiYmVzdC1lZmZvcnQiDQo+IChpLmU6IHJlbW92ZSB0aGUgcmV0dXJuIHN0YXRlbWVudCkN Cj4gDQo+IEJ1dCBpdCdzIHVubGlrZWx5IHRoYXQgcWVtdSBoYXMgZW5hYmxlZCBsb2dnaW5nIGF0 IHJpbmcgaW5pdGlhbGl6YXRpb24gc28NCj4gdGhpcw0KPiB3b3VsZCBlZmZlY3RpdmVseSBkaXNh YmxlIHRoZSB0cmFuc2xhdGlvbiBhdCB0aGUgaW5pdGlhbGl6YXRpb24gcGhhc2UuIEkNCj4gY2Fu bm90DQo+IGZvcmVjYXN0IHRoZSBjb25zZXF1ZW5jZXMgb2YgdGhpcyBjaGFuZ2Ugd2l0aG91dCBk ZWVwZXIgYW5hbHlzaXMuDQoNClRoYXQncyBmaW5lLCBBZHJpYW4uIFRoaXMgaXNzdWUgb25seSBv Y2N1cnJlZCB3aGVuIHVzaW5nIGRwZGsgdmlydGlvIHVzZXIgZGV2aWNlLg0KU2luY2UgYWRkcmVz cyBsb2dnaW5nIGlzIGRpc2FibGVkIGluIHZpcnRpbyB1c2VyLCBzaW1wbGUgZmxhZyBjaGVjayBm aXggaXQuDQoNCj4gDQo+ID4+IGB2cWAgY2FuIGJlIHJlYWxsb2NhdGVkIGJ5IG51bWFfcmVhbGxv Yy4NCj4gPj4gV2UgbmVlZCB0byB1cGRhdGUgdGhlIGBhZGRyYCBwb2ludGVyIGJlZm9yZSB1c2lu ZyBpdC4NCj4gPj4NCj4gPg0KPiA+IEhpIFRpd2VpLA0KPiA+IE51bWFfcmVhbGxvYyBmdW5jdGlv biB3aWxsIGNvcHkgZGF0YSBmcm9tIG9yaWdpbmFsIHZxIHN0cnVjdHVyZSB0byBuZXcgdnENCj4g d2hlbiByZWFsbG9jYXRpbmcuDQo+ID4gVGhlIGNvbnRlbnQgb2Ygdmhvc3RfcmluZ19hZGRyIHdp bGwgYmUgdGhlIHNhbWUgaW4gbmV3IGFuZCBvbGQgdnFzLCBpdA0KPiBtYXkgbm90IGJlIG5lY2Vz c2FyeSB0byB1cGRhdGUgcG9pbnRlci4NCj4gVGhhdCdzIHRydWUgYnV0ICdhZGRyJyBzdGlsbCBo b2xkcyBhIHBvaW50ZXIgdG8gdGhlIG9sZCBzdHJ1Y3R1cmUsIGFzc2lnbmVkDQo+IGF0DQo+IGxp bmUgNjQxLg0KPiANCj4gQWxzbywgbm90ZSBUaXdlaSdzIGNvbW1lbnQgcmVnYXJkaW5nIHVwZGF0 aW5nICd2cS0+ZGVzYycuIFRoZSBpZGVhIGJlaGluZA0KPiBudW1hX3JlYWxsb2MgaXMgdG8gcmVh bGxvY2F0ZSB0aGUgdmhvc3RfdmlydHF1ZXVlIHN0cnVjdHVyZSB0byB0aGUgc2FtZQ0KPiBudW1h DQo+IG5vZGUgYXMgdGhlIGRlc2NyaXB0b3IgcmluZy4gVGhpcyBmdW5jdGlvbiBpcyB1cGRhdGlu ZyB0aGUgZGVzY3JpcHRvciByaW5ncywNCj4gc28NCj4gSSB0aGluayB0aGUgaWRlYSBpcyB0byB1 cGRhdGUgdGhlIHJpbmcgYWRkcmVzc2VzIGFuZCB0aGVuIHJlYWxsb2NhdGUgdGhlDQo+IHZpcnRx dWV1ZSBzdHJ1Y3R1cmUgaWYgbmVlZGVkLg0KPiANCllvdSBhcmUgcmlnaHQsIEkgbWlzdW5kZXJz dG9vZCB0aXdlaSdzIGNvbW1lbnQuIFRoZSByaW5nIGFkZHJlc3MgaXMgdXNlZnVsIGZvciANCmNo ZWNraW5nIG51bWEgaWQsIG51bWEgcmVhbGxvY2F0aW9uIHNob3VsZCBiZSBhZnRlciBhZGRyZXNz IHRyYW5zbGF0aW9uLg0KDQpSZWdhcmRzLA0KTWFydmluDQoNCj4gVGhhbmtzLA0KPiBBZHJpYW4N Cj4gDQo+ID4gUmVnYXJkcywNCj4gPiBNYXJ2aW4NCj4gPg0KPiA+PiBUaGFua3MsDQo+ID4+IFRp d2VpDQo+ID4+DQo+ID4+DQo+ID4+PiArCQl2cS0+bG9nX2d1ZXN0X2FkZHIgPQ0KPiA+Pj4gKwkJ CXRyYW5zbGF0ZV9sb2dfYWRkcihkZXYsIHZxLCBhZGRyLT5sb2dfZ3Vlc3RfYWRkcik7DQo+ID4+ PiArCQlpZiAodnEtPmxvZ19ndWVzdF9hZGRyID09IDApIHsNCj4gPj4+ICsJCQlSVEVfTE9HKERF QlVHLCBWSE9TVF9DT05GSUcsDQo+ID4+PiArCQkJCQkiKCVkKSBmYWlsZWQgdG8gbWFwIGxvZ19n dWVzdF9hZGRyLlxuIiwNCj4gPj4+ICsJCQkJCWRldi0+dmlkKTsNCj4gPj4+ICsJCQlyZXR1cm4g ZGV2Ow0KPiA+Pj4gKwkJfQ0KPiA+Pj4gKwl9DQo+ID4+PiArDQo+ID4+PiAgCWlmICh2cV9pc19w YWNrZWQoZGV2KSkgew0KPiA+Pj4gIAkJbGVuID0gc2l6ZW9mKHN0cnVjdCB2cmluZ19wYWNrZWRf ZGVzYykgKiB2cS0+c2l6ZTsNCj4gPj4+ICAJCXZxLT5kZXNjX3BhY2tlZCA9IChzdHJ1Y3QgdnJp bmdfcGFja2VkX2Rlc2MgKikodWludHB0cl90KQ0KPiA+Pj4gIAkJCXJpbmdfYWRkcl90b192dmEo ZGV2LCB2cSwgYWRkci0+ZGVzY191c2VyX2FkZHIsICZsZW4pOw0KPiA+Pj4gLQkJdnEtPmxvZ19n dWVzdF9hZGRyID0gMDsNCj4gPj4+ICAJCWlmICh2cS0+ZGVzY19wYWNrZWQgPT0gTlVMTCB8fA0K PiA+Pj4gIAkJCQlsZW4gIT0gc2l6ZW9mKHN0cnVjdCB2cmluZ19wYWNrZWRfZGVzYykgKg0KPiA+ Pj4gIAkJCQl2cS0+c2l6ZSkgew0KPiA+Pj4gQEAgLTY1NSwxMCArNjY3LDYgQEAgdHJhbnNsYXRl X3JpbmdfYWRkcmVzc2VzKHN0cnVjdCB2aXJ0aW9fbmV0ICpkZXYsDQo+IGludA0KPiA+PiB2cV9p bmRleCkNCj4gPj4+ICAJCQlyZXR1cm4gZGV2Ow0KPiA+Pj4gIAkJfQ0KPiA+Pj4NCj4gPj4+IC0J CWRldiA9IG51bWFfcmVhbGxvYyhkZXYsIHZxX2luZGV4KTsNCj4gPj4+IC0JCXZxID0gZGV2LT52 aXJ0cXVldWVbdnFfaW5kZXhdOw0KPiA+Pj4gLQkJYWRkciA9ICZ2cS0+cmluZ19hZGRyczsNCj4g Pj4+IC0NCj4gPj4+ICAJCWxlbiA9IHNpemVvZihzdHJ1Y3QgdnJpbmdfcGFja2VkX2Rlc2NfZXZl bnQpOw0KPiA+Pj4gIAkJdnEtPmRyaXZlcl9ldmVudCA9IChzdHJ1Y3QgdnJpbmdfcGFja2VkX2Rl c2NfZXZlbnQgKikNCj4gPj4+ICAJCQkJCSh1aW50cHRyX3QpcmluZ19hZGRyX3RvX3Z2YShkZXYs DQo+ID4+PiBAQCAtNzAxLDEwICs3MDksNiBAQCB0cmFuc2xhdGVfcmluZ19hZGRyZXNzZXMoc3Ry dWN0IHZpcnRpb19uZXQgKmRldiwNCj4gaW50DQo+ID4+IHZxX2luZGV4KQ0KPiA+Pj4gIAkJcmV0 dXJuIGRldjsNCj4gPj4+ICAJfQ0KPiA+Pj4NCj4gPj4+IC0JZGV2ID0gbnVtYV9yZWFsbG9jKGRl diwgdnFfaW5kZXgpOw0KPiA+Pj4gLQl2cSA9IGRldi0+dmlydHF1ZXVlW3ZxX2luZGV4XTsNCj4g Pj4+IC0JYWRkciA9ICZ2cS0+cmluZ19hZGRyczsNCj4gPj4+IC0NCj4gPj4+ICAJbGVuID0gc2l6 ZW9mKHN0cnVjdCB2cmluZ19hdmFpbCkgKyBzaXplb2YodWludDE2X3QpICogdnEtPnNpemU7DQo+ ID4+PiAgCWlmIChkZXYtPmZlYXR1cmVzICYgKDFVTEwgPDwgVklSVElPX1JJTkdfRl9FVkVOVF9J RFgpKQ0KPiA+Pj4gIAkJbGVuICs9IHNpemVvZih1aW50MTZfdCk7DQo+ID4+PiBAQCAtNzQxLDE0 ICs3NDUsNiBAQCB0cmFuc2xhdGVfcmluZ19hZGRyZXNzZXMoc3RydWN0IHZpcnRpb19uZXQgKmRl diwNCj4gaW50DQo+ID4+IHZxX2luZGV4KQ0KPiA+Pj4gIAkJdnEtPmxhc3RfYXZhaWxfaWR4ID0g dnEtPnVzZWQtPmlkeDsNCj4gPj4+ICAJfQ0KPiA+Pj4NCj4gPj4+IC0JdnEtPmxvZ19ndWVzdF9h ZGRyID0NCj4gPj4+IC0JCXRyYW5zbGF0ZV9sb2dfYWRkcihkZXYsIHZxLCBhZGRyLT5sb2dfZ3Vl c3RfYWRkcik7DQo+ID4+PiAtCWlmICh2cS0+bG9nX2d1ZXN0X2FkZHIgPT0gMCkgew0KPiA+Pj4g LQkJUlRFX0xPRyhERUJVRywgVkhPU1RfQ09ORklHLA0KPiA+Pj4gLQkJCSIoJWQpIGZhaWxlZCB0 byBtYXAgbG9nX2d1ZXN0X2FkZHIgLlxuIiwNCj4gPj4+IC0JCQlkZXYtPnZpZCk7DQo+ID4+PiAt CQlyZXR1cm4gZGV2Ow0KPiA+Pj4gLQl9DQo+ID4+PiAgCXZxLT5hY2Nlc3Nfb2sgPSAxOw0KPiA+ Pj4NCj4gPj4+ICAJVkhPU1RfTE9HX0RFQlVHKFZIT1NUX0NPTkZJRywgIiglZCkgbWFwcGVkIGFk ZHJlc3MgZGVzYzogJXBcbiIsDQo+ID4+PiAtLQ0KPiA+Pj4gMi4xNy4xDQo+ID4+Pg0KDQo=