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 8BCBB1B1F7; Thu, 11 Oct 2018 12:01:19 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Oct 2018 03:01:18 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,368,1534834800"; d="scan'208";a="87505812" Received: from pgsmsx105.gar.corp.intel.com ([10.221.44.96]) by FMSMGA003.fm.intel.com with ESMTP; 11 Oct 2018 02:56:45 -0700 Received: from pgsmsx110.gar.corp.intel.com (10.221.44.111) by PGSMSX105.gar.corp.intel.com (10.221.44.96) with Microsoft SMTP Server (TLS) id 14.3.319.2; Thu, 11 Oct 2018 17:56:44 +0800 Received: from pgsmsx103.gar.corp.intel.com ([169.254.2.13]) by PGSMSX110.gar.corp.intel.com ([169.254.13.251]) with mapi id 14.03.0319.002; Thu, 11 Oct 2018 17:56:44 +0800 From: "Zhao1, Wei" To: Ilya Maximets , "Zhang, Qi Z" , Laurent Hardy CC: "Lu, Wenzhuo" , "Ananyev, Konstantin" , Laurent Hardy , "Ananyev, Konstantin" , "stable@dpdk.org" , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH] net/ixgbe: fix busy polling while fiber link update Thread-Index: AQHUSRgNQX2uzJKLekeq5MEAlIUV2aTrsTgAgAAVKwCALe+P8A== Date: Thu, 11 Oct 2018 09:56:43 +0000 Message-ID: References: <20180831123824eucas1p1cd2981c716c4764703e24c3eeb4d33c7~P_GOOSRuf0867908679eucas1p1K@eucas1p1.samsung.com> <039ED4275CED7440929022BC67E706115327FA5E@SHSMSX103.ccr.corp.intel.com> <20180910150708eucas1p220c16857c4277b311ddc000b9337d9cb~TEk8KngQJ1365413654eucas1p2a@eucas1p2.samsung.com> <039ED4275CED7440929022BC67E7061153284304@SHSMSX103.ccr.corp.intel.com> <20180912080338eucas1p1bfdacb30aa969cd607ccf99f64d6bf80~TmFveK2Dy2157121571eucas1p1U@eucas1p1.samsung.com> In-Reply-To: <20180912080338eucas1p1bfdacb30aa969cd607ccf99f64d6bf80~TmFveK2Dy2157121571eucas1p1U@eucas1p1.samsung.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.400.15 dlp-reaction: no-action x-originating-ip: [172.30.20.205] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH] net/ixgbe: fix busy polling while fiber link update 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: Thu, 11 Oct 2018 10:01:20 -0000 SGksICBJbHlhIE1heGltZXRzIEFORCBsYXVyZW50LmhhcmR5DQoNCg0KPiAtLS0tLU9yaWdpbmFs IE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBkZXYgW21haWx0bzpkZXYtYm91bmNlc0BkcGRrLm9yZ10g T24gQmVoYWxmIE9mIElseWEgTWF4aW1ldHMNCj4gU2VudDogV2VkbmVzZGF5LCBTZXB0ZW1iZXIg MTIsIDIwMTggNDowNSBQTQ0KPiBUbzogWmhhbmcsIFFpIFogPHFpLnouemhhbmdAaW50ZWwuY29t PjsgZGV2QGRwZGsub3JnDQo+IENjOiBMdSwgV2Vuemh1byA8d2Vuemh1by5sdUBpbnRlbC5jb20+ OyBBbmFueWV2LCBLb25zdGFudGluDQo+IDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPjsg TGF1cmVudCBIYXJkeQ0KPiA8bGF1cmVudC5oYXJkeUA2d2luZC5jb20+OyBEYWksIFdlaSA8d2Vp LmRhaUBpbnRlbC5jb20+Ow0KPiBzdGFibGVAZHBkay5vcmcNCj4gU3ViamVjdDogUmU6IFtkcGRr LWRldl0gW1BBVENIXSBuZXQvaXhnYmU6IGZpeCBidXN5IHBvbGxpbmcgd2hpbGUgZmliZXIgbGlu aw0KPiB1cGRhdGUNCj4gDQo+IE9uIDEyLjA5LjIwMTggMDk6NDksIFpoYW5nLCBRaSBaIHdyb3Rl Og0KPiA+DQo+ID4NCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTog SWx5YSBNYXhpbWV0cyBbbWFpbHRvOmkubWF4aW1ldHNAc2Ftc3VuZy5jb21dDQo+ID4+IFNlbnQ6 IE1vbmRheSwgU2VwdGVtYmVyIDEwLCAyMDE4IDExOjA5IFBNDQo+ID4+IFRvOiBaaGFuZywgUWkg WiA8cWkuei56aGFuZ0BpbnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gPj4gQ2M6IEx1LCBXZW56 aHVvIDx3ZW56aHVvLmx1QGludGVsLmNvbT47IEFuYW55ZXYsIEtvbnN0YW50aW4NCj4gPj4gPGtv bnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+OyBMYXVyZW50IEhhcmR5DQo+ID4+IDxsYXVyZW50 LmhhcmR5QDZ3aW5kLmNvbT47IERhaSwgV2VpIDx3ZWkuZGFpQGludGVsLmNvbT47DQo+ID4+IHN0 YWJsZUBkcGRrLm9yZw0KPiA+PiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0hdIG5ldC9p eGdiZTogZml4IGJ1c3kgcG9sbGluZyB3aGlsZQ0KPiA+PiBmaWJlciBsaW5rIHVwZGF0ZQ0KPiA+ Pg0KPiA+PiBPbiAwNC4wOS4yMDE4IDA5OjA4LCBaaGFuZywgUWkgWiB3cm90ZToNCj4gPj4+IEhp IElseWE6DQo+ID4+Pg0KPiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+Pj4g RnJvbTogZGV2IFttYWlsdG86ZGV2LWJvdW5jZXNAZHBkay5vcmddIE9uIEJlaGFsZiBPZiBJbHlh IE1heGltZXRzDQo+ID4+Pj4gU2VudDogRnJpZGF5LCBBdWd1c3QgMzEsIDIwMTggODo0MCBQTQ0K PiA+Pj4+IFRvOiBkZXZAZHBkay5vcmcNCj4gPj4+PiBDYzogTHUsIFdlbnpodW8gPHdlbnpodW8u bHVAaW50ZWwuY29tPjsgQW5hbnlldiwgS29uc3RhbnRpbg0KPiA+Pj4+IDxrb25zdGFudGluLmFu YW55ZXZAaW50ZWwuY29tPjsgTGF1cmVudCBIYXJkeQ0KPiA+Pj4+IDxsYXVyZW50LmhhcmR5QDZ3 aW5kLmNvbT47IERhaSwgV2VpIDx3ZWkuZGFpQGludGVsLmNvbT47IElseWENCj4gPj4+PiBNYXhp bWV0cyA8aS5tYXhpbWV0c0BzYW1zdW5nLmNvbT47IHN0YWJsZUBkcGRrLm9yZw0KPiA+Pj4+IFN1 YmplY3Q6IFtkcGRrLWRldl0gW1BBVENIXSBuZXQvaXhnYmU6IGZpeCBidXN5IHBvbGxpbmcgd2hp bGUgZmliZXINCj4gPj4+PiBsaW5rIHVwZGF0ZQ0KPiA+Pj4+DQo+ID4+Pj4gSWYgdGhlIG11bHRp c3BlZWQgZmliZXIgbGluayBpcyBpbiBET1dOIHN0YXRlLCBpeGdiZV9zZXR1cF9saW5rDQo+ID4+ Pj4gY291bGQgdGFrZSBhcm91bmQgYSBzZWNvbmQgb2YgYnVzeSBwb2xsaW5nLiBUaGlzIGlzIGhp Z2hseQ0KPiA+Pj4+IGluY29udmVuaWVudCBmb3IgdGhlIGNhc2Ugd2hlcmUgc2luZ2xlIHRocmVh ZCBwZXJpb2RpY2FsbHkgY2hlY2tzIHRoZQ0KPiBsaW5rIHN0YXR1c2VzLg0KPiA+Pj4+IEZvciBl eGFtcGxlLCBPVlMgbWFpbiB0aHJlYWQgcGVyaW9kaWNhbGx5IHVwZGF0ZXMgdGhlIGxpbmsgc3Rh dHVzZXMNCj4gPj4+PiBhbmQgaGFuZ3MgZm9yIGEgcmVhbGx5IGxvbmcgdGltZSBidXN5IHdhaXRp bmcgb24gaXhnYmVfc2V0dXBfbGluaygpDQo+ID4+Pj4gZm9yIGEgRE9XTiBmaWJlciBwb3J0cy4g Rm9yIGNhc2Ugd2l0aCAzIGRvd24gcG9ydHMgaXQgaGFuZ3MgZm9yIGEgMw0KPiA+Pj4+IHNlY29u ZHMgYW5kIHVuYWJsZSB0byBkbyBhbnl0aGluZyBpbmNsdWRpbmcgcGFja2V0IHByb2Nlc3Npbmcu DQo+ID4+Pj4gRml4IHRoYXQgYnkgc2hpZnRpbmcgdGhhdCB3b3JrYXJvdW5kIHRvIGEgc2VwYXJh dGUgdGhyZWFkIGJ5IGFsYXJtDQo+ID4+Pj4gaGFuZGxlciB0aGF0IHdpbGwgdHJ5IHRvIHNldCB1 cCBsaW5rIGlmIGl0IGlzIERPV04uDQo+ID4+Pg0KPiA+Pj4gRG9lcyB0aGF0IG1lYW4gd2Ugd2ls bCBibG9jayB0aGUgaW50ZXJydXB0IHRocmVhZCBmb3IgMyBzZWNvbmRzPw0KPiA+Pg0KPiA+PiBU aHJlZSB0aW1lcyBmb3Igb25lIHNlY29uZC4gT3RoZXIgd29yayBjb3VsZCBiZSBzY2hlZHVsZWQg YmV0d2Vlbi4NCj4gPj4gSU1ITywgaXQncyBtdWNoIGJldHRlciB0aGFuIGJsb2NraW5nIHVzdWFs IGNhbGxlciBmb3IgMyBzZWNvbmRzLg0KPiA+Pg0KPiA+Pj4gQWxzbywgY2FuIHdlIGd1YXJhbnRl ZSB0aGVyZSB3aWxsIG5vdCBiZSBhbnkgcmFjZSBjb25kaXRpb24gaWYgd2UNCj4gPj4+IGNhbGwN Cj4gPj4gaXhnYmVfc2V0dXBfbGluayBhdCBhbm90aGVyIHRocmVhZCwgdGhlIGJhc2UgY29kZSBB UEkgaXMgbm90IGFzc3VtZWQNCj4gPj4gdG8gYmUgdGhyZWFkLXNhZmUgYXMgSSBrbm93Lg0KPiA+ Pg0KPiA+PiBUaGUgb25seSB1c2VyIG9mICdpeGdiZV9zZXR1cF9saW5rJyBpcyAnaXhnYmVfZGV2 X3N0YXJ0JywgYnV0IGl0DQo+ID4+IGNvdWxkIGJlIGNhbGxlZCBvbmx5IGlmIGRldmljZSBzdG9w cGVkLiAnaXhnYmVfZGV2X3N0b3AnIGNhbmNlbHMgdGhlIGFsYXJtLg0KPiA+PiBSYWNlIHdpdGgg J2xpbmtfdXBkYXRlJyBhdm9pZGVkIGJ5ICdJWEdCRV9GTEFHX05FRURfTElOS19DT05GSUcnDQo+ IGZsYWcuDQo+ID4NCj4gPiBJIGd1ZXNzLCBpdCcgbm90IG9ubHkgYWJvdXQgd2hlbiBpeGdiX3Nl dHVwX2xpbmsgcmFjZSB3aXRoIGl0c2VsZiwgYnV0IGFsc28NCj4gd2hlbiBpdCByYWNlIHdpdGgg b3RoZXIgQVBJcy4NCj4gPiBBbHNvIHRoZSBjb25jZXJuIGlzLCBldmVuIGluIGN1cnJlbnQgdmVy c2lvbiwgd2UgY2FuIHByb3ZlIHRoZXJlIGlzIG5vIGlzc3VlLA0KPiBob3cgY2FuIHdlIGd1YXJh bnRlZSB3ZSBhcmUgc2FmZSBmb3IgZnV0dXJlIGJhc2UgY29kZSB1cGRhdGU/IEl0J3Mgbm90DQo+ IGRlc2lnbmVkIGFzIHRocmVhZC1zYWZlLg0KPiA+IEZvciBteSBvcHRpb24sIHRoZSBjaGFuZ2Ug aXMgcmlza3kuDQo+IA0KPiBJbiBjdXJyZW50IGltcGxlbWVudGF0aW9uIGludGVycnVwdCBoYW5k bGVyIGFscmVhZHkgY2FsbHMgdGhlDQo+ICdpeGdiZV9kZXZfbGlua191cGRhdGUnIHdoaWNoIHN1 YnNlcXVlbnRseSBjYWxscyAnaXhnYmVfc2V0dXBfbGluaycNCj4gaW4gb3VyIGNhc2UgaWYgTFND IGludGVycnVwdHMgZW5hYmxlZC4gU28sIG15IGNoYW5nZSBtYWtlcyB0aGUgZHJpdmVyIGV2ZW4N Cj4gc2FmZXIgYnkgbW92aW5nICdpeGdiZV9zZXR1cF9saW5rJyB0byB0aGUgc2FtZSBpbnRlcnJ1 cHQgdGhyZWFkLg0KPiBPdGhlcndpc2UgdHdvIHRocmVhZHMgKGludGVycnVwdHMgaGFuZGxlciBh bmQgdGhlIGxpbmsgc3RhdHVzIGNoZWNraW5nDQo+IHRocmVhZCkgY291bGQgY2FsbCAnaXhnYmVf c2V0dXBfbGluaycgc2ltdWx0YW5lb3VzbHkuDQo+IA0KPiA+DQo+ID4gQnR3LCBzaW5jZSBpeGdi ZSBzdXBwb3J0IExTQywgaXQgaXMgbm90IG5lY2Vzc2FyeSBmb3IgInNpbmdsZSB0aHJlYWQNCj4g cGVyaW9kaWNhbGx5IGNoZWNrcyB0aGUgbGluayBzdGF0dXNlcyIsIHJpZ2h0Pw0KPiANCj4gSW4g Y3VycmVudCBpbXBsZW1lbnRhdGlvbiBpdCB3aWxsIHRha2UgYXQgbGVhc3QgNSBzZWNvbmRzICg0 ICsgMSkgZm9yIHRoZQ0KPiBpbnRlcnJ1cHQgaGFuZGxlciB0byBkZXRlY3QgRE9XTiBsaW5rIHN0 YXRlIGZvciBpeGdiZSBtdWx0aXNwZWVkIGZpYmVyLiBUaGlzDQo+IGlzIHRvbyBtdWNoIGZvciBt YW55IHJlYWwgd29ybGQgY2FzZXMuDQoNCkkgaGF2ZSByZXZpZXdlZCAgdGhpcyBwYXRjaCwgbm93 IEkgYWdyZWUgd2l0aCB5b3Ugb2YgdGhlIHBvaW50IHRoYXQgd2hlbiBwb3J0IGlzIGRvd24sICIg bWFpbiB0aHJlYWQNCnBlcmlvZGljYWxseSB1cGRhdGVzIHRoZSBsaW5rIHN0YXR1c2VzIGFuZCBo YW5ncyBmb3IgYSByZWFsbHkgbG9uZyB0aW1lIGJ1c3kgd2FpdGluZyBvbiBpeGdiZV9zZXR1cF9s aW5rKCkgZm9yIGEgRE9XTiBmaWJlciBwb3J0cyAiLg0KVGhpcyBpcyBpbnRyb2R1Y2VkIGJ5IGEg cGF0Y2ggaW4gdGhlIGZvbGxvd2luZzoNClNIQS0xOiBjMTJkMjJmNjViMTMyYzU2ZGI3YjRmZGJm ZDVkZGNlMjdkMWU5NTcyDQoqIG5ldC9peGdiZTogZW5zdXJlIGxpbmsgc3RhdHVzIGlzIHVwZGF0 ZWQNCg0KQmVjYXVzZSBpbiB0aGlzIHBhdGNoLCBpeGdiZV9zZXR1cF9saW5rKCkgaXMgY2FsbGVk IHdpdGggaW5wdXQgcGFyYW1ldGVyIGF1dG9uZWdfd2FpdF90b19jb21wbGV0ZT0xLCB0aGlzIHdp bGwgY2F1c2UgbG9vcCBjaGVjayBhbmQgc2xlZXAgZGVsYXkuDQpBdCBsZWFzdCA4MjU5OSBzZWVt cyBoYXMgdGhpcyBkZWxheS4oQlRXLCB3aGl2aCB0eXBlIG9mIE5JQyBhcmUgeW91IHVzZT8gWDU1 MCBvciA4MjU5OSkNCllvdXIgc29sdXRpb24gaXMgYWRkIGEgZWFsX2FsYXJtX3NldCBmb3IgaXhn YmVfc2V0dXBfbGluayBpbiB0aGUgdGhyZWFkIG9mIFBNRCBkcml2ZXIsIGFuZCBkbyB0aGUgc2V0 IHVwIHdvcmsgaW4gdGhhdCB0aHJlYWQsIGlzIHRoYXQgcmlnaHQ/DQpBbmQgbWFpbiB0aHJlYWQg YXZvaWQgaGFuZyBieSB0aGUgZmxhZyBvZiBJWEdCRV9GTEFHX05FRURfTElOS19DT05GSUcuDQpJ IHRoaW5rIHRoaXMgaXMgYSBnb29kIGlkZWEgZm9yIHRoaXMgcHJvYmxlbSwgYnV0IGl0IG1heSBj YXVzZSBwcm9ibGVtIGZvciBvdGhlciBsZWdhY3kgdXNlciBvZiBpeGdiZSBwbWQsIGJlY2F1c2Ug dGhlaXIgbGVnYWN5IGNvZGUsIA0Kd2hpY2ggdXNlIG1haW4gdGhyZWFkICB0byBjaGVjayBsaW5r IHN0YXRlIGFuZCBzZXR1cF9saW5rIHdoZW4gcG9ydCBpcyBkb3duLCBhbmQgdGhleSBhcmUgbm90 IGF3YXJlIG9mIGl0IGlzIGRvbmUgYnkgb3RoZXIgdGhyZWFkIGlmIGFkZCB5b3VyIHBhdGNoLg0K DQpBbmQgaXMgdGhhdCBvayBpZiB3ZSBjaGFuZ2UgY29kZSBpbiBpeGdiZV9kZXZfbGlua191cGRh dGVfc2hhcmUoKSB0bw0KDQppeGdiZV9kZXZfbGlua191cGRhdGVfc2hhcmUoKQ0Kew0KDQoJLyog Y2hlY2sgaWYgaXQgbmVlZHMgdG8gd2FpdCB0byBjb21wbGV0ZSwgaWYgbHNjIGludGVycnVwdCBp cyBlbmFibGVkICovDQoJaWYgKHdhaXRfdG9fY29tcGxldGUgPT0gMCB8fCBkZXYtPmRhdGEtPmRl dl9jb25mLmludHJfY29uZi5sc2MgIT0gMCkNCgkJd2FpdCA9IDA7DQoNCglpZiAoKGludHItPmZs YWdzICYgSVhHQkVfRkxBR19ORUVEX0xJTktfQ09ORklHKSAmJg0KCQlpeGdiZV9nZXRfbWVkaWFf dHlwZShodykgPT0gaXhnYmVfbWVkaWFfdHlwZV9maWJlcikgew0KCQlzcGVlZCA9IGh3LT5waHku YXV0b25lZ19hZHZlcnRpc2VkOw0KCQlpZiAoIXNwZWVkKQ0KCQkJaXhnYmVfZ2V0X2xpbmtfY2Fw YWJpbGl0aWVzKGh3LCAmc3BlZWQsICZhdXRvbmVnKTsNCgkJaXhnYmVfc2V0dXBfbGluayhodywg c3BlZWQsIHdhaXQpOw0KCX0NCn0NCg0KVGhlbiwgeW91ciBhcHBsaWNhdGlvbiBjYW4gY2FsbCBy dGVfZXRoX2xpbmtfZ2V0X25vd2FpdCAoKSB0byBtYWtlIHdhaXRfdG9fY29tcGxldGU9MCB3aGVu IGRvaW5nIHBlcmlvZGljIGxpbmsgc3RhdGUgY2hlY2ssDQpXaGljaCB3aWxsIG5vdCBjYXVzZSAg bG9vcCBjaGVjayBhbmQgc2xlZXAgZGVsYXkuIExlZ2FjeSBjb2RlIG9mIG90aGVyIHVzZXIgY2Fs bCBydGVfZXRoX2xpbmtfZ2V0KCkgIHdpbGwgbm90IGJlIGFmZmVjdGVkIGFsc28uDQpCdXQsIEkg YW0gTk9UIGNvbmZpZGVudCAsd2hldGhlciB0aGlzIHdpbGwgaW50cm9kdWNlIG5ldyBwcm9ibGVt IHdoZW4gc2V0IHVwIGxpbmsgd2l0aG91dCB3YWl0IQ0KU28sIHRoaXMgaXMganVzdCBhIGRpc2N1 c3Npb24gdG9waWMuDQoNCkhpLCBsYXVyZW50LmhhcmR5IA0KIFlvdSBhcmUgdGhlIGF1dGhvciBm b3IgdGhlIHBhdGNoICgqIG5ldC9peGdiZTogZW5zdXJlIGxpbmsgc3RhdHVzIGlzIHVwZGF0ZWQp LCB3aHkgZG8geW91IGltcGxlbWVudCBjb2RlIHRoYXQgd2F5Pw0KSXMgdGhhdCBtdXN0IHRoYXQg IHNldCB1cCBsaW5rIHdpdGggd2FpdD8gDQoNCml4Z2JlX3NldHVwX2xpbmsoaHcsIHNwZWVkLCB0 cnVlKTsNCg0KDQoNCj4gDQo+ID4NCj4gPj4NCj4gPj4+DQo+ID4+PiBSZWdhcmRzDQo+ID4+PiBR aQ0KPiA+Pj4NCj4gPj4+Pg0KPiA+Pj4+IEZpeGVzOiBjMTJkMjJmNjViMTMgKCJuZXQvaXhnYmU6 IGVuc3VyZSBsaW5rIHN0YXR1cyBpcyB1cGRhdGVkIikNCj4gPj4+PiBDQzogc3RhYmxlQGRwZGsu b3JnDQo+ID4+Pj4NCj4gPj4+PiBTaWduZWQtb2ZmLWJ5OiBJbHlhIE1heGltZXRzIDxpLm1heGlt ZXRzQHNhbXN1bmcuY29tPg0KPiA+Pj4+IC0tLQ0KPiA+Pj4+ICBkcml2ZXJzL25ldC9peGdiZS9p eGdiZV9ldGhkZXYuYyB8IDQzDQo+ID4+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t LS0NCj4gPj4+PiAgMSBmaWxlIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyksIDExIGRlbGV0aW9u cygtKQ0KPiA+Pj4+DQo+ID4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2Jl X2V0aGRldi5jDQo+ID4+Pj4gYi9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYw0KPiA+ Pj4+IGluZGV4IDI2YjE5MjczNy4uYTMzYjlhNmU4IDEwMDY0NA0KPiA+Pj4+IC0tLSBhL2RyaXZl cnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5jDQo+ID4+Pj4gKysrIGIvZHJpdmVycy9uZXQvaXhn YmUvaXhnYmVfZXRoZGV2LmMNCj4gPj4+PiBAQCAtMjIxLDYgKzIyMSw4IEBAIHN0YXRpYyBpbnQg aXhnYmVfZGV2X2ludGVycnVwdF9hY3Rpb24oc3RydWN0DQo+ID4+Pj4gcnRlX2V0aF9kZXYgKmRl diwNCj4gPj4+PiAgCQkJCSAgICAgIHN0cnVjdCBydGVfaW50cl9oYW5kbGUgKmhhbmRsZSk7ICBz dGF0aWMNCj4gdm9pZA0KPiA+Pj4+IGl4Z2JlX2Rldl9pbnRlcnJ1cHRfaGFuZGxlcih2b2lkICpw YXJhbSk7ICBzdGF0aWMgdm9pZA0KPiA+Pj4+IGl4Z2JlX2Rldl9pbnRlcnJ1cHRfZGVsYXllZF9o YW5kbGVyKHZvaWQgKnBhcmFtKTsNCj4gPj4+PiArc3RhdGljIHZvaWQgaXhnYmVfZGV2X3NldHVw X2xpbmtfYWxhcm1faGFuZGxlcih2b2lkICpwYXJhbSk7DQo+ID4+Pj4gKw0KPiA+Pj4+ICBzdGF0 aWMgaW50IGl4Z2JlX2FkZF9yYXIoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHN0cnVjdA0KPiA+ Pj4+IGV0aGVyX2FkZHIgKm1hY19hZGRyLA0KPiA+Pj4+ICAJCQkgdWludDMyX3QgaW5kZXgsIHVp bnQzMl90IHBvb2wpOyAgc3RhdGljIHZvaWQNCj4gPj4+PiBpeGdiZV9yZW1vdmVfcmFyKHN0cnVj dCBydGVfZXRoX2RldiAqZGV2LCB1aW50MzJfdCBpbmRleCk7IEBADQo+ID4+Pj4gLTI3OTEsNiAr Mjc5Myw4IEBAIGl4Z2JlX2Rldl9zdG9wKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQ0KPiA+Pj4+ DQo+ID4+Pj4gIAlQTURfSU5JVF9GVU5DX1RSQUNFKCk7DQo+ID4+Pj4NCj4gPj4+PiArCXJ0ZV9l YWxfYWxhcm1fY2FuY2VsKGl4Z2JlX2Rldl9zZXR1cF9saW5rX2FsYXJtX2hhbmRsZXIsIGRldik7 DQo+ID4+Pj4gKw0KPiA+Pj4+ICAJLyogZGlzYWJsZSBpbnRlcnJ1cHRzICovDQo+ID4+Pj4gIAlp eGdiZV9kaXNhYmxlX2ludHIoaHcpOw0KPiA+Pj4+DQo+ID4+Pj4gQEAgLTM5NjksNiArMzk3Mywy NSBAQCBpeGdiZXZmX2NoZWNrX2xpbmsoc3RydWN0IGl4Z2JlX2h3ICpodywNCj4gPj4+PiBpeGdi ZV9saW5rX3NwZWVkICpzcGVlZCwNCj4gPj4+PiAgCXJldHVybiByZXRfdmFsOw0KPiA+Pj4+ICB9 DQo+ID4+Pj4NCj4gPj4+PiArc3RhdGljIHZvaWQNCj4gPj4+PiAraXhnYmVfZGV2X3NldHVwX2xp bmtfYWxhcm1faGFuZGxlcih2b2lkICpwYXJhbSkgew0KPiA+Pj4+ICsJc3RydWN0IHJ0ZV9ldGhf ZGV2ICpkZXYgPSAoc3RydWN0IHJ0ZV9ldGhfZGV2ICopcGFyYW07DQo+ID4+Pj4gKwlzdHJ1Y3Qg aXhnYmVfaHcgKmh3ID0NCj4gPj4+PiBJWEdCRV9ERVZfUFJJVkFURV9UT19IVyhkZXYtPmRhdGEt PmRldl9wcml2YXRlKTsNCj4gPj4+PiArCXN0cnVjdCBpeGdiZV9pbnRlcnJ1cHQgKmludHIgPQ0K PiA+Pj4+ICsJCUlYR0JFX0RFVl9QUklWQVRFX1RPX0lOVFIoZGV2LT5kYXRhLT5kZXZfcHJpdmF0 ZSk7DQo+ID4+Pj4gKwl1MzIgc3BlZWQ7DQo+ID4+Pj4gKwlib29sIGF1dG9uZWcgPSBmYWxzZTsN Cj4gPj4+PiArDQo+ID4+Pj4gKwlzcGVlZCA9IGh3LT5waHkuYXV0b25lZ19hZHZlcnRpc2VkOw0K PiA+Pj4+ICsJaWYgKCFzcGVlZCkNCj4gPj4+PiArCQlpeGdiZV9nZXRfbGlua19jYXBhYmlsaXRp ZXMoaHcsICZzcGVlZCwgJmF1dG9uZWcpOw0KPiA+Pj4+ICsNCj4gPj4+PiArCWl4Z2JlX3NldHVw X2xpbmsoaHcsIHNwZWVkLCB0cnVlKTsNCj4gPj4+PiArDQo+ID4+Pj4gKwlpbnRyLT5mbGFncyAm PSB+SVhHQkVfRkxBR19ORUVEX0xJTktfQ09ORklHOyB9DQo+ID4+Pj4gKw0KPiA+Pj4+ICAvKiBy ZXR1cm4gMCBtZWFucyBsaW5rIHN0YXR1cyBjaGFuZ2VkLCAtMSBtZWFucyBub3QgY2hhbmdlZCAq Lw0KPiA+Pj4+IGludCBpeGdiZV9kZXZfbGlua191cGRhdGVfc2hhcmUoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpkZXYsIEBAIC0NCj4gMzk4MSw5DQo+ID4+Pj4gKzQwMDQsNyBAQCBpeGdiZV9kZXZfbGlu a191cGRhdGVfc2hhcmUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4+Pj4gIAkJSVhHQkVf REVWX1BSSVZBVEVfVE9fSU5UUihkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsNCj4gPj4+PiAgCWlu dCBsaW5rX3VwOw0KPiA+Pj4+ICAJaW50IGRpYWc7DQo+ID4+Pj4gLQl1MzIgc3BlZWQgPSAwOw0K PiA+Pj4+ICAJaW50IHdhaXQgPSAxOw0KPiA+Pj4+IC0JYm9vbCBhdXRvbmVnID0gZmFsc2U7DQo+ ID4+Pj4NCj4gPj4+PiAgCW1lbXNldCgmbGluaywgMCwgc2l6ZW9mKGxpbmspKTsNCj4gPj4+PiAg CWxpbmsubGlua19zdGF0dXMgPSBFVEhfTElOS19ET1dOOyBAQCAtMzk5MywxMyArNDAxNCw4IEBA DQo+ID4+Pj4gaXhnYmVfZGV2X2xpbmtfdXBkYXRlX3NoYXJlKHN0cnVjdA0KPiA+PiBydGVfZXRo X2Rldg0KPiA+Pj4+ICpkZXYsDQo+ID4+Pj4NCj4gPj4+PiAgCWh3LT5tYWMuZ2V0X2xpbmtfc3Rh dHVzID0gdHJ1ZTsNCj4gPj4+Pg0KPiA+Pj4+IC0JaWYgKChpbnRyLT5mbGFncyAmIElYR0JFX0ZM QUdfTkVFRF9MSU5LX0NPTkZJRykgJiYNCj4gPj4+PiAtCQlpeGdiZV9nZXRfbWVkaWFfdHlwZSho dykgPT0gaXhnYmVfbWVkaWFfdHlwZV9maWJlcikgew0KPiA+Pj4+IC0JCXNwZWVkID0gaHctPnBo eS5hdXRvbmVnX2FkdmVydGlzZWQ7DQo+ID4+Pj4gLQkJaWYgKCFzcGVlZCkNCj4gPj4+PiAtCQkJ aXhnYmVfZ2V0X2xpbmtfY2FwYWJpbGl0aWVzKGh3LCAmc3BlZWQsICZhdXRvbmVnKTsNCj4gPj4+ PiAtCQlpeGdiZV9zZXR1cF9saW5rKGh3LCBzcGVlZCwgdHJ1ZSk7DQo+ID4+Pj4gLQl9DQo+ID4+ Pj4gKwlpZiAoaW50ci0+ZmxhZ3MgJiBJWEdCRV9GTEFHX05FRURfTElOS19DT05GSUcpDQo+ID4+ Pj4gKwkJcmV0dXJuIHJ0ZV9ldGhfbGlua3N0YXR1c19zZXQoZGV2LCAmbGluayk7DQo+ID4+Pj4N Cj4gPj4+PiAgCS8qIGNoZWNrIGlmIGl0IG5lZWRzIHRvIHdhaXQgdG8gY29tcGxldGUsIGlmIGxz YyBpbnRlcnJ1cHQgaXMgZW5hYmxlZCAqLw0KPiA+Pj4+ICAJaWYgKHdhaXRfdG9fY29tcGxldGUg PT0gMCB8fCBkZXYtPmRhdGEtPmRldl9jb25mLmludHJfY29uZi5sc2MgIT0NCj4gPj4+PiAwKSBA QA0KPiA+Pj4+IC00MDE3LDExICs0MDMzLDE0IEBAIGl4Z2JlX2Rldl9saW5rX3VwZGF0ZV9zaGFy ZShzdHJ1Y3QNCj4gcnRlX2V0aF9kZXYNCj4gPj4gKmRldiwNCj4gPj4+PiAgCX0NCj4gPj4+Pg0K PiA+Pj4+ICAJaWYgKGxpbmtfdXAgPT0gMCkgew0KPiA+Pj4+IC0JCWludHItPmZsYWdzIHw9IElY R0JFX0ZMQUdfTkVFRF9MSU5LX0NPTkZJRzsNCj4gPj4+PiArCQlpZiAoaXhnYmVfZ2V0X21lZGlh X3R5cGUoaHcpID09IGl4Z2JlX21lZGlhX3R5cGVfZmliZXIpDQo+IHsNCj4gPj4+PiArCQkJaW50 ci0+ZmxhZ3MgfD0gSVhHQkVfRkxBR19ORUVEX0xJTktfQ09ORklHOw0KPiA+Pj4+ICsJCQlydGVf ZWFsX2FsYXJtX3NldCgxMCwNCj4gPj4+PiArCQkJCWl4Z2JlX2Rldl9zZXR1cF9saW5rX2FsYXJt X2hhbmRsZXIsIGRldik7DQo+ID4+Pj4gKwkJfQ0KPiA+Pj4+ICAJCXJldHVybiBydGVfZXRoX2xp bmtzdGF0dXNfc2V0KGRldiwgJmxpbmspOw0KPiA+Pj4+ICAJfQ0KPiA+Pj4+DQo+ID4+Pj4gLQlp bnRyLT5mbGFncyAmPSB+SVhHQkVfRkxBR19ORUVEX0xJTktfQ09ORklHOw0KPiA+Pj4+ICAJbGlu ay5saW5rX3N0YXR1cyA9IEVUSF9MSU5LX1VQOw0KPiA+Pj4+ICAJbGluay5saW5rX2R1cGxleCA9 IEVUSF9MSU5LX0ZVTExfRFVQTEVYOw0KPiA+Pj4+DQo+ID4+Pj4gQEAgLTUxMjgsNiArNTE0Nyw4 IEBAIGl4Z2JldmZfZGV2X3N0b3Aoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQo+ID4+Pj4NCj4g Pj4+PiAgCVBNRF9JTklUX0ZVTkNfVFJBQ0UoKTsNCj4gPj4+Pg0KPiA+Pj4+ICsJcnRlX2VhbF9h bGFybV9jYW5jZWwoaXhnYmVfZGV2X3NldHVwX2xpbmtfYWxhcm1faGFuZGxlciwgZGV2KTsNCj4g Pj4+PiArDQo+ID4+Pj4gIAlpeGdiZXZmX2ludHJfZGlzYWJsZShkZXYpOw0KPiA+Pj4+DQo+ID4+ Pj4gIAlody0+YWRhcHRlcl9zdG9wcGVkID0gMTsNCj4gPj4+PiAtLQ0KPiA+Pj4+IDIuMTcuMQ0K PiA+Pj4NCg==