From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id 36C5B1B1AB; Mon, 25 Jun 2018 09:52:55 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Jun 2018 00:52:55 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.51,269,1526367600"; d="scan'208";a="240343308" Received: from pgsmsx107.gar.corp.intel.com ([10.221.44.105]) by fmsmga006.fm.intel.com with ESMTP; 25 Jun 2018 00:52:53 -0700 Received: from pgsmsx103.gar.corp.intel.com ([169.254.2.131]) by PGSMSX107.gar.corp.intel.com ([169.254.7.214]) with mapi id 14.03.0319.002; Mon, 25 Jun 2018 15:52:53 +0800 From: "Zhao1, Wei" To: "Zhang, Qi Z" , "dev@dpdk.org" CC: "Lu, Wenzhuo" , "stable@dpdk.org" Thread-Topic: [PATCH] net/ixgbe: fix Tx check descriptor status APIs error Thread-Index: AQHUCgdc5rYjfAhy1Ua0Lf6jOwlT26RrxOsAgAR1jFD//4ljgIAAx0xA//+MHACAAIbTMA== Date: Mon, 25 Jun 2018 07:52:52 +0000 Message-ID: References: <1529656727-40207-1-git-send-email-wei.zhao1@intel.com> <039ED4275CED7440929022BC67E706115323BAD2@SHSMSX103.ccr.corp.intel.com> <039ED4275CED7440929022BC67E706115323C621@SHSMSX103.ccr.corp.intel.com> <039ED4275CED7440929022BC67E706115323C83C@SHSMSX103.ccr.corp.intel.com> In-Reply-To: <039ED4275CED7440929022BC67E706115323C83C@SHSMSX103.ccr.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.0.200.100 dlp-reaction: no-action x-originating-ip: [172.30.20.206] Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: fix Tx check descriptor status APIs error 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, 25 Jun 2018 07:52:57 -0000 SGksIHFpDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogWmhhbmcsIFFp IFoNCj4gU2VudDogTW9uZGF5LCBKdW5lIDI1LCAyMDE4IDM6NDcgUE0NCj4gVG86IFpoYW8xLCBX ZWkgPHdlaS56aGFvMUBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gQ2M6IEx1LCBXZW56aHVv IDx3ZW56aHVvLmx1QGludGVsLmNvbT47IHN0YWJsZUBkcGRrLm9yZw0KPiBTdWJqZWN0OiBSRTog W1BBVENIXSBuZXQvaXhnYmU6IGZpeCBUeCBjaGVjayBkZXNjcmlwdG9yIHN0YXR1cyBBUElzIGVy cm9yDQo+IA0KPiANCj4gDQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9t OiBaaGFvMSwgV2VpDQo+ID4gU2VudDogTW9uZGF5LCBKdW5lIDI1LCAyMDE4IDI6NDkgUE0NCj4g PiBUbzogWmhhbmcsIFFpIFogPHFpLnouemhhbmdAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+ ID4gQ2M6IEx1LCBXZW56aHVvIDx3ZW56aHVvLmx1QGludGVsLmNvbT47IHN0YWJsZUBkcGRrLm9y Zw0KPiA+IFN1YmplY3Q6IFJFOiBbUEFUQ0hdIG5ldC9peGdiZTogZml4IFR4IGNoZWNrIGRlc2Ny aXB0b3Igc3RhdHVzIEFQSXMNCj4gPiBlcnJvcg0KPiA+DQo+ID4gSGmjrHFpDQo+ID4NCj4gPiA+ IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPiBGcm9tOiBaaGFuZywgUWkgWg0KPiA+ ID4gU2VudDogTW9uZGF5LCBKdW5lIDI1LCAyMDE4IDEwOjQ5IEFNDQo+ID4gPiBUbzogWmhhbzEs IFdlaSA8d2VpLnpoYW8xQGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0KPiA+ID4gQ2M6IEx1LCBX ZW56aHVvIDx3ZW56aHVvLmx1QGludGVsLmNvbT47IHN0YWJsZUBkcGRrLm9yZw0KPiA+ID4gU3Vi amVjdDogUkU6IFtQQVRDSF0gbmV0L2l4Z2JlOiBmaXggVHggY2hlY2sgZGVzY3JpcHRvciBzdGF0 dXMgQVBJcw0KPiA+ID4gZXJyb3INCj4gPiA+DQo+ID4gPg0KPiA+ID4NCj4gPiA+ID4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gRnJvbTogWmhhbzEsIFdlaQ0KPiA+ID4gPiBT ZW50OiBNb25kYXksIEp1bmUgMjUsIDIwMTggOTo1OCBBTQ0KPiA+ID4gPiBUbzogWmhhbmcsIFFp IFogPHFpLnouemhhbmdAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4gPiA+IENjOiBMdSwg V2Vuemh1byA8d2Vuemh1by5sdUBpbnRlbC5jb20+OyBzdGFibGVAZHBkay5vcmcNCj4gPiA+ID4g U3ViamVjdDogUkU6IFtQQVRDSF0gbmV0L2l4Z2JlOiBmaXggVHggY2hlY2sgZGVzY3JpcHRvciBz dGF0dXMNCj4gPiA+ID4gQVBJcyBlcnJvcg0KPiA+ID4gPg0KPiA+ID4gPiBIaSwNCj4gPiA+ID4N Cj4gPiA+ID4gPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4gPiA+IEZyb206IFpo YW5nLCBRaSBaDQo+ID4gPiA+ID4gU2VudDogRnJpZGF5LCBKdW5lIDIyLCAyMDE4IDk6NDcgUE0N Cj4gPiA+ID4gPiBUbzogWmhhbzEsIFdlaSA8d2VpLnpoYW8xQGludGVsLmNvbT47IGRldkBkcGRr Lm9yZw0KPiA+ID4gPiA+IENjOiBMdSwgV2Vuemh1byA8d2Vuemh1by5sdUBpbnRlbC5jb20+OyBz dGFibGVAZHBkay5vcmcNCj4gPiA+ID4gPiBTdWJqZWN0OiBSRTogW1BBVENIXSBuZXQvaXhnYmU6 IGZpeCBUeCBjaGVjayBkZXNjcmlwdG9yIHN0YXR1cw0KPiA+ID4gPiA+IEFQSXMgZXJyb3INCj4g PiA+ID4gPg0KPiA+ID4gPiA+IEhpIFdlaToNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ID4gLS0tLS1P cmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiA+ID4gPiA+IEZyb206IFpoYW8xLCBXZWkNCj4gPiA+ ID4gPiA+IFNlbnQ6IEZyaWRheSwgSnVuZSAyMiwgMjAxOCA0OjM5IFBNDQo+ID4gPiA+ID4gPiBU bzogZGV2QGRwZGsub3JnDQo+ID4gPiA+ID4gPiBDYzogTHUsIFdlbnpodW8gPHdlbnpodW8ubHVA aW50ZWwuY29tPjsgWmhhbmcsIFFpIFoNCj4gPiA+ID4gPiA+IDxxaS56LnpoYW5nQGludGVsLmNv bT47IHN0YWJsZUBkcGRrLm9yZzsgWmhhbzEsIFdlaQ0KPiA+ID4gPiA+ID4gPHdlaS56aGFvMUBp bnRlbC5jb20+DQo+ID4gPiA+ID4gPiBTdWJqZWN0OiBbUEFUQ0hdIG5ldC9peGdiZTogZml4IFR4 IGNoZWNrIGRlc2NyaXB0b3Igc3RhdHVzDQo+ID4gPiA+ID4gPiBBUElzIGVycm9yDQo+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gVGhpcyBpcyBhIGlzc3VlIGludm9sdmUgUlMgYml0IHNldCBydWxl IGluIGl4Z2JlLg0KPiA+ID4gPiA+ID4gTGV0IHVzIHRha2UgZnVuY3Rpb24gaXhnYmVfeG1pdF9w a3RzX3ZlYyAoKSBhcyBhbiBleGFtcGxlLCBpbg0KPiA+ID4gPiA+ID4gdGhpcyBmdW5jdGlvbiBS UyBiaXQgd2lsbCBiZSBzZXQgZm9yIGRlc2NyaXB0b3Igd2l0aCBpbmRleA0KPiA+ID4gPiA+ID4g dHhxLT50eF9uZXh0X3JzLCBhbmQgYWxzbyBkZXNjcmlwdG9yIGZyZWUgZnVuY3Rpb24NCj4gPiA+ ID4gPiA+IGl4Z2JlX3R4X2ZyZWVfYnVmcygpIGFsc28gY2hlY2sgUlMgYml0IGZvciBkZXNjcmlw dG9yIHdpdGgNCj4gPiA+ID4gPiA+IGluZGV4DQo+ID4gPiA+ID4gPiB0eHEtPnR4X25leHRfcnMs IFRoaXMgaXMgcGVyZmVjdCBvay4gTGV0IHVzIHRha2UgYW4gZXhhbXBsZSwNCj4gPiA+ID4gPiA+ IGlmIGFwcCBzZXQgdHhfcnNfdGhyZXNoID0gMzIgYW5kIG5iX2Rlc2MgPSA1MTIsIHRoZW4gaXhn YmUgUE1EDQo+ID4gPiA+ID4gPiBjb2RlIHdpbGwgaW5pdA0KPiA+ID4gPiA+ID4gdHhxLT50eF9u ZXh0X3JzID0gMzEgaW4gZnVuY3Rpb24gaXhnYmVfcmVzZXRfdHhfcXVldWUgd2hlbiB0eA0KPiA+ ID4gPiA+ID4gdHhxLT5xdWV1ZQ0KPiA+ID4gPiA+IHNldHVwLg0KPiA+ID4gPiA+ID4gQW5kIGFs c28gdHhxLT50eF9uZXh0X3JzIHdpbGwgYmUgdXBkYXRlIGFzIDYzLCA5NSBhbmQgc28gb24uDQo+ ID4gPiA+ID4gPiBCdXQsIGluIHRoZSBmdW5jdGlvbiBpeGdiZV9kZXZfdHhfZGVzY3JpcHRvcl9z dGF0dXMoKSwgdGhlIFJTDQo+ID4gPiA+ID4gPiBiaXQgdG8gY2hlY2sgaXMgIiBkZXNjID0gKChk ZXNjDQo+ID4gPiA+ID4gPiArIHR4cS0+dHhfcnNfdGhyZXNoIC0gMSkgLw0KPiA+ID4gPiA+ID4g dHhxLT50eF9yc190aHJlc2gpICogdHhxLXR4X3JzX3RocmVzaCIsIHdoaWNoIGlzIDMyICw2NCwg OTYgYW5kIHNvDQo+IG9uLg0KPiA+ID4gPiA+ID4gU28sIHRoZXkgYXJlIGFsbCB3cm9uZyEgSW4g dHggZnVuY3Rpb24gb2YNCj4gPiA+ID4gPiA+IGl4Z2JlX3htaXRfcGt0c19zaW1wbGUsIHRoZSBS UyBiaXQgcnVsZSBpcyBhbHNvIHRoZSBzYW1lLCBpdA0KPiA+ID4gPiA+ID4gYWxzbyBzZXQNCj4g PiBpbmRleCAzMSAsNjQsIDk1Lg0KPiA+ID4gPiA+ID4gd2UgbmVlZCB0byBjb3JyZWN0IGl0Lg0K PiA+ID4gPiA+DQo+ID4gPiA+ID4gT25lIHF1ZXN0aW9uOg0KPiA+ID4gPiA+IGRvZXMgb25seSB0 aGUgZGVzY3JpcHRvciB3aXRoIFJTIGJpdCB3aWxsIGhhdmUgREQgc3RhdHVzLCBvciBOSUMNCj4g PiA+ID4gPiB3aWxsIGFsd2F5cyB1cGRhdGUgYWxsIGRlc2NyaXB0b3IncyBERCBzdGF0dXMgYnV0 IHRoaXMgaGFwcGVucw0KPiA+ID4gPiA+IHdoZW4gdGhlIG5leHQgZGVzY3JpcHRvciB3aXRoIFJT IGJpdCBoYXMgYmVlbiBzZW50Pw0KPiA+ID4gPiA+IElmIGl0IGlzIHRoZSBmaXJzdCBjYXNlLCBJ IHRoaW5rIHlvdSBmaXggc3RpbGwgaGF2ZSBwcm9ibGVtLA0KPiA+ID4gPiA+IGJlY2F1c2UgbXVs dGktc2VnIG1idWYgb3IgdHNvIG9mZmxvYWQgd2lsbCBicmVhayB0aGUgMzEsIDYzLCA5NQ0KPiA+ ID4gPiA+IHBhdHRlcm4NCj4gPiA+ID4gPiBTZWU6DQo+ID4gPiA+ID4gCQkJCQkJbmJfdXNlZCA9 ICh1aW50MTZfdCkodHhfcGt0LQ0KPiA+ID4gPiA+ID5uYl9zZWdzICsgbmV3X2N0eCk7DQo+ID4g PiA+ID4NCj4gPiA+ID4gPiAJCQkJCQlpZiAodHhwICE9IE5VTEwgJiYNCj4gPiA+ID4gPiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5iX3VzZWQgKyB0eHEtPm5iX3R4X3VzZWQgPj0N Cj4gPiA+ID4gdHhxLT50eF9yc190aHJlc2gpDQo+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAg ICAgICAgLyogc2V0IFJTIG9uIHRoZSBwcmV2aW91cyBwYWNrZXQgaW4gdGhlDQo+ID4gPiA+ID4g YnVyc3QNCj4gPiAqLw0KPiA+ID4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIHR4cC0+cmVh ZC5jbWRfdHlwZV9sZW4gfD0NCj4gPiA+ID4gPg0KPiA+ID4gPiBydGVfY3B1X3RvX2xlXzMyKElY R0JFX1RYRF9DTURfUlMpOw0KPiA+ID4gPiA+DQo+ID4gPiA+ID4gc28gdGhlIHBvc3NpYmxlIHNv bHV0aW9uIGlzIHN0b3JlIGVhY2ggUlMgcG9zaXRpb24gaW4gYSBsaXN0IGF0DQo+ID4gPiA+ID4g dHgsIGFuZCBmaW5kIHRoZSBuZXh0IFJTIGZyb20gdGhlIGxpc3QgaW4NCj4gPiA+ID4gPiBpeGdi ZV9kZXZfdHhfZGVzY3JpcHRvcl9zdGF0dXMNCj4gPiA+ID4gPg0KPiA+ID4gPiA+IElmIGl0IGlz IHRoZSBzZWNvbmQgY2FzZSwgaXQgd2lsbCBiZSBzaW1wbGUgd2UgZG9uJ3QgbmVlZCB0bw0KPiA+ ID4gPiA+IGNoZWNrIGZvcndhcmQgd2l0aCB0eF9yc190aHJlc2gsIGp1c3QgY2hlY2sgdGhlIGV4 YWN0IHBvc2l0aW9uICgNCj4gPiA+ID4gPiBJIGhvcGUgaXQgaXMgdGhpcyBjYXNlIDopKQ0KPiA+ ID4gPg0KPiA+ID4gPiBJbiB0aGlzIHBhdGNoLCBjb2RlICJkZXNjID0gdHhxLT5zd19yaW5nW2Rl c2NdLmxhc3RfaWQ7IiB3aWxsIGdldA0KPiA+ID4gPiB0aGUgbGFzdCBpbmRleCBmb3Igc2V2ZXJh bCBzZWdtZW50cyBwYWNrZXQsIHRoYXQgIHNvbHZlIHRoZSBjYXNlDQo+ID4gPiA+IHdoZW4gcGFj a2V0IGNvbnRhaW4gbW9yZSB0aGFuIG9uZSBzZWdtZW50Lg0KPiA+ID4NCj4gPiA+IFllcywgYnV0 IG15IHVuZGVyc3RhbmRpbmcgaXMgd2UgInNldCBSUyBvbiB0aGUgcHJldmlvdXMgcGFja2V0IiBi dXQNCj4gPiA+IG5vdCB0aGUgcGFja2V0IGNyb3NzIHR4X3JzX3RocmVzaCBib3VuZGFyeSBTbyBl dmVuIHdpdGhvdXQgbXVsdGktc2VnDQo+ID4gPiAsIGl0IHdpbGwgYmUgMzAsIDYyLCA5NCwgYnV0 IG5vdCAzMSwgNjMsIDk1LCBwcm9iYWJseSB0aGUgcmVhc29uIHdlDQo+ID4gPiBkaWRuJ3Qgc2Vl IHRoZSBpc3N1ZSwgaXMgYmVjYXVzZSBpZiB3ZSB0ZXN0IGl0IHdpdGggMzIgYnVyc3QsIHRoZQ0K PiA+ID4gbGF0ZXN0IHBhY2tldCBzdGlsbCB3aWxsIGJlIHNldCBSUywgc28gaXQgd2lsbCBiZSAz MCwzMSwgNjIsNjMsIDk0LA0KPiA+ID4gOTUsIGJ1dCBpZiB3ZSB0ZXN0ZWQgd2l0aCA2NCBidXJz dCwgSSBhc3N1bWUgaXQgd2lsbCBiZSAzMCwgNjIsIDYzLCA5NCAuLi4gcmlnaHQ/DQo+ID4gPg0K PiA+DQo+ID4gVXBkYXRlIHRvIGxhc3QgbWFpbC4NCj4gPiBUaGVyZSBhcmUgYW5vdGhlciBSUyBi aXQgc2V0IGNvZGUsIHdoaWNoIHNldCBSUyBiaXQgb24gbGFzdCBkZXNjcmlwdG9yDQo+ID4gb2Yg dGhlIHRocmVzaG9sZCBwYWNrZXQuDQo+ID4gU28sIHRoYXQgaXMgdG8gc2F5IGl4Z2JlX3htaXRf cGt0cygpIG5vdCBvbmx5IHNldCAzMCA2MiA5NCwgYnV0IGFsc28gMzEgNjMgOTUuDQo+ID4gQW5k IGl0IGFsc28gc2V0IHRoZSBsYXN0IHBhY2tldCBvZiB0aGUgYnVyc3QsIHNvIHdlIGRvIG5vdCBu ZWVkIGZpeA0KPiA+IHRoaXMgZnVuY3Rpb24sIGl0IGlzIG5vdCBidWcuDQo+ID4NCj4gPiAJCS8q IFNldCBSUyBiaXQgb25seSBvbiB0aHJlc2hvbGQgcGFja2V0cycgbGFzdCBkZXNjcmlwdG9yICov DQo+ID4gCQlpZiAodHhxLT5uYl90eF91c2VkID49IHR4cS0+dHhfcnNfdGhyZXNoKSB7DQo+ID4g CQkJUE1EX1RYX0ZSRUVfTE9HKERFQlVHLA0KPiA+IAkJCQkJIlNldHRpbmcgUlMgYml0IG9uIFRY RCBpZD0iDQo+ID4gCQkJCQkiJTR1IChwb3J0PSVkIHF1ZXVlPSVkKSIsDQo+ID4gCQkJCQl0eF9s YXN0LCB0eHEtPnBvcnRfaWQsIHR4cS0+cXVldWVfaWQpOw0KPiA+DQo+ID4gCQkJY21kX3R5cGVf bGVuIHw9IElYR0JFX1RYRF9DTURfUlM7DQo+ID4NCj4gPiAJCQkvKiBVcGRhdGUgdHhxIFJTIGJp dCBjb3VudGVycyAqLw0KPiA+IAkJCXR4cS0+bmJfdHhfdXNlZCA9IDA7DQo+ID4gCQkJdHhwID0g TlVMTDsNCj4gPiAJCX0NCj4gDQo+IE9LLCBidXQgaXMgdGhpcyBndWFyYW50ZWUgdGhhdCBzbG90 IDMxLCA2MywgOTUgaXMgYWx3YXlzIGluIHRoZSBwYWNrZXQgdGhhdCBjcm9zcw0KPiB0eF9yeF90 aHJlc2ggYm91bmRhcnk/DQo+IExldCdzIGFzc3VtZSBldmVyeSBwYWNrZXQgaGFzIDUgc2VnLCBz byBpbiBldmVyeSA3IHBhY2tldCB0aGUgbGFzdCBvbmUgd2lsbA0KPiBjcm9zcyB0aGUgYm91bmRh cnkuDQo+IHNvIGl0IHdpbGwgYmUNCj4gMC00LCA1LTksIDEwLTE0LCAxNS0xOSwgMjAtMjQsIDI1 LTI5LCAzMC0zNCwgMzUtMzksIDQwLTQ0LCA0NS00OSwgNTAtNTQsIDU1LTU5LA0KPiA2MC02NCwg NjUtNjkgRGVmaW5pdGVseSwgaXQgaXMgcG9zc2libGUgdGhhdCBsYXN0IHBhY2tldCAoYW5kIHRo ZSBwcmV2aW91cyBiZWZvcmUNCj4gbGFzdCkgZG9lcyBub3QgaW5jbHVkZSAzMipuLTEgSW4gaXhn YmVfeG1pdF9jbGVhbnVwLCBpdCB1c2UgZGVzY190b19jbGVhbl90bw0KPiA9IHN3X3JpbmdbZGVz Y190b19jbGVhbl90b10ubGFzdF9pZCArIHR4X3J4X3RocmVzaCB0byBjYWxjdWxhdGUgbmV4dCBw YWNrZXQNCj4gaW4gYm91bmRhcnksIHRoYXQncyBubyBwcm9ibGVtIEJ1dCBpbiBpeGdiZV9kZXZf dHhfZGVzY3JpcHRvcl9zdGF0dXMsIHdlDQo+IGFzc3VtZSB0aGUgaXQgaXMgMzEsNjMsOTUgcGF0 dGVybiwgdGhhdCB3aWxsIGJlIHByb2JsZW0uDQoNCkluIG15IHBhdGNoIGZvciBpeGdiZV9kZXZf dHhfZGVzY3JpcHRvcl9zdGF0dXMoKQ0KV2UgaGF2ZSBjb2RlIDoNCg0KCWRlc2MgPSB0eHEtPnN3 X3JpbmdbZGVzY10ubGFzdF9pZDsNCiAJc3RhdHVzID0gJnR4cS0+dHhfcmluZ1tkZXNjXS53Yi5z dGF0dXM7DQoNCml0IHdpbGwgb25seSBjaGVjayBsYXN0X2lkIERELCBpZiBpbiB0aGUgc2V2ZXJh bCBzZWdtZW50IGNhc2UsIGl0IHdpbGwgYWxzbyB0byBjaGVjayB0aGUgbGFzdCBERC4NCg0KPiAN Cj4gDQo+IA0KPiA+DQo+ID4NCj4gPiA+ID4NCj4gPiA+ID4gPg0KPiA+ID4gPiA+IFJlZ2FyZHMN Cj4gPiA+ID4gPiBRaQ0KPiA+ID4gPiA+ID4NCj4gPiA+ID4gPiA+IEZpeGVzOiBhMjkxOWUxM2Q5 NWUgKCJuZXQvaXhnYmU6IGltcGxlbWVudCBkZXNjcmlwdG9yIHN0YXR1cw0KPiA+ID4gPiA+ID4g QVBJIikNCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBXZWkgWmhhbyA8 d2VpLnpoYW8xQGludGVsLmNvbT4NCj4gPiA+ID4gPiA+IC0tLQ0KPiA+ID4gPiA+ID4gIGRyaXZl cnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYyB8IDEyICsrKysrKy0tLS0tLQ0KPiA+ID4gPiA+ID4g IDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pDQo+ID4gPiA+ ID4gPg0KPiA+ID4gPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4 dHguYw0KPiA+ID4gPiA+ID4gYi9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmMgaW5kZXgg M2UxM2QyNi4uZjE4NTIxOSAxMDA2NDQNCj4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvbmV0L2l4 Z2JlL2l4Z2JlX3J4dHguYw0KPiA+ID4gPiA+ID4gKysrIGIvZHJpdmVycy9uZXQvaXhnYmUvaXhn YmVfcnh0eC5jDQo+ID4gPiA+ID4gPiBAQCAtMzE0NiwxNSArMzE0NiwxNSBAQCBpeGdiZV9kZXZf dHhfZGVzY3JpcHRvcl9zdGF0dXModm9pZA0KPiA+ID4gPiA+ICp0eF9xdWV1ZSwNCj4gPiA+ID4g PiA+IHVpbnQxNl90IG9mZnNldCkNCj4gPiA+ID4gPiA+ICAJCXJldHVybiAtRUlOVkFMOw0KPiA+ ID4gPiA+ID4NCj4gPiA+ID4gPiA+ICAJZGVzYyA9IHR4cS0+dHhfdGFpbCArIG9mZnNldDsNCj4g PiA+ID4gPiA+ICsJaWYgKGRlc2MgPj0gdHhxLT5uYl90eF9kZXNjKQ0KPiA+ID4gPiA+ID4gKwkJ ZGVzYyAtPSB0eHEtPm5iX3R4X2Rlc2M7DQo+ID4gPiA+ID4gPiAgCS8qIGdvIHRvIG5leHQgZGVz YyB0aGF0IGhhcyB0aGUgUlMgYml0ICovDQo+ID4gPiA+ID4gPiAtCWRlc2MgPSAoKGRlc2MgKyB0 eHEtPnR4X3JzX3RocmVzaCAtIDEpIC8gdHhxLT50eF9yc190aHJlc2gpICoNCj4gPiA+ID4gPiA+ IC0JCXR4cS0+dHhfcnNfdGhyZXNoOw0KPiA+ID4gPiA+ID4gLQlpZiAoZGVzYyA+PSB0eHEtPm5i X3R4X2Rlc2MpIHsNCj4gPiA+ID4gPiA+ICsJZGVzYyA9IChkZXNjICAvIHR4cS0+dHhfcnNfdGhy ZXNoICsgMSkgKg0KPiA+ID4gPiA+ID4gKwkJCXR4cS0+dHhfcnNfdGhyZXNoIC0gMTsNCj4gPiA+ ID4gPiA+ICsJaWYgKGRlc2MgPj0gdHhxLT5uYl90eF9kZXNjKQ0KPiA+ID4gPiA+ID4gIAkJZGVz YyAtPSB0eHEtPm5iX3R4X2Rlc2M7DQo+ID4gPiA+ID4gPiAtCQlpZiAoZGVzYyA+PSB0eHEtPm5i X3R4X2Rlc2MpDQo+ID4gPiA+ID4gPiAtCQkJZGVzYyAtPSB0eHEtPm5iX3R4X2Rlc2M7DQo+ID4g PiA+ID4gPiAtCX0NCj4gPiA+ID4gPiA+DQo+ID4gPiA+ID4gPiArCWRlc2MgPSB0eHEtPnN3X3Jp bmdbZGVzY10ubGFzdF9pZDsNCj4gPiA+ID4gPiA+ICAJc3RhdHVzID0gJnR4cS0+dHhfcmluZ1tk ZXNjXS53Yi5zdGF0dXM7DQo+ID4gPiA+ID4gPiAgCWlmICgqc3RhdHVzICYgcnRlX2NwdV90b19s ZV8zMihJWEdCRV9BRFZUWERfU1RBVF9ERCkpDQo+ID4gPiA+ID4gPiAgCQlyZXR1cm4gUlRFX0VU SF9UWF9ERVNDX0RPTkU7DQo+ID4gPiA+ID4gPiAtLQ0KPiA+ID4gPiA+ID4gMi43LjUNCg0K