From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id 6BD5D1B147; Fri, 12 Oct 2018 09:37:16 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Oct 2018 00:37:15 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,371,1534834800"; d="scan'208";a="99627289" Received: from kmsmsx154.gar.corp.intel.com ([172.21.73.14]) by orsmga002.jf.intel.com with ESMTP; 12 Oct 2018 00:37:13 -0700 Received: from pgsmsx103.gar.corp.intel.com ([169.254.2.13]) by KMSMSX154.gar.corp.intel.com ([169.254.12.13]) with mapi id 14.03.0319.002; Fri, 12 Oct 2018 15:36:39 +0800 From: "Zhao1, Wei" To: Laurent Hardy , Ilya Maximets , "Zhang, Qi Z" CC: "Lu, Wenzhuo" , "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+P8P//y6IAgAAgEQCAAcfk0A== Date: Fri, 12 Oct 2018 07:36:37 +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> <20181011102428eucas1p2fe26b12282d2b456ddc2cb96ad7552f0~cht-bhDPv2507925079eucas1p2L@eucas1p2.samsung.com> <879a4ff6-b9a3-c8d8-9550-e252a053800a@6wind.com> In-Reply-To: <879a4ff6-b9a3-c8d8-9550-e252a053800a@6wind.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.206] 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: Fri, 12 Oct 2018 07:37:17 -0000 SGksICBMYXVyZW50IEhhcmR5DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJv bTogTGF1cmVudCBIYXJkeSBbbWFpbHRvOmxhdXJlbnQuaGFyZHlANndpbmQuY29tXQ0KPiBTZW50 OiBUaHVyc2RheSwgT2N0b2JlciAxMSwgMjAxOCA4OjIyIFBNDQo+IFRvOiBJbHlhIE1heGltZXRz IDxpLm1heGltZXRzQHNhbXN1bmcuY29tPjsgWmhhbzEsIFdlaQ0KPiA8d2VpLnpoYW8xQGludGVs LmNvbT47IFpoYW5nLCBRaSBaIDxxaS56LnpoYW5nQGludGVsLmNvbT4NCj4gQ2M6IEx1LCBXZW56 aHVvIDx3ZW56aHVvLmx1QGludGVsLmNvbT47IEFuYW55ZXYsIEtvbnN0YW50aW4NCj4gPGtvbnN0 YW50aW4uYW5hbnlldkBpbnRlbC5jb20+OyBzdGFibGVAZHBkay5vcmc7IGRldkBkcGRrLm9yZw0K PiBTdWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUEFUQ0hdIG5ldC9peGdiZTogZml4IGJ1c3kgcG9s bGluZyB3aGlsZSBmaWJlciBsaW5rDQo+IHVwZGF0ZQ0KPiANCj4gSGkgV2VpLA0KPiANCj4gUGxl YXNlIHNlZSBjb21tZW50cyBiZWxvdy4NCj4gDQo+IA0KPiBPbiAxMC8xMS8yMDE4IDEyOjI2IFBN LCBJbHlhIE1heGltZXRzIHdyb3RlOg0KPiA+IE9uIDExLjEwLjIwMTggMTI6NTYsIFpoYW8xLCBX ZWkgd3JvdGU6DQo+ID4+IEhpLCAgSWx5YSBNYXhpbWV0cyBBTkQgbGF1cmVudC5oYXJkeQ0KPiA+ IEhpLCB0aGFua3MgZm9yIHNoYXJpbmcgeW91ciB0aG91Z2h0cy4NCj4gPiBDb21tZW50cyBpbmxp bmUuDQo+ID4NCj4gPj4NCj4gPj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+PiBG cm9tOiBkZXYgW21haWx0bzpkZXYtYm91bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxmIE9mIElseWEg TWF4aW1ldHMNCj4gPj4+IFNlbnQ6IFdlZG5lc2RheSwgU2VwdGVtYmVyIDEyLCAyMDE4IDQ6MDUg UE0NCj4gPj4+IFRvOiBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5jb20+OyBkZXZAZHBk ay5vcmcNCj4gPj4+IENjOiBMdSwgV2Vuemh1byA8d2Vuemh1by5sdUBpbnRlbC5jb20+OyBBbmFu eWV2LCBLb25zdGFudGluDQo+ID4+PiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT47IExh dXJlbnQgSGFyZHkNCj4gPj4+IDxsYXVyZW50LmhhcmR5QDZ3aW5kLmNvbT47IERhaSwgV2VpIDx3 ZWkuZGFpQGludGVsLmNvbT47DQo+ID4+PiBzdGFibGVAZHBkay5vcmcNCj4gPj4+IFN1YmplY3Q6 IFJlOiBbZHBkay1kZXZdIFtQQVRDSF0gbmV0L2l4Z2JlOiBmaXggYnVzeSBwb2xsaW5nIHdoaWxl DQo+ID4+PiBmaWJlciBsaW5rIHVwZGF0ZQ0KPiA+Pj4NCj4gPj4+IE9uIDEyLjA5LjIwMTggMDk6 NDksIFpoYW5nLCBRaSBaIHdyb3RlOg0KPiA+Pj4+DQo+ID4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVz c2FnZS0tLS0tDQo+ID4+Pj4+IEZyb206IElseWEgTWF4aW1ldHMgW21haWx0bzppLm1heGltZXRz QHNhbXN1bmcuY29tXQ0KPiA+Pj4+PiBTZW50OiBNb25kYXksIFNlcHRlbWJlciAxMCwgMjAxOCAx MTowOSBQTQ0KPiA+Pj4+PiBUbzogWmhhbmcsIFFpIFogPHFpLnouemhhbmdAaW50ZWwuY29tPjsg ZGV2QGRwZGsub3JnDQo+ID4+Pj4+IENjOiBMdSwgV2Vuemh1byA8d2Vuemh1by5sdUBpbnRlbC5j b20+OyBBbmFueWV2LCBLb25zdGFudGluDQo+ID4+Pj4+IDxrb25zdGFudGluLmFuYW55ZXZAaW50 ZWwuY29tPjsgTGF1cmVudCBIYXJkeQ0KPiA+Pj4+PiA8bGF1cmVudC5oYXJkeUA2d2luZC5jb20+ OyBEYWksIFdlaSA8d2VpLmRhaUBpbnRlbC5jb20+Ow0KPiA+Pj4+PiBzdGFibGVAZHBkay5vcmcN Cj4gPj4+Pj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIXSBuZXQvaXhnYmU6IGZpeCBi dXN5IHBvbGxpbmcgd2hpbGUNCj4gPj4+Pj4gZmliZXIgbGluayB1cGRhdGUNCj4gPj4+Pj4NCj4g Pj4+Pj4gT24gMDQuMDkuMjAxOCAwOTowOCwgWmhhbmcsIFFpIFogd3JvdGU6DQo+ID4+Pj4+PiBI aSBJbHlhOg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiA+Pj4+Pj4+IEZyb206IGRldiBbbWFpbHRvOmRldi1ib3VuY2VzQGRwZGsub3JnXSBPbiBCZWhh bGYgT2YgSWx5YQ0KPiA+Pj4+Pj4+IE1heGltZXRzDQo+ID4+Pj4+Pj4gU2VudDogRnJpZGF5LCBB dWd1c3QgMzEsIDIwMTggODo0MCBQTQ0KPiA+Pj4+Pj4+IFRvOiBkZXZAZHBkay5vcmcNCj4gPj4+ Pj4+PiBDYzogTHUsIFdlbnpodW8gPHdlbnpodW8ubHVAaW50ZWwuY29tPjsgQW5hbnlldiwgS29u c3RhbnRpbg0KPiA+Pj4+Pj4+IDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPjsgTGF1cmVu dCBIYXJkeQ0KPiA+Pj4+Pj4+IDxsYXVyZW50LmhhcmR5QDZ3aW5kLmNvbT47IERhaSwgV2VpIDx3 ZWkuZGFpQGludGVsLmNvbT47IElseWENCj4gPj4+Pj4+PiBNYXhpbWV0cyA8aS5tYXhpbWV0c0Bz YW1zdW5nLmNvbT47IHN0YWJsZUBkcGRrLm9yZw0KPiA+Pj4+Pj4+IFN1YmplY3Q6IFtkcGRrLWRl dl0gW1BBVENIXSBuZXQvaXhnYmU6IGZpeCBidXN5IHBvbGxpbmcgd2hpbGUNCj4gPj4+Pj4+PiBm aWJlciBsaW5rIHVwZGF0ZQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gSWYgdGhlIG11bHRpc3BlZWQg ZmliZXIgbGluayBpcyBpbiBET1dOIHN0YXRlLCBpeGdiZV9zZXR1cF9saW5rDQo+ID4+Pj4+Pj4g Y291bGQgdGFrZSBhcm91bmQgYSBzZWNvbmQgb2YgYnVzeSBwb2xsaW5nLiBUaGlzIGlzIGhpZ2hs eQ0KPiA+Pj4+Pj4+IGluY29udmVuaWVudCBmb3IgdGhlIGNhc2Ugd2hlcmUgc2luZ2xlIHRocmVh ZCBwZXJpb2RpY2FsbHkNCj4gPj4+Pj4+PiBjaGVja3MgdGhlDQo+ID4+PiBsaW5rIHN0YXR1c2Vz Lg0KPiA+Pj4+Pj4+IEZvciBleGFtcGxlLCBPVlMgbWFpbiB0aHJlYWQgcGVyaW9kaWNhbGx5IHVw ZGF0ZXMgdGhlIGxpbmsNCj4gPj4+Pj4+PiBzdGF0dXNlcyBhbmQgaGFuZ3MgZm9yIGEgcmVhbGx5 IGxvbmcgdGltZSBidXN5IHdhaXRpbmcgb24NCj4gPj4+Pj4+PiBpeGdiZV9zZXR1cF9saW5rKCkg Zm9yIGEgRE9XTiBmaWJlciBwb3J0cy4gRm9yIGNhc2Ugd2l0aCAzIGRvd24NCj4gPj4+Pj4+PiBw b3J0cyBpdCBoYW5ncyBmb3IgYSAzIHNlY29uZHMgYW5kIHVuYWJsZSB0byBkbyBhbnl0aGluZyBp bmNsdWRpbmcNCj4gcGFja2V0IHByb2Nlc3NpbmcuDQo+ID4+Pj4+Pj4gRml4IHRoYXQgYnkgc2hp ZnRpbmcgdGhhdCB3b3JrYXJvdW5kIHRvIGEgc2VwYXJhdGUgdGhyZWFkIGJ5DQo+ID4+Pj4+Pj4g YWxhcm0gaGFuZGxlciB0aGF0IHdpbGwgdHJ5IHRvIHNldCB1cCBsaW5rIGlmIGl0IGlzIERPV04u DQo+ID4+Pj4+PiBEb2VzIHRoYXQgbWVhbiB3ZSB3aWxsIGJsb2NrIHRoZSBpbnRlcnJ1cHQgdGhy ZWFkIGZvciAzIHNlY29uZHM/DQo+ID4+Pj4+IFRocmVlIHRpbWVzIGZvciBvbmUgc2Vjb25kLiBP dGhlciB3b3JrIGNvdWxkIGJlIHNjaGVkdWxlZCBiZXR3ZWVuLg0KPiA+Pj4+PiBJTUhPLCBpdCdz IG11Y2ggYmV0dGVyIHRoYW4gYmxvY2tpbmcgdXN1YWwgY2FsbGVyIGZvciAzIHNlY29uZHMuDQo+ ID4+Pj4+DQo+ID4+Pj4+PiBBbHNvLCBjYW4gd2UgZ3VhcmFudGVlIHRoZXJlIHdpbGwgbm90IGJl IGFueSByYWNlIGNvbmRpdGlvbiBpZiB3ZQ0KPiA+Pj4+Pj4gY2FsbA0KPiA+Pj4+PiBpeGdiZV9z ZXR1cF9saW5rIGF0IGFub3RoZXIgdGhyZWFkLCB0aGUgYmFzZSBjb2RlIEFQSSBpcyBub3QNCj4g Pj4+Pj4gYXNzdW1lZCB0byBiZSB0aHJlYWQtc2FmZSBhcyBJIGtub3cuDQo+ID4+Pj4+DQo+ID4+ Pj4+IFRoZSBvbmx5IHVzZXIgb2YgJ2l4Z2JlX3NldHVwX2xpbmsnIGlzICdpeGdiZV9kZXZfc3Rh cnQnLCBidXQgaXQNCj4gPj4+Pj4gY291bGQgYmUgY2FsbGVkIG9ubHkgaWYgZGV2aWNlIHN0b3Bw ZWQuICdpeGdiZV9kZXZfc3RvcCcgY2FuY2VscyB0aGUNCj4gYWxhcm0uDQo+ID4+Pj4+IFJhY2Ug d2l0aCAnbGlua191cGRhdGUnIGF2b2lkZWQgYnkNCj4gJ0lYR0JFX0ZMQUdfTkVFRF9MSU5LX0NP TkZJRycNCj4gPj4+IGZsYWcuDQo+ID4+Pj4gSSBndWVzcywgaXQnIG5vdCBvbmx5IGFib3V0IHdo ZW4gaXhnYl9zZXR1cF9saW5rIHJhY2Ugd2l0aCBpdHNlbGYsDQo+ID4+Pj4gYnV0IGFsc28NCj4g Pj4+IHdoZW4gaXQgcmFjZSB3aXRoIG90aGVyIEFQSXMuDQo+ID4+Pj4gQWxzbyB0aGUgY29uY2Vy biBpcywgZXZlbiBpbiBjdXJyZW50IHZlcnNpb24sIHdlIGNhbiBwcm92ZSB0aGVyZSBpcw0KPiA+ Pj4+IG5vIGlzc3VlLA0KPiA+Pj4gaG93IGNhbiB3ZSBndWFyYW50ZWUgd2UgYXJlIHNhZmUgZm9y IGZ1dHVyZSBiYXNlIGNvZGUgdXBkYXRlPyBJdCdzDQo+ID4+PiBub3QgZGVzaWduZWQgYXMgdGhy ZWFkLXNhZmUuDQo+ID4+Pj4gRm9yIG15IG9wdGlvbiwgdGhlIGNoYW5nZSBpcyByaXNreS4NCj4g Pj4+IEluIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gaW50ZXJydXB0IGhhbmRsZXIgYWxyZWFkeSBj YWxscyB0aGUNCj4gPj4+ICdpeGdiZV9kZXZfbGlua191cGRhdGUnIHdoaWNoIHN1YnNlcXVlbnRs eSBjYWxscyAnaXhnYmVfc2V0dXBfbGluaycNCj4gPj4+IGluIG91ciBjYXNlIGlmIExTQyBpbnRl cnJ1cHRzIGVuYWJsZWQuIFNvLCBteSBjaGFuZ2UgbWFrZXMgdGhlDQo+ID4+PiBkcml2ZXIgZXZl biBzYWZlciBieSBtb3ZpbmcgJ2l4Z2JlX3NldHVwX2xpbmsnIHRvIHRoZSBzYW1lIGludGVycnVw dA0KPiB0aHJlYWQuDQo+ID4+PiBPdGhlcndpc2UgdHdvIHRocmVhZHMgKGludGVycnVwdHMgaGFu ZGxlciBhbmQgdGhlIGxpbmsgc3RhdHVzDQo+ID4+PiBjaGVja2luZw0KPiA+Pj4gdGhyZWFkKSBj b3VsZCBjYWxsICdpeGdiZV9zZXR1cF9saW5rJyBzaW11bHRhbmVvdXNseS4NCj4gPj4+DQo+ID4+ Pj4gQnR3LCBzaW5jZSBpeGdiZSBzdXBwb3J0IExTQywgaXQgaXMgbm90IG5lY2Vzc2FyeSBmb3Ig InNpbmdsZQ0KPiA+Pj4+IHRocmVhZA0KPiA+Pj4gcGVyaW9kaWNhbGx5IGNoZWNrcyB0aGUgbGlu ayBzdGF0dXNlcyIsIHJpZ2h0Pw0KPiA+Pj4NCj4gPj4+IEluIGN1cnJlbnQgaW1wbGVtZW50YXRp b24gaXQgd2lsbCB0YWtlIGF0IGxlYXN0IDUgc2Vjb25kcyAoNCArIDEpDQo+ID4+PiBmb3IgdGhl IGludGVycnVwdCBoYW5kbGVyIHRvIGRldGVjdCBET1dOIGxpbmsgc3RhdGUgZm9yIGl4Z2JlDQo+ ID4+PiBtdWx0aXNwZWVkIGZpYmVyLiBUaGlzIGlzIHRvbyBtdWNoIGZvciBtYW55IHJlYWwgd29y bGQgY2FzZXMuDQo+ID4+IEkgaGF2ZSByZXZpZXdlZCAgdGhpcyBwYXRjaCwgbm93IEkgYWdyZWUg d2l0aCB5b3Ugb2YgdGhlIHBvaW50IHRoYXQNCj4gPj4gd2hlbiBwb3J0IGlzIGRvd24sICIgbWFp biB0aHJlYWQgcGVyaW9kaWNhbGx5IHVwZGF0ZXMgdGhlIGxpbmsgc3RhdHVzZXMNCj4gYW5kIGhh bmdzIGZvciBhIHJlYWxseSBsb25nIHRpbWUgYnVzeSB3YWl0aW5nIG9uIGl4Z2JlX3NldHVwX2xp bmsoKSBmb3IgYQ0KPiBET1dOIGZpYmVyIHBvcnRzICIuDQo+ID4+IFRoaXMgaXMgaW50cm9kdWNl ZCBieSBhIHBhdGNoIGluIHRoZSBmb2xsb3dpbmc6DQo+ID4+IFNIQS0xOiBjMTJkMjJmNjViMTMy YzU2ZGI3YjRmZGJmZDVkZGNlMjdkMWU5NTcyDQo+ID4+ICogbmV0L2l4Z2JlOiBlbnN1cmUgbGlu ayBzdGF0dXMgaXMgdXBkYXRlZA0KPiA+Pg0KPiA+PiBCZWNhdXNlIGluIHRoaXMgcGF0Y2gsIGl4 Z2JlX3NldHVwX2xpbmsoKSBpcyBjYWxsZWQgd2l0aCBpbnB1dCBwYXJhbWV0ZXINCj4gYXV0b25l Z193YWl0X3RvX2NvbXBsZXRlPTEsIHRoaXMgd2lsbCBjYXVzZSBsb29wIGNoZWNrIGFuZCBzbGVl cCBkZWxheS4NCj4gPj4gQXQgbGVhc3QgODI1OTkgc2VlbXMgaGFzIHRoaXMgZGVsYXkuKEJUVywg d2hpdmggdHlwZSBvZiBOSUMgYXJlIHlvdQ0KPiA+PiB1c2U/IFg1NTAgb3IgODI1OTkpDQo+ID4g SSBoYXZlIDgyNTk5Lg0KPiA+DQo+ID4+IFlvdXIgc29sdXRpb24gaXMgYWRkIGEgZWFsX2FsYXJt X3NldCBmb3IgaXhnYmVfc2V0dXBfbGluayBpbiB0aGUgdGhyZWFkIG9mDQo+IFBNRCBkcml2ZXIs IGFuZCBkbyB0aGUgc2V0IHVwIHdvcmsgaW4gdGhhdCB0aHJlYWQsIGlzIHRoYXQgcmlnaHQ/DQo+ ID4+IEFuZCBtYWluIHRocmVhZCBhdm9pZCBoYW5nIGJ5IHRoZSBmbGFnIG9mDQo+IElYR0JFX0ZM QUdfTkVFRF9MSU5LX0NPTkZJRy4NCj4gPj4gSSB0aGluayB0aGlzIGlzIGEgZ29vZCBpZGVhIGZv ciB0aGlzIHByb2JsZW0sIGJ1dCBpdCBtYXkgY2F1c2UNCj4gPj4gcHJvYmxlbSBmb3Igb3RoZXIg bGVnYWN5IHVzZXIgb2YgaXhnYmUgcG1kLCBiZWNhdXNlIHRoZWlyIGxlZ2FjeSBjb2RlLA0KPiB3 aGljaCB1c2UgbWFpbiB0aHJlYWQgIHRvIGNoZWNrIGxpbmsgc3RhdGUgYW5kIHNldHVwX2xpbmsg d2hlbiBwb3J0IGlzIGRvd24sDQo+IGFuZCB0aGV5IGFyZSBub3QgYXdhcmUgb2YgaXQgaXMgZG9u ZSBieSBvdGhlciB0aHJlYWQgaWYgYWRkIHlvdXIgcGF0Y2guDQo+ID4gV2hhdCBhcmUgdGhlc2Ug YXBwbGljYXRpb25zPyBJIHNlZSBubyBwdWJsaWMgQVBJIGZvciBzZXR1cF9saW5rIGZ1bmN0aW9u Lg0KPiA+IEl0J3MgaW50ZXJuYWwgdG8gZHJpdmVyIGFuZCBzaG91bGQgbm90IGJlIHVzZWQgZXh0 ZXJuYWxseS4NCj4gPiBBbSBJIG1pc3Npbmcgc29tZXRoaW5nPw0KPiA+DQo+ID4+IEFuZCBpcyB0 aGF0IG9rIGlmIHdlIGNoYW5nZSBjb2RlIGluIGl4Z2JlX2Rldl9saW5rX3VwZGF0ZV9zaGFyZSgp IHRvDQo+ID4+DQo+ID4+IGl4Z2JlX2Rldl9saW5rX3VwZGF0ZV9zaGFyZSgpDQo+ID4+IHsNCj4g Pj4NCj4gPj4gCS8qIGNoZWNrIGlmIGl0IG5lZWRzIHRvIHdhaXQgdG8gY29tcGxldGUsIGlmIGxz YyBpbnRlcnJ1cHQgaXMgZW5hYmxlZCAqLw0KPiA+PiAJaWYgKHdhaXRfdG9fY29tcGxldGUgPT0g MCB8fCBkZXYtPmRhdGEtPmRldl9jb25mLmludHJfY29uZi5sc2MgIT0gMCkNCj4gPj4gCQl3YWl0 ID0gMDsNCj4gPj4NCj4gPj4gCWlmICgoaW50ci0+ZmxhZ3MgJiBJWEdCRV9GTEFHX05FRURfTElO S19DT05GSUcpICYmDQo+ID4+IAkJaXhnYmVfZ2V0X21lZGlhX3R5cGUoaHcpID09IGl4Z2JlX21l ZGlhX3R5cGVfZmliZXIpIHsNCj4gPj4gCQlzcGVlZCA9IGh3LT5waHkuYXV0b25lZ19hZHZlcnRp c2VkOw0KPiA+PiAJCWlmICghc3BlZWQpDQo+ID4+IAkJCWl4Z2JlX2dldF9saW5rX2NhcGFiaWxp dGllcyhodywgJnNwZWVkLCAmYXV0b25lZyk7DQo+ID4+IAkJaXhnYmVfc2V0dXBfbGluayhodywg c3BlZWQsIHdhaXQpOw0KPiA+PiAJfQ0KPiA+PiB9DQo+ID4+DQo+ID4+IFRoZW4sIHlvdXIgYXBw bGljYXRpb24gY2FuIGNhbGwgcnRlX2V0aF9saW5rX2dldF9ub3dhaXQgKCkgdG8gbWFrZQ0KPiA+ PiB3YWl0X3RvX2NvbXBsZXRlPTAgd2hlbiBkb2luZyBwZXJpb2RpYyBsaW5rIHN0YXRlIGNoZWNr LCBXaGljaCB3aWxsIG5vdA0KPiBjYXVzZSAgbG9vcCBjaGVjayBhbmQgc2xlZXAgZGVsYXkuIExl Z2FjeSBjb2RlIG9mIG90aGVyIHVzZXIgY2FsbA0KPiBydGVfZXRoX2xpbmtfZ2V0KCkgIHdpbGwg bm90IGJlIGFmZmVjdGVkIGFsc28uDQo+ID4+IEJ1dCwgSSBhbSBOT1QgY29uZmlkZW50ICx3aGV0 aGVyIHRoaXMgd2lsbCBpbnRyb2R1Y2UgbmV3IHByb2JsZW0gd2hlbg0KPiBzZXQgdXAgbGluayB3 aXRob3V0IHdhaXQhDQo+ID4+IFNvLCB0aGlzIGlzIGp1c3QgYSBkaXNjdXNzaW9uIHRvcGljLg0K PiA+IFVuZm9ydHVuYXRlbHkgdGhpcyB3aWxsIG5vdCBoZWxwLiBUYWtlIGEgbG9vayB0byB0aGUg ZnVuY3Rpb24NCj4gPiAnaXhnYmVfc2V0dXBfbWFjX2xpbmtfbXVsdGlzcGVlZF9maWJlcigpJywg d2hpY2ggaXMgdGhlIG1haW4NCj4gPiBwcm9ibGVtYXRpYyBmdW5jdGlvbiBoZXJlLiAnd2FpdF90 b19jb21wbGV0ZScgaGVyZSB1c2VkIG9ubHkgYXMNCj4gPiBhcmd1bWVudCBmb3IgaXhnYmVfc2V0 dXBfbWFjX2xpbmsoKSwgYW5kIHRoZSBidXN5IHdhaXRpbmcgbG9vcHMgYXJlDQo+IG91dHNpZGUg b2YgaXQuDQo+ID4gUmVnYXJkbGVzcyBvZiB0aGUgJ3dhaXRfdG9fY29tcGxldGUnIHZhbHVlLCB0 aGlzIGZ1bmN0aW9uIHdpbGwgYnVzeQ0KPiA+IHBvbGwgdGhlIGxpbmsgZm9yIDEwNDAgbXMgdHJ5 aW5nIHRvIHNldHVwIDEwR0Igc3BlZWQgYW5kIDE0MG1zIG1vcmUNCj4gPiB0cnlpbmcgdG8gc2V0 dXAgMUdCIHNwZWVkLiBBZnRlciB0aGF0LCBpdCB3aWxsIGNhbGwgaXRzZWxmIHJlY3Vyc2l2ZWx5 DQo+ID4gYW5kIHdhaXQgYWdhaW4uLi4gTG9va3MgbGlrZSBJIG1pc2NhbGN1bGF0ZWQgbGFzdCB0 aW1lLiBSaWdodCBub3cNCj4gPiBpdCdsbCBiZSBtb3JlIHRoYW4gMiBzZWNvbmRzIGZvciBlYWNo IGRvd24gcG9ydCBzaW5jZSBmb2xsb3dpbmcgcGF0Y2gNCj4gbWVyZ2VkOg0KPiA+IDhmYzFmMzJm YTYxNSAoIm5ldC9peGdiZTogd2FpdCBsb25nZXIgZm9yIGxpbmsgYWZ0ZXIgZmliZXIgTUFDIHNl dHVwIikuDQo+ID4NCj4gPj4gSGksIGxhdXJlbnQuaGFyZHkNCj4gPj4gICBZb3UgYXJlIHRoZSBh dXRob3IgZm9yIHRoZSBwYXRjaCAoKiBuZXQvaXhnYmU6IGVuc3VyZSBsaW5rIHN0YXR1cyBpcw0K PiB1cGRhdGVkKSwgd2h5IGRvIHlvdSBpbXBsZW1lbnQgY29kZSB0aGF0IHdheT8NCj4gPj4gSXMg dGhhdCBtdXN0IHRoYXQgIHNldCB1cCBsaW5rIHdpdGggd2FpdD8NCj4gPj4NCj4gPj4gaXhnYmVf c2V0dXBfbGluayhodywgc3BlZWQsIHRydWUpOw0KPiA+Pg0KPiBUaGUgbWFpbiBpc3N1ZSB3aGlj aCBoYXMgbGVhZCB0byB0aGlzIHBhdGNoIGhhcyBiZWVuIHJlcG9ydGVkIHRocm91Z2ggYSB0ZXN0 DQo+IGNhc2Ugd2l0aCB0aGUgYXV0b25lZyBlbmFibGVkICh3aGljaCBoYXMgYmVlbiBhbHNvIHJl cG9ydGVkIGluIHRoZSBwbWQNCj4gdGVzdCBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBwYXRjaDoN Cj4gaHR0cDovL3BhdGNoZXMuZHBkay5vcmcvY29tbWVudC80NjI1My8pLg0KPiBJbiB0aGlzIGNv bnRleHQsIHdpdGhvdXQgdGhlIGZsYWcgc2V0IHRoZSBwYXRjaCB3YXNuJ3QgZWZmZWN0aXZlLg0K DQoNCk15IHF1ZXN0aW9uIGlzIHdoZXRoZXIgd2UgY2FuIGNoYW5nZSB0bzoNCg0KaXhnYmVfc2V0 dXBfbGluayhodywgc3BlZWQsIGZhbHNlKTsNCg0KaW4geW91ciBwYXRjaCwgaXQgaXMgIiBpeGdi ZV9zZXR1cF9saW5rKGh3LCBzcGVlZCwgdHJ1ZSk7Ig0Kc29tZSB1c2VyIG1heSAgbmVlZCBmbGV4 aWJsZSBpbiB3YWl0IGZvciBjb21wbGV0ZS4NCg0KIA0KPiA+Pg0KPiA+Pj4+Pj4gUmVnYXJkcw0K PiA+Pj4+Pj4gUWkNCj4gPj4+Pj4+DQo+ID4+Pj4+Pj4gRml4ZXM6IGMxMmQyMmY2NWIxMyAoIm5l dC9peGdiZTogZW5zdXJlIGxpbmsgc3RhdHVzIGlzIHVwZGF0ZWQiKQ0KPiA+Pj4+Pj4+IENDOiBz dGFibGVAZHBkay5vcmcNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IElseWEg TWF4aW1ldHMgPGkubWF4aW1ldHNAc2Ftc3VuZy5jb20+DQo+ID4+Pj4+Pj4gLS0tDQo+ID4+Pj4+ Pj4gICBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYyB8IDQzDQo+ID4+Pj4+Pj4gKysr KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0NCj4gPj4+Pj4+PiAgIDEgZmlsZSBjaGFuZ2Vk LCAzMiBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYw0KPiA+Pj4+Pj4+ IGIvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmMNCj4gPj4+Pj4+PiBpbmRleCAyNmIx OTI3MzcuLmEzM2I5YTZlOCAxMDA2NDQNCj4gPj4+Pj4+PiAtLS0gYS9kcml2ZXJzL25ldC9peGdi ZS9peGdiZV9ldGhkZXYuYw0KPiA+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2Jl X2V0aGRldi5jDQo+ID4+Pj4+Pj4gQEAgLTIyMSw2ICsyMjEsOCBAQCBzdGF0aWMgaW50IGl4Z2Jl X2Rldl9pbnRlcnJ1cHRfYWN0aW9uKHN0cnVjdA0KPiA+Pj4+Pj4+IHJ0ZV9ldGhfZGV2ICpkZXYs DQo+ID4+Pj4+Pj4gICAJCQkJICAgICAgc3RydWN0IHJ0ZV9pbnRyX2hhbmRsZSAqaGFuZGxlKTsN Cj4gc3RhdGljDQo+ID4+PiB2b2lkDQo+ID4+Pj4+Pj4gaXhnYmVfZGV2X2ludGVycnVwdF9oYW5k bGVyKHZvaWQgKnBhcmFtKTsgIHN0YXRpYyB2b2lkDQo+ID4+Pj4+Pj4gaXhnYmVfZGV2X2ludGVy cnVwdF9kZWxheWVkX2hhbmRsZXIodm9pZCAqcGFyYW0pOw0KPiA+Pj4+Pj4+ICtzdGF0aWMgdm9p ZCBpeGdiZV9kZXZfc2V0dXBfbGlua19hbGFybV9oYW5kbGVyKHZvaWQgKnBhcmFtKTsNCj4gPj4+ Pj4+PiArDQo+ID4+Pj4+Pj4gICBzdGF0aWMgaW50IGl4Z2JlX2FkZF9yYXIoc3RydWN0IHJ0ZV9l dGhfZGV2ICpkZXYsIHN0cnVjdA0KPiA+Pj4+Pj4+IGV0aGVyX2FkZHIgKm1hY19hZGRyLA0KPiA+ Pj4+Pj4+ICAgCQkJIHVpbnQzMl90IGluZGV4LCB1aW50MzJfdCBwb29sKTsgIHN0YXRpYyB2b2lk DQo+ID4+Pj4+Pj4gaXhnYmVfcmVtb3ZlX3JhcihzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWlu dDMyX3QgaW5kZXgpOyBAQA0KPiA+Pj4+Pj4+IC0yNzkxLDYgKzI3OTMsOCBAQCBpeGdiZV9kZXZf c3RvcChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICAgCVBN RF9JTklUX0ZVTkNfVFJBQ0UoKTsNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICsJcnRlX2VhbF9hbGFy bV9jYW5jZWwoaXhnYmVfZGV2X3NldHVwX2xpbmtfYWxhcm1faGFuZGxlciwNCj4gZGV2KTsNCj4g Pj4+Pj4+PiArDQo+ID4+Pj4+Pj4gICAJLyogZGlzYWJsZSBpbnRlcnJ1cHRzICovDQo+ID4+Pj4+ Pj4gICAJaXhnYmVfZGlzYWJsZV9pbnRyKGh3KTsNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IEBAIC0z OTY5LDYgKzM5NzMsMjUgQEAgaXhnYmV2Zl9jaGVja19saW5rKHN0cnVjdCBpeGdiZV9odw0KPiAq aHcsDQo+ID4+Pj4+Pj4gaXhnYmVfbGlua19zcGVlZCAqc3BlZWQsDQo+ID4+Pj4+Pj4gICAJcmV0 dXJuIHJldF92YWw7DQo+ID4+Pj4+Pj4gICB9DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiArc3RhdGlj IHZvaWQNCj4gPj4+Pj4+PiAraXhnYmVfZGV2X3NldHVwX2xpbmtfYWxhcm1faGFuZGxlcih2b2lk ICpwYXJhbSkgew0KPiA+Pj4+Pj4+ICsJc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYgPSAoc3RydWN0 IHJ0ZV9ldGhfZGV2ICopcGFyYW07DQo+ID4+Pj4+Pj4gKwlzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0N Cj4gPj4+Pj4+PiBJWEdCRV9ERVZfUFJJVkFURV9UT19IVyhkZXYtPmRhdGEtPmRldl9wcml2YXRl KTsNCj4gPj4+Pj4+PiArCXN0cnVjdCBpeGdiZV9pbnRlcnJ1cHQgKmludHIgPQ0KPiA+Pj4+Pj4+ ICsJCUlYR0JFX0RFVl9QUklWQVRFX1RPX0lOVFIoZGV2LT5kYXRhLQ0KPiA+ZGV2X3ByaXZhdGUp Ow0KPiA+Pj4+Pj4+ICsJdTMyIHNwZWVkOw0KPiA+Pj4+Pj4+ICsJYm9vbCBhdXRvbmVnID0gZmFs c2U7DQo+ID4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+ICsJc3BlZWQgPSBody0+cGh5LmF1dG9uZWdfYWR2 ZXJ0aXNlZDsNCj4gPj4+Pj4+PiArCWlmICghc3BlZWQpDQo+ID4+Pj4+Pj4gKwkJaXhnYmVfZ2V0 X2xpbmtfY2FwYWJpbGl0aWVzKGh3LCAmc3BlZWQsICZhdXRvbmVnKTsNCj4gPj4+Pj4+PiArDQo+ ID4+Pj4+Pj4gKwlpeGdiZV9zZXR1cF9saW5rKGh3LCBzcGVlZCwgdHJ1ZSk7DQo+ID4+Pj4+Pj4g Kw0KPiA+Pj4+Pj4+ICsJaW50ci0+ZmxhZ3MgJj0gfklYR0JFX0ZMQUdfTkVFRF9MSU5LX0NPTkZJ RzsgfQ0KPiA+Pj4+Pj4+ICsNCj4gPj4+Pj4+PiAgIC8qIHJldHVybiAwIG1lYW5zIGxpbmsgc3Rh dHVzIGNoYW5nZWQsIC0xIG1lYW5zIG5vdCBjaGFuZ2VkICovDQo+ID4+Pj4+Pj4gaW50IGl4Z2Jl X2Rldl9saW5rX3VwZGF0ZV9zaGFyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgQEAgLQ0KPiA+ Pj4gMzk4MSw5DQo+ID4+Pj4+Pj4gKzQwMDQsNyBAQCBpeGdiZV9kZXZfbGlua191cGRhdGVfc2hh cmUoc3RydWN0IHJ0ZV9ldGhfZGV2DQo+ICpkZXYsDQo+ID4+Pj4+Pj4gICAJCUlYR0JFX0RFVl9Q UklWQVRFX1RPX0lOVFIoZGV2LT5kYXRhLQ0KPiA+ZGV2X3ByaXZhdGUpOw0KPiA+Pj4+Pj4+ICAg CWludCBsaW5rX3VwOw0KPiA+Pj4+Pj4+ICAgCWludCBkaWFnOw0KPiA+Pj4+Pj4+IC0JdTMyIHNw ZWVkID0gMDsNCj4gPj4+Pj4+PiAgIAlpbnQgd2FpdCA9IDE7DQo+ID4+Pj4+Pj4gLQlib29sIGF1 dG9uZWcgPSBmYWxzZTsNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICAgCW1lbXNldCgmbGluaywgMCwg c2l6ZW9mKGxpbmspKTsNCj4gPj4+Pj4+PiAgIAlsaW5rLmxpbmtfc3RhdHVzID0gRVRIX0xJTktf RE9XTjsgQEAgLTM5OTMsMTMgKzQwMTQsOA0KPiBAQA0KPiA+Pj4+Pj4+IGl4Z2JlX2Rldl9saW5r X3VwZGF0ZV9zaGFyZShzdHJ1Y3QNCj4gPj4+Pj4gcnRlX2V0aF9kZXYNCj4gPj4+Pj4+PiAqZGV2 LA0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gICAJaHctPm1hYy5nZXRfbGlua19zdGF0dXMgPSB0cnVl Ow0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gLQlpZiAoKGludHItPmZsYWdzICYgSVhHQkVfRkxBR19O RUVEX0xJTktfQ09ORklHKSAmJg0KPiA+Pj4+Pj4+IC0JCWl4Z2JlX2dldF9tZWRpYV90eXBlKGh3 KSA9PQ0KPiBpeGdiZV9tZWRpYV90eXBlX2ZpYmVyKSB7DQo+ID4+Pj4+Pj4gLQkJc3BlZWQgPSBo dy0+cGh5LmF1dG9uZWdfYWR2ZXJ0aXNlZDsNCj4gPj4+Pj4+PiAtCQlpZiAoIXNwZWVkKQ0KPiA+ Pj4+Pj4+IC0JCQlpeGdiZV9nZXRfbGlua19jYXBhYmlsaXRpZXMoaHcsICZzcGVlZCwNCj4gJmF1 dG9uZWcpOw0KPiA+Pj4+Pj4+IC0JCWl4Z2JlX3NldHVwX2xpbmsoaHcsIHNwZWVkLCB0cnVlKTsN Cj4gPj4+Pj4+PiAtCX0NCj4gPj4+Pj4+PiArCWlmIChpbnRyLT5mbGFncyAmIElYR0JFX0ZMQUdf TkVFRF9MSU5LX0NPTkZJRykNCj4gPj4+Pj4+PiArCQlyZXR1cm4gcnRlX2V0aF9saW5rc3RhdHVz X3NldChkZXYsICZsaW5rKTsNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ICAgCS8qIGNoZWNrIGlmIGl0 IG5lZWRzIHRvIHdhaXQgdG8gY29tcGxldGUsIGlmIGxzYyBpbnRlcnJ1cHQgaXMNCj4gZW5hYmxl ZCAqLw0KPiA+Pj4+Pj4+ICAgCWlmICh3YWl0X3RvX2NvbXBsZXRlID09IDAgfHwNCj4gPj4+Pj4+ PiBkZXYtPmRhdGEtPmRldl9jb25mLmludHJfY29uZi5sc2MgIT0NCj4gPj4+Pj4+PiAwKSBAQA0K PiA+Pj4+Pj4+IC00MDE3LDExICs0MDMzLDE0IEBAIGl4Z2JlX2Rldl9saW5rX3VwZGF0ZV9zaGFy ZShzdHJ1Y3QNCj4gPj4+IHJ0ZV9ldGhfZGV2DQo+ID4+Pj4+ICpkZXYsDQo+ID4+Pj4+Pj4gICAJ fQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gICAJaWYgKGxpbmtfdXAgPT0gMCkgew0KPiA+Pj4+Pj4+ IC0JCWludHItPmZsYWdzIHw9IElYR0JFX0ZMQUdfTkVFRF9MSU5LX0NPTkZJRzsNCj4gPj4+Pj4+ PiArCQlpZiAoaXhnYmVfZ2V0X21lZGlhX3R5cGUoaHcpID09DQo+IGl4Z2JlX21lZGlhX3R5cGVf ZmliZXIpDQo+ID4+PiB7DQo+ID4+Pj4+Pj4gKwkJCWludHItPmZsYWdzIHw9DQo+IElYR0JFX0ZM QUdfTkVFRF9MSU5LX0NPTkZJRzsNCj4gPj4+Pj4+PiArCQkJcnRlX2VhbF9hbGFybV9zZXQoMTAs DQo+ID4+Pj4+Pj4gKw0KPiAJaXhnYmVfZGV2X3NldHVwX2xpbmtfYWxhcm1faGFuZGxlciwgZGV2 KTsNCj4gPj4+Pj4+PiArCQl9DQo+ID4+Pj4+Pj4gICAJCXJldHVybiBydGVfZXRoX2xpbmtzdGF0 dXNfc2V0KGRldiwgJmxpbmspOw0KPiA+Pj4+Pj4+ICAgCX0NCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+ IC0JaW50ci0+ZmxhZ3MgJj0gfklYR0JFX0ZMQUdfTkVFRF9MSU5LX0NPTkZJRzsNCj4gPj4+Pj4+ PiAgIAlsaW5rLmxpbmtfc3RhdHVzID0gRVRIX0xJTktfVVA7DQo+ID4+Pj4+Pj4gICAJbGluay5s aW5rX2R1cGxleCA9IEVUSF9MSU5LX0ZVTExfRFVQTEVYOw0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4g QEAgLTUxMjgsNiArNTE0Nyw4IEBAIGl4Z2JldmZfZGV2X3N0b3Aoc3RydWN0IHJ0ZV9ldGhfZGV2 DQo+ICpkZXYpDQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiAgIAlQTURfSU5JVF9GVU5DX1RSQUNFKCk7 DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiArCXJ0ZV9lYWxfYWxhcm1fY2FuY2VsKGl4Z2JlX2Rldl9z ZXR1cF9saW5rX2FsYXJtX2hhbmRsZXIsDQo+IGRldik7DQo+ID4+Pj4+Pj4gKw0KPiA+Pj4+Pj4+ ICAgCWl4Z2JldmZfaW50cl9kaXNhYmxlKGRldik7DQo+ID4+Pj4+Pj4NCj4gPj4+Pj4+PiAgIAlo dy0+YWRhcHRlcl9zdG9wcGVkID0gMTsNCj4gPj4+Pj4+PiAtLQ0KPiA+Pj4+Pj4+IDIuMTcuMQ0K DQo=