From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id 3EB941B29A; Fri, 12 Oct 2018 11:23:32 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Oct 2018 02:23:32 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,371,1534834800"; d="scan'208";a="270746870" Received: from pgsmsx104.gar.corp.intel.com ([10.221.44.91]) by fmsmga005.fm.intel.com with ESMTP; 12 Oct 2018 02:23:30 -0700 Received: from pgsmsx103.gar.corp.intel.com ([169.254.2.13]) by PGSMSX104.gar.corp.intel.com ([169.254.3.70]) with mapi id 14.03.0319.002; Fri, 12 Oct 2018 17:19:26 +0800 From: "Zhao1, Wei" To: Ilya Maximets , "Zhang, Qi Z" , Laurent Hardy 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//y6IAgAH3Y5A= Date: Fri, 12 Oct 2018 09:19:25 +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> In-Reply-To: <20181011102428eucas1p2fe26b12282d2b456ddc2cb96ad7552f0~cht-bhDPv2507925079eucas1p2L@eucas1p2.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.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 09:23:34 -0000 SGnvvIwgDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSWx5YSBNYXhp bWV0cyBbbWFpbHRvOmkubWF4aW1ldHNAc2Ftc3VuZy5jb21dDQo+IFNlbnQ6IFRodXJzZGF5LCBP Y3RvYmVyIDExLCAyMDE4IDY6MjcgUE0NCj4gVG86IFpoYW8xLCBXZWkgPHdlaS56aGFvMUBpbnRl bC5jb20+OyBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5jb20+Ow0KPiBMYXVyZW50IEhh cmR5IDxsYXVyZW50LmhhcmR5QDZ3aW5kLmNvbT4NCj4gQ2M6IEx1LCBXZW56aHVvIDx3ZW56aHVv Lmx1QGludGVsLmNvbT47IEFuYW55ZXYsIEtvbnN0YW50aW4NCj4gPGtvbnN0YW50aW4uYW5hbnll dkBpbnRlbC5jb20+OyBzdGFibGVAZHBkay5vcmc7IGRldkBkcGRrLm9yZw0KPiBTdWJqZWN0OiBS ZTogW2RwZGstZGV2XSBbUEFUQ0hdIG5ldC9peGdiZTogZml4IGJ1c3kgcG9sbGluZyB3aGlsZSBm aWJlciBsaW5rDQo+IHVwZGF0ZQ0KPiANCj4gT24gMTEuMTAuMjAxOCAxMjo1NiwgWmhhbzEsIFdl aSB3cm90ZToNCj4gPiBIaSwgIElseWEgTWF4aW1ldHMgQU5EIGxhdXJlbnQuaGFyZHkNCj4gDQo+ IEhpLCB0aGFua3MgZm9yIHNoYXJpbmcgeW91ciB0aG91Z2h0cy4NCj4gQ29tbWVudHMgaW5saW5l Lg0KPiANCj4gPg0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZy b206IGRldiBbbWFpbHRvOmRldi1ib3VuY2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2YgSWx5YSBN YXhpbWV0cw0KPiA+PiBTZW50OiBXZWRuZXNkYXksIFNlcHRlbWJlciAxMiwgMjAxOCA0OjA1IFBN DQo+ID4+IFRvOiBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5jb20+OyBkZXZAZHBkay5v cmcNCj4gPj4gQ2M6IEx1LCBXZW56aHVvIDx3ZW56aHVvLmx1QGludGVsLmNvbT47IEFuYW55ZXYs IEtvbnN0YW50aW4NCj4gPj4gPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+OyBMYXVyZW50 IEhhcmR5DQo+ID4+IDxsYXVyZW50LmhhcmR5QDZ3aW5kLmNvbT47IERhaSwgV2VpIDx3ZWkuZGFp QGludGVsLmNvbT47DQo+ID4+IHN0YWJsZUBkcGRrLm9yZw0KPiA+PiBTdWJqZWN0OiBSZTogW2Rw ZGstZGV2XSBbUEFUQ0hdIG5ldC9peGdiZTogZml4IGJ1c3kgcG9sbGluZyB3aGlsZQ0KPiA+PiBm aWJlciBsaW5rIHVwZGF0ZQ0KPiA+Pg0KPiA+PiBPbiAxMi4wOS4yMDE4IDA5OjQ5LCBaaGFuZywg UWkgWiB3cm90ZToNCj4gPj4+DQo+ID4+Pg0KPiA+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+ID4+Pj4gRnJvbTogSWx5YSBNYXhpbWV0cyBbbWFpbHRvOmkubWF4aW1ldHNAc2Ftc3Vu Zy5jb21dDQo+ID4+Pj4gU2VudDogTW9uZGF5LCBTZXB0ZW1iZXIgMTAsIDIwMTggMTE6MDkgUE0N Cj4gPj4+PiBUbzogWmhhbmcsIFFpIFogPHFpLnouemhhbmdAaW50ZWwuY29tPjsgZGV2QGRwZGsu b3JnDQo+ID4+Pj4gQ2M6IEx1LCBXZW56aHVvIDx3ZW56aHVvLmx1QGludGVsLmNvbT47IEFuYW55 ZXYsIEtvbnN0YW50aW4NCj4gPj4+PiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT47IExh dXJlbnQgSGFyZHkNCj4gPj4+PiA8bGF1cmVudC5oYXJkeUA2d2luZC5jb20+OyBEYWksIFdlaSA8 d2VpLmRhaUBpbnRlbC5jb20+Ow0KPiA+Pj4+IHN0YWJsZUBkcGRrLm9yZw0KPiA+Pj4+IFN1Ympl Y3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSF0gbmV0L2l4Z2JlOiBmaXggYnVzeSBwb2xsaW5nIHdo aWxlDQo+ID4+Pj4gZmliZXIgbGluayB1cGRhdGUNCj4gPj4+Pg0KPiA+Pj4+IE9uIDA0LjA5LjIw MTggMDk6MDgsIFpoYW5nLCBRaSBaIHdyb3RlOg0KPiA+Pj4+PiBIaSBJbHlhOg0KPiA+Pj4+Pg0K PiA+Pj4+Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+Pj4+IEZyb206IGRldiBb bWFpbHRvOmRldi1ib3VuY2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2YgSWx5YQ0KPiA+Pj4+Pj4g TWF4aW1ldHMNCj4gPj4+Pj4+IFNlbnQ6IEZyaWRheSwgQXVndXN0IDMxLCAyMDE4IDg6NDAgUE0N Cj4gPj4+Pj4+IFRvOiBkZXZAZHBkay5vcmcNCj4gPj4+Pj4+IENjOiBMdSwgV2Vuemh1byA8d2Vu emh1by5sdUBpbnRlbC5jb20+OyBBbmFueWV2LCBLb25zdGFudGluDQo+ID4+Pj4+PiA8a29uc3Rh bnRpbi5hbmFueWV2QGludGVsLmNvbT47IExhdXJlbnQgSGFyZHkNCj4gPj4+Pj4+IDxsYXVyZW50 LmhhcmR5QDZ3aW5kLmNvbT47IERhaSwgV2VpIDx3ZWkuZGFpQGludGVsLmNvbT47IElseWENCj4g Pj4+Pj4+IE1heGltZXRzIDxpLm1heGltZXRzQHNhbXN1bmcuY29tPjsgc3RhYmxlQGRwZGsub3Jn DQo+ID4+Pj4+PiBTdWJqZWN0OiBbZHBkay1kZXZdIFtQQVRDSF0gbmV0L2l4Z2JlOiBmaXggYnVz eSBwb2xsaW5nIHdoaWxlDQo+ID4+Pj4+PiBmaWJlciBsaW5rIHVwZGF0ZQ0KPiA+Pj4+Pj4NCj4g Pj4+Pj4+IElmIHRoZSBtdWx0aXNwZWVkIGZpYmVyIGxpbmsgaXMgaW4gRE9XTiBzdGF0ZSwgaXhn YmVfc2V0dXBfbGluaw0KPiA+Pj4+Pj4gY291bGQgdGFrZSBhcm91bmQgYSBzZWNvbmQgb2YgYnVz eSBwb2xsaW5nLiBUaGlzIGlzIGhpZ2hseQ0KPiA+Pj4+Pj4gaW5jb252ZW5pZW50IGZvciB0aGUg Y2FzZSB3aGVyZSBzaW5nbGUgdGhyZWFkIHBlcmlvZGljYWxseSBjaGVja3MNCj4gPj4+Pj4+IHRo ZQ0KPiA+PiBsaW5rIHN0YXR1c2VzLg0KPiA+Pj4+Pj4gRm9yIGV4YW1wbGUsIE9WUyBtYWluIHRo cmVhZCBwZXJpb2RpY2FsbHkgdXBkYXRlcyB0aGUgbGluaw0KPiA+Pj4+Pj4gc3RhdHVzZXMgYW5k IGhhbmdzIGZvciBhIHJlYWxseSBsb25nIHRpbWUgYnVzeSB3YWl0aW5nIG9uDQo+ID4+Pj4+PiBp eGdiZV9zZXR1cF9saW5rKCkgZm9yIGEgRE9XTiBmaWJlciBwb3J0cy4gRm9yIGNhc2Ugd2l0aCAz IGRvd24NCj4gPj4+Pj4+IHBvcnRzIGl0IGhhbmdzIGZvciBhIDMgc2Vjb25kcyBhbmQgdW5hYmxl IHRvIGRvIGFueXRoaW5nIGluY2x1ZGluZw0KPiBwYWNrZXQgcHJvY2Vzc2luZy4NCj4gPj4+Pj4+ IEZpeCB0aGF0IGJ5IHNoaWZ0aW5nIHRoYXQgd29ya2Fyb3VuZCB0byBhIHNlcGFyYXRlIHRocmVh ZCBieQ0KPiA+Pj4+Pj4gYWxhcm0gaGFuZGxlciB0aGF0IHdpbGwgdHJ5IHRvIHNldCB1cCBsaW5r IGlmIGl0IGlzIERPV04uDQo+ID4+Pj4+DQo+ID4+Pj4+IERvZXMgdGhhdCBtZWFuIHdlIHdpbGwg YmxvY2sgdGhlIGludGVycnVwdCB0aHJlYWQgZm9yIDMgc2Vjb25kcz8NCj4gPj4+Pg0KPiA+Pj4+ IFRocmVlIHRpbWVzIGZvciBvbmUgc2Vjb25kLiBPdGhlciB3b3JrIGNvdWxkIGJlIHNjaGVkdWxl ZCBiZXR3ZWVuLg0KPiA+Pj4+IElNSE8sIGl0J3MgbXVjaCBiZXR0ZXIgdGhhbiBibG9ja2luZyB1 c3VhbCBjYWxsZXIgZm9yIDMgc2Vjb25kcy4NCj4gPj4+Pg0KPiA+Pj4+PiBBbHNvLCBjYW4gd2Ug Z3VhcmFudGVlIHRoZXJlIHdpbGwgbm90IGJlIGFueSByYWNlIGNvbmRpdGlvbiBpZiB3ZQ0KPiA+ Pj4+PiBjYWxsDQo+ID4+Pj4gaXhnYmVfc2V0dXBfbGluayBhdCBhbm90aGVyIHRocmVhZCwgdGhl IGJhc2UgY29kZSBBUEkgaXMgbm90DQo+ID4+Pj4gYXNzdW1lZCB0byBiZSB0aHJlYWQtc2FmZSBh cyBJIGtub3cuDQo+ID4+Pj4NCj4gPj4+PiBUaGUgb25seSB1c2VyIG9mICdpeGdiZV9zZXR1cF9s aW5rJyBpcyAnaXhnYmVfZGV2X3N0YXJ0JywgYnV0IGl0DQo+ID4+Pj4gY291bGQgYmUgY2FsbGVk IG9ubHkgaWYgZGV2aWNlIHN0b3BwZWQuICdpeGdiZV9kZXZfc3RvcCcgY2FuY2VscyB0aGUNCj4g YWxhcm0uDQo+ID4+Pj4gUmFjZSB3aXRoICdsaW5rX3VwZGF0ZScgYXZvaWRlZCBieSAnSVhHQkVf RkxBR19ORUVEX0xJTktfQ09ORklHJw0KPiA+PiBmbGFnLg0KPiA+Pj4NCj4gPj4+IEkgZ3Vlc3Ms IGl0JyBub3Qgb25seSBhYm91dCB3aGVuIGl4Z2Jfc2V0dXBfbGluayByYWNlIHdpdGggaXRzZWxm LA0KPiA+Pj4gYnV0IGFsc28NCj4gPj4gd2hlbiBpdCByYWNlIHdpdGggb3RoZXIgQVBJcy4NCj4g Pj4+IEFsc28gdGhlIGNvbmNlcm4gaXMsIGV2ZW4gaW4gY3VycmVudCB2ZXJzaW9uLCB3ZSBjYW4g cHJvdmUgdGhlcmUgaXMNCj4gPj4+IG5vIGlzc3VlLA0KPiA+PiBob3cgY2FuIHdlIGd1YXJhbnRl ZSB3ZSBhcmUgc2FmZSBmb3IgZnV0dXJlIGJhc2UgY29kZSB1cGRhdGU/IEl0J3MNCj4gPj4gbm90 IGRlc2lnbmVkIGFzIHRocmVhZC1zYWZlLg0KPiA+Pj4gRm9yIG15IG9wdGlvbiwgdGhlIGNoYW5n ZSBpcyByaXNreS4NCj4gPj4NCj4gPj4gSW4gY3VycmVudCBpbXBsZW1lbnRhdGlvbiBpbnRlcnJ1 cHQgaGFuZGxlciBhbHJlYWR5IGNhbGxzIHRoZQ0KPiA+PiAnaXhnYmVfZGV2X2xpbmtfdXBkYXRl JyB3aGljaCBzdWJzZXF1ZW50bHkgY2FsbHMgJ2l4Z2JlX3NldHVwX2xpbmsnDQo+ID4+IGluIG91 ciBjYXNlIGlmIExTQyBpbnRlcnJ1cHRzIGVuYWJsZWQuIFNvLCBteSBjaGFuZ2UgbWFrZXMgdGhl IGRyaXZlcg0KPiA+PiBldmVuIHNhZmVyIGJ5IG1vdmluZyAnaXhnYmVfc2V0dXBfbGluaycgdG8g dGhlIHNhbWUgaW50ZXJydXB0IHRocmVhZC4NCj4gPj4gT3RoZXJ3aXNlIHR3byB0aHJlYWRzIChp bnRlcnJ1cHRzIGhhbmRsZXIgYW5kIHRoZSBsaW5rIHN0YXR1cw0KPiA+PiBjaGVja2luZw0KPiA+ PiB0aHJlYWQpIGNvdWxkIGNhbGwgJ2l4Z2JlX3NldHVwX2xpbmsnIHNpbXVsdGFuZW91c2x5Lg0K PiA+Pg0KPiA+Pj4NCj4gPj4+IEJ0dywgc2luY2UgaXhnYmUgc3VwcG9ydCBMU0MsIGl0IGlzIG5v dCBuZWNlc3NhcnkgZm9yICJzaW5nbGUgdGhyZWFkDQo+ID4+IHBlcmlvZGljYWxseSBjaGVja3Mg dGhlIGxpbmsgc3RhdHVzZXMiLCByaWdodD8NCj4gPj4NCj4gPj4gSW4gY3VycmVudCBpbXBsZW1l bnRhdGlvbiBpdCB3aWxsIHRha2UgYXQgbGVhc3QgNSBzZWNvbmRzICg0ICsgMSkgZm9yDQo+ID4+ IHRoZSBpbnRlcnJ1cHQgaGFuZGxlciB0byBkZXRlY3QgRE9XTiBsaW5rIHN0YXRlIGZvciBpeGdi ZSBtdWx0aXNwZWVkDQo+ID4+IGZpYmVyLiBUaGlzIGlzIHRvbyBtdWNoIGZvciBtYW55IHJlYWwg d29ybGQgY2FzZXMuDQo+ID4NCj4gPiBJIGhhdmUgcmV2aWV3ZWQgIHRoaXMgcGF0Y2gsIG5vdyBJ IGFncmVlIHdpdGggeW91IG9mIHRoZSBwb2ludCB0aGF0DQo+ID4gd2hlbiBwb3J0IGlzIGRvd24s ICIgbWFpbiB0aHJlYWQgcGVyaW9kaWNhbGx5IHVwZGF0ZXMgdGhlIGxpbmsgc3RhdHVzZXMgYW5k DQo+IGhhbmdzIGZvciBhIHJlYWxseSBsb25nIHRpbWUgYnVzeSB3YWl0aW5nIG9uIGl4Z2JlX3Nl dHVwX2xpbmsoKSBmb3IgYSBET1dODQo+IGZpYmVyIHBvcnRzICIuDQo+ID4gVGhpcyBpcyBpbnRy b2R1Y2VkIGJ5IGEgcGF0Y2ggaW4gdGhlIGZvbGxvd2luZzoNCj4gPiBTSEEtMTogYzEyZDIyZjY1 YjEzMmM1NmRiN2I0ZmRiZmQ1ZGRjZTI3ZDFlOTU3Mg0KPiA+ICogbmV0L2l4Z2JlOiBlbnN1cmUg bGluayBzdGF0dXMgaXMgdXBkYXRlZA0KPiA+DQo+ID4gQmVjYXVzZSBpbiB0aGlzIHBhdGNoLCBp eGdiZV9zZXR1cF9saW5rKCkgaXMgY2FsbGVkIHdpdGggaW5wdXQgcGFyYW1ldGVyDQo+IGF1dG9u ZWdfd2FpdF90b19jb21wbGV0ZT0xLCB0aGlzIHdpbGwgY2F1c2UgbG9vcCBjaGVjayBhbmQgc2xl ZXAgZGVsYXkuDQo+ID4gQXQgbGVhc3QgODI1OTkgc2VlbXMgaGFzIHRoaXMgZGVsYXkuKEJUVywg d2hpdmggdHlwZSBvZiBOSUMgYXJlIHlvdQ0KPiA+IHVzZT8gWDU1MCBvciA4MjU5OSkNCj4gDQo+ IEkgaGF2ZSA4MjU5OS4NCj4gDQo+ID4gWW91ciBzb2x1dGlvbiBpcyBhZGQgYSBlYWxfYWxhcm1f c2V0IGZvciBpeGdiZV9zZXR1cF9saW5rIGluIHRoZSB0aHJlYWQgb2YNCj4gUE1EIGRyaXZlciwg YW5kIGRvIHRoZSBzZXQgdXAgd29yayBpbiB0aGF0IHRocmVhZCwgaXMgdGhhdCByaWdodD8NCj4g PiBBbmQgbWFpbiB0aHJlYWQgYXZvaWQgaGFuZyBieSB0aGUgZmxhZyBvZg0KPiBJWEdCRV9GTEFH X05FRURfTElOS19DT05GSUcuDQo+ID4gSSB0aGluayB0aGlzIGlzIGEgZ29vZCBpZGVhIGZvciB0 aGlzIHByb2JsZW0sIGJ1dCBpdCBtYXkgY2F1c2UgcHJvYmxlbQ0KPiA+IGZvciBvdGhlciBsZWdh Y3kgdXNlciBvZiBpeGdiZSBwbWQsIGJlY2F1c2UgdGhlaXIgbGVnYWN5IGNvZGUsIHdoaWNoIHVz ZQ0KPiBtYWluIHRocmVhZCAgdG8gY2hlY2sgbGluayBzdGF0ZSBhbmQgc2V0dXBfbGluayB3aGVu IHBvcnQgaXMgZG93biwgYW5kIHRoZXkNCj4gYXJlIG5vdCBhd2FyZSBvZiBpdCBpcyBkb25lIGJ5 IG90aGVyIHRocmVhZCBpZiBhZGQgeW91ciBwYXRjaC4NCj4gDQo+IFdoYXQgYXJlIHRoZXNlIGFw cGxpY2F0aW9ucz8gSSBzZWUgbm8gcHVibGljIEFQSSBmb3Igc2V0dXBfbGluayBmdW5jdGlvbi4N Cj4gSXQncyBpbnRlcm5hbCB0byBkcml2ZXIgYW5kIHNob3VsZCBub3QgYmUgdXNlZCBleHRlcm5h bGx5Lg0KPiBBbSBJIG1pc3Npbmcgc29tZXRoaW5nPw0KDQpydGVfZXRoX2xpbmtfZ2V0KCkgLCAg aXQgd2lsbCBhbHNvIGNhbGwgdGhlIGZ1bmN0aW9uIG9mIGl4Z2JlX3NldHVwX2xpbmsoKS4NCg0K DQo+IA0KPiA+DQo+ID4gQW5kIGlzIHRoYXQgb2sgaWYgd2UgY2hhbmdlIGNvZGUgaW4gaXhnYmVf ZGV2X2xpbmtfdXBkYXRlX3NoYXJlKCkgdG8NCj4gPg0KPiA+IGl4Z2JlX2Rldl9saW5rX3VwZGF0 ZV9zaGFyZSgpDQo+ID4gew0KPiA+DQo+ID4gCS8qIGNoZWNrIGlmIGl0IG5lZWRzIHRvIHdhaXQg dG8gY29tcGxldGUsIGlmIGxzYyBpbnRlcnJ1cHQgaXMgZW5hYmxlZCAqLw0KPiA+IAlpZiAod2Fp dF90b19jb21wbGV0ZSA9PSAwIHx8IGRldi0+ZGF0YS0+ZGV2X2NvbmYuaW50cl9jb25mLmxzYyAh PSAwKQ0KPiA+IAkJd2FpdCA9IDA7DQo+ID4NCj4gPiAJaWYgKChpbnRyLT5mbGFncyAmIElYR0JF X0ZMQUdfTkVFRF9MSU5LX0NPTkZJRykgJiYNCj4gPiAJCWl4Z2JlX2dldF9tZWRpYV90eXBlKGh3 KSA9PSBpeGdiZV9tZWRpYV90eXBlX2ZpYmVyKSB7DQo+ID4gCQlzcGVlZCA9IGh3LT5waHkuYXV0 b25lZ19hZHZlcnRpc2VkOw0KPiA+IAkJaWYgKCFzcGVlZCkNCj4gPiAJCQlpeGdiZV9nZXRfbGlu a19jYXBhYmlsaXRpZXMoaHcsICZzcGVlZCwgJmF1dG9uZWcpOw0KPiA+IAkJaXhnYmVfc2V0dXBf bGluayhodywgc3BlZWQsIHdhaXQpOw0KPiA+IAl9DQo+ID4gfQ0KPiA+DQo+ID4gVGhlbiwgeW91 ciBhcHBsaWNhdGlvbiBjYW4gY2FsbCBydGVfZXRoX2xpbmtfZ2V0X25vd2FpdCAoKSB0byBtYWtl DQo+ID4gd2FpdF90b19jb21wbGV0ZT0wIHdoZW4gZG9pbmcgcGVyaW9kaWMgbGluayBzdGF0ZSBj aGVjaywgV2hpY2ggd2lsbCBub3QNCj4gY2F1c2UgIGxvb3AgY2hlY2sgYW5kIHNsZWVwIGRlbGF5 LiBMZWdhY3kgY29kZSBvZiBvdGhlciB1c2VyIGNhbGwNCj4gcnRlX2V0aF9saW5rX2dldCgpICB3 aWxsIG5vdCBiZSBhZmZlY3RlZCBhbHNvLg0KPiA+IEJ1dCwgSSBhbSBOT1QgY29uZmlkZW50ICx3 aGV0aGVyIHRoaXMgd2lsbCBpbnRyb2R1Y2UgbmV3IHByb2JsZW0gd2hlbg0KPiBzZXQgdXAgbGlu ayB3aXRob3V0IHdhaXQhDQo+ID4gU28sIHRoaXMgaXMganVzdCBhIGRpc2N1c3Npb24gdG9waWMu DQo+IA0KPiBVbmZvcnR1bmF0ZWx5IHRoaXMgd2lsbCBub3QgaGVscC4gVGFrZSBhIGxvb2sgdG8g dGhlIGZ1bmN0aW9uDQo+ICdpeGdiZV9zZXR1cF9tYWNfbGlua19tdWx0aXNwZWVkX2ZpYmVyKCkn LCB3aGljaCBpcyB0aGUgbWFpbiBwcm9ibGVtYXRpYw0KPiBmdW5jdGlvbiBoZXJlLiAnd2FpdF90 b19jb21wbGV0ZScgaGVyZSB1c2VkIG9ubHkgYXMgYXJndW1lbnQgZm9yDQo+IGl4Z2JlX3NldHVw X21hY19saW5rKCksIGFuZCB0aGUgYnVzeSB3YWl0aW5nIGxvb3BzIGFyZSBvdXRzaWRlIG9mIGl0 Lg0KPiBSZWdhcmRsZXNzIG9mIHRoZSAnd2FpdF90b19jb21wbGV0ZScgdmFsdWUsIHRoaXMgZnVu Y3Rpb24gd2lsbCBidXN5IHBvbGwgdGhlDQo+IGxpbmsgZm9yIDEwNDAgbXMgdHJ5aW5nIHRvIHNl dHVwIDEwR0Igc3BlZWQgYW5kIDE0MG1zIG1vcmUgdHJ5aW5nIHRvIHNldHVwDQo+IDFHQiBzcGVl ZC4gQWZ0ZXIgdGhhdCwgaXQgd2lsbCBjYWxsIGl0c2VsZiByZWN1cnNpdmVseSBhbmQgd2FpdCBh Z2Fpbi4uLiBMb29rcyBsaWtlIEkNCj4gbWlzY2FsY3VsYXRlZCBsYXN0IHRpbWUuIFJpZ2h0IG5v dyBpdCdsbCBiZSBtb3JlIHRoYW4gMiBzZWNvbmRzIGZvciBlYWNoIGRvd24NCj4gcG9ydCBzaW5j ZSBmb2xsb3dpbmcgcGF0Y2ggbWVyZ2VkOg0KPiA4ZmMxZjMyZmE2MTUgKCJuZXQvaXhnYmU6IHdh aXQgbG9uZ2VyIGZvciBsaW5rIGFmdGVyIGZpYmVyIE1BQyBzZXR1cCIpLg0KDQpZZXMsIHlvdSBh cmUgcmlnaHQsIGxpbmsgc3RhdGUgY2hlY2sgbG9vcCBpbiBmdW5jdGlvbiBpeGdiZV9zZXR1cF9t YWNfbGlua19tdWx0aXNwZWVkX2ZpYmVyKCkgYXJlIG5vdCBibG9ja2VkIGJ5IGJvb2wgYXV0b25l Z193YWl0X3RvX2NvbXBsZXRlLA0KSXQgd2lsbCBjYXVzZSBhYm91dCAxcyB3YWl0IHdoZW4gcG9y dCBpcyBkb3duLg0KQW5kIGFsc28sIGNhbiB3ZSB1cGRhdGUgY29kZSBpbiBmdW5jdGlvbiBpeGdi ZV9zZXR1cF9tYWNfbGlua19tdWx0aXNwZWVkX2ZpYmVyKCkgdG8gIGJsb2NrIGxpbmsgc3RhdGUg Y2hlY2sgbG9vcCB1c2luZyBhdXRvbmVnX3dhaXRfdG9fY29tcGxldGU/DQpJIGFtIG5vdCBzdXJl LiBCZWNhdXNlIHRoZXJlIGlzIGEgY29tbWVudCBmb3IgdGhpcyBsb29wIGNoZWNrOg0KCQkvKg0K CQkgKiBXYWl0IGZvciB0aGUgY29udHJvbGxlciB0byBhY3F1aXJlIGxpbmsuICBQZXIgSUVFRSA4 MDIuM2FwLA0KCQkgKiBTZWN0aW9uIDczLjEwLjIsIHdlIG1heSBoYXZlIHRvIHdhaXQgdXAgdG8g NTAwbXMgaWYgS1IgaXMNCgkJICogYXR0ZW1wdGVkLiAgODI1OTkgdXNlcyB0aGUgc2FtZSB0aW1p bmcgZm9yIDEwZyBTRkkuDQoJCSAqLw0KSXQgc2VlbXMgd2UgaGF2ZSB0byB3YWl0IGZvciBhdCBs ZWFzdCA1MDBtcyBmb3Igc3BlYyByZXF1aXJlbWVudCBiZWZvcmUgd2UgY2hlY2sgbGluayBhZnRl ciBjb25maWd1cmF0aW9uLg0KSWYgdGhhdCBpcyB0cnVlLCB3ZSBjYW4gbm90IGRvIGFueSBjaGFu Z2UgdG8gdGhlc2UgbG9vcCBjaGVjay4NCkJ1dCB3aHkgbm90IG1haW4gdGhyZWFkIHRha2Ugc29t ZSBhY3Rpb24gdG8gc3RvcCBwZXJpb2RpYyBsaW5rIHNhdGUgY2hlY2sgd2hlbiBpdCBmaW5kIGl0 IGhhcyBiZWVuIGhhbmcgb3IgbGluayBpcyBkb3duPw0KIA0KDQoNCj4gDQo+ID4NCj4gPiBIaSwg bGF1cmVudC5oYXJkeQ0KPiA+ICBZb3UgYXJlIHRoZSBhdXRob3IgZm9yIHRoZSBwYXRjaCAoKiBu ZXQvaXhnYmU6IGVuc3VyZSBsaW5rIHN0YXR1cyBpcw0KPiB1cGRhdGVkKSwgd2h5IGRvIHlvdSBp bXBsZW1lbnQgY29kZSB0aGF0IHdheT8NCj4gPiBJcyB0aGF0IG11c3QgdGhhdCAgc2V0IHVwIGxp bmsgd2l0aCB3YWl0Pw0KPiA+DQo+ID4gaXhnYmVfc2V0dXBfbGluayhodywgc3BlZWQsIHRydWUp Ow0KPiA+DQo+ID4NCj4gPg0KPiA+Pg0KPiA+Pj4NCj4gPj4+Pg0KPiA+Pj4+Pg0KPiA+Pj4+PiBS ZWdhcmRzDQo+ID4+Pj4+IFFpDQo+ID4+Pj4+DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gRml4ZXM6IGMx MmQyMmY2NWIxMyAoIm5ldC9peGdiZTogZW5zdXJlIGxpbmsgc3RhdHVzIGlzIHVwZGF0ZWQiKQ0K PiA+Pj4+Pj4gQ0M6IHN0YWJsZUBkcGRrLm9yZw0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IFNpZ25lZC1v ZmYtYnk6IElseWEgTWF4aW1ldHMgPGkubWF4aW1ldHNAc2Ftc3VuZy5jb20+DQo+ID4+Pj4+PiAt LS0NCj4gPj4+Pj4+ICBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYyB8IDQzDQo+ID4+ Pj4+PiArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQ0KPiA+Pj4+Pj4gIDEgZmlsZSBj aGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkNCj4gPj4+Pj4+DQo+ID4+ Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmMNCj4gPj4+ Pj4+IGIvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmMNCj4gPj4+Pj4+IGluZGV4IDI2 YjE5MjczNy4uYTMzYjlhNmU4IDEwMDY0NA0KPiA+Pj4+Pj4gLS0tIGEvZHJpdmVycy9uZXQvaXhn YmUvaXhnYmVfZXRoZGV2LmMNCj4gPj4+Pj4+ICsrKyBiL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2Jl X2V0aGRldi5jDQo+ID4+Pj4+PiBAQCAtMjIxLDYgKzIyMSw4IEBAIHN0YXRpYyBpbnQgaXhnYmVf ZGV2X2ludGVycnVwdF9hY3Rpb24oc3RydWN0DQo+ID4+Pj4+PiBydGVfZXRoX2RldiAqZGV2LA0K PiA+Pj4+Pj4gIAkJCQkgICAgICBzdHJ1Y3QgcnRlX2ludHJfaGFuZGxlICpoYW5kbGUpOw0KPiBz dGF0aWMNCj4gPj4gdm9pZA0KPiA+Pj4+Pj4gaXhnYmVfZGV2X2ludGVycnVwdF9oYW5kbGVyKHZv aWQgKnBhcmFtKTsgIHN0YXRpYyB2b2lkDQo+ID4+Pj4+PiBpeGdiZV9kZXZfaW50ZXJydXB0X2Rl bGF5ZWRfaGFuZGxlcih2b2lkICpwYXJhbSk7DQo+ID4+Pj4+PiArc3RhdGljIHZvaWQgaXhnYmVf ZGV2X3NldHVwX2xpbmtfYWxhcm1faGFuZGxlcih2b2lkICpwYXJhbSk7DQo+ID4+Pj4+PiArDQo+ ID4+Pj4+PiAgc3RhdGljIGludCBpeGdiZV9hZGRfcmFyKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2 LCBzdHJ1Y3QNCj4gPj4+Pj4+IGV0aGVyX2FkZHIgKm1hY19hZGRyLA0KPiA+Pj4+Pj4gIAkJCSB1 aW50MzJfdCBpbmRleCwgdWludDMyX3QgcG9vbCk7ICBzdGF0aWMgdm9pZA0KPiA+Pj4+Pj4gaXhn YmVfcmVtb3ZlX3JhcihzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDMyX3QgaW5kZXgpOyBA QA0KPiA+Pj4+Pj4gLTI3OTEsNiArMjc5Myw4IEBAIGl4Z2JlX2Rldl9zdG9wKHN0cnVjdCBydGVf ZXRoX2RldiAqZGV2KQ0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ICAJUE1EX0lOSVRfRlVOQ19UUkFDRSgp Ow0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ICsJcnRlX2VhbF9hbGFybV9jYW5jZWwoaXhnYmVfZGV2X3Nl dHVwX2xpbmtfYWxhcm1faGFuZGxlciwNCj4gZGV2KTsNCj4gPj4+Pj4+ICsNCj4gPj4+Pj4+ICAJ LyogZGlzYWJsZSBpbnRlcnJ1cHRzICovDQo+ID4+Pj4+PiAgCWl4Z2JlX2Rpc2FibGVfaW50ciho dyk7DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gQEAgLTM5NjksNiArMzk3MywyNSBAQCBpeGdiZXZmX2No ZWNrX2xpbmsoc3RydWN0IGl4Z2JlX2h3ICpodywNCj4gPj4+Pj4+IGl4Z2JlX2xpbmtfc3BlZWQg KnNwZWVkLA0KPiA+Pj4+Pj4gIAlyZXR1cm4gcmV0X3ZhbDsNCj4gPj4+Pj4+ICB9DQo+ID4+Pj4+ Pg0KPiA+Pj4+Pj4gK3N0YXRpYyB2b2lkDQo+ID4+Pj4+PiAraXhnYmVfZGV2X3NldHVwX2xpbmtf YWxhcm1faGFuZGxlcih2b2lkICpwYXJhbSkgew0KPiA+Pj4+Pj4gKwlzdHJ1Y3QgcnRlX2V0aF9k ZXYgKmRldiA9IChzdHJ1Y3QgcnRlX2V0aF9kZXYgKilwYXJhbTsNCj4gPj4+Pj4+ICsJc3RydWN0 IGl4Z2JlX2h3ICpodyA9DQo+ID4+Pj4+PiBJWEdCRV9ERVZfUFJJVkFURV9UT19IVyhkZXYtPmRh dGEtPmRldl9wcml2YXRlKTsNCj4gPj4+Pj4+ICsJc3RydWN0IGl4Z2JlX2ludGVycnVwdCAqaW50 ciA9DQo+ID4+Pj4+PiArCQlJWEdCRV9ERVZfUFJJVkFURV9UT19JTlRSKGRldi0+ZGF0YS0NCj4g PmRldl9wcml2YXRlKTsNCj4gPj4+Pj4+ICsJdTMyIHNwZWVkOw0KPiA+Pj4+Pj4gKwlib29sIGF1 dG9uZWcgPSBmYWxzZTsNCj4gPj4+Pj4+ICsNCj4gPj4+Pj4+ICsJc3BlZWQgPSBody0+cGh5LmF1 dG9uZWdfYWR2ZXJ0aXNlZDsNCj4gPj4+Pj4+ICsJaWYgKCFzcGVlZCkNCj4gPj4+Pj4+ICsJCWl4 Z2JlX2dldF9saW5rX2NhcGFiaWxpdGllcyhodywgJnNwZWVkLCAmYXV0b25lZyk7DQo+ID4+Pj4+ PiArDQo+ID4+Pj4+PiArCWl4Z2JlX3NldHVwX2xpbmsoaHcsIHNwZWVkLCB0cnVlKTsNCj4gPj4+ Pj4+ICsNCj4gPj4+Pj4+ICsJaW50ci0+ZmxhZ3MgJj0gfklYR0JFX0ZMQUdfTkVFRF9MSU5LX0NP TkZJRzsgfQ0KPiA+Pj4+Pj4gKw0KPiA+Pj4+Pj4gIC8qIHJldHVybiAwIG1lYW5zIGxpbmsgc3Rh dHVzIGNoYW5nZWQsIC0xIG1lYW5zIG5vdCBjaGFuZ2VkICovDQo+ID4+Pj4+PiBpbnQgaXhnYmVf ZGV2X2xpbmtfdXBkYXRlX3NoYXJlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCBAQCAtDQo+ID4+ IDM5ODEsOQ0KPiA+Pj4+Pj4gKzQwMDQsNyBAQCBpeGdiZV9kZXZfbGlua191cGRhdGVfc2hhcmUo c3RydWN0IHJ0ZV9ldGhfZGV2DQo+ICpkZXYsDQo+ID4+Pj4+PiAgCQlJWEdCRV9ERVZfUFJJVkFU RV9UT19JTlRSKGRldi0+ZGF0YS0NCj4gPmRldl9wcml2YXRlKTsNCj4gPj4+Pj4+ICAJaW50IGxp bmtfdXA7DQo+ID4+Pj4+PiAgCWludCBkaWFnOw0KPiA+Pj4+Pj4gLQl1MzIgc3BlZWQgPSAwOw0K PiA+Pj4+Pj4gIAlpbnQgd2FpdCA9IDE7DQo+ID4+Pj4+PiAtCWJvb2wgYXV0b25lZyA9IGZhbHNl Ow0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ICAJbWVtc2V0KCZsaW5rLCAwLCBzaXplb2YobGluaykpOw0K PiA+Pj4+Pj4gIAlsaW5rLmxpbmtfc3RhdHVzID0gRVRIX0xJTktfRE9XTjsgQEAgLTM5OTMsMTMg KzQwMTQsOA0KPiBAQA0KPiA+Pj4+Pj4gaXhnYmVfZGV2X2xpbmtfdXBkYXRlX3NoYXJlKHN0cnVj dA0KPiA+Pj4+IHJ0ZV9ldGhfZGV2DQo+ID4+Pj4+PiAqZGV2LA0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ ICAJaHctPm1hYy5nZXRfbGlua19zdGF0dXMgPSB0cnVlOw0KPiA+Pj4+Pj4NCj4gPj4+Pj4+IC0J aWYgKChpbnRyLT5mbGFncyAmIElYR0JFX0ZMQUdfTkVFRF9MSU5LX0NPTkZJRykgJiYNCj4gPj4+ Pj4+IC0JCWl4Z2JlX2dldF9tZWRpYV90eXBlKGh3KSA9PQ0KPiBpeGdiZV9tZWRpYV90eXBlX2Zp YmVyKSB7DQo+ID4+Pj4+PiAtCQlzcGVlZCA9IGh3LT5waHkuYXV0b25lZ19hZHZlcnRpc2VkOw0K PiA+Pj4+Pj4gLQkJaWYgKCFzcGVlZCkNCj4gPj4+Pj4+IC0JCQlpeGdiZV9nZXRfbGlua19jYXBh YmlsaXRpZXMoaHcsICZzcGVlZCwNCj4gJmF1dG9uZWcpOw0KPiA+Pj4+Pj4gLQkJaXhnYmVfc2V0 dXBfbGluayhodywgc3BlZWQsIHRydWUpOw0KPiA+Pj4+Pj4gLQl9DQo+ID4+Pj4+PiArCWlmIChp bnRyLT5mbGFncyAmIElYR0JFX0ZMQUdfTkVFRF9MSU5LX0NPTkZJRykNCj4gPj4+Pj4+ICsJCXJl dHVybiBydGVfZXRoX2xpbmtzdGF0dXNfc2V0KGRldiwgJmxpbmspOw0KPiA+Pj4+Pj4NCj4gPj4+ Pj4+ICAJLyogY2hlY2sgaWYgaXQgbmVlZHMgdG8gd2FpdCB0byBjb21wbGV0ZSwgaWYgbHNjIGlu dGVycnVwdCBpcw0KPiBlbmFibGVkICovDQo+ID4+Pj4+PiAgCWlmICh3YWl0X3RvX2NvbXBsZXRl ID09IDAgfHwgZGV2LT5kYXRhLQ0KPiA+ZGV2X2NvbmYuaW50cl9jb25mLmxzYw0KPiA+Pj4+Pj4g IT0NCj4gPj4+Pj4+IDApIEBADQo+ID4+Pj4+PiAtNDAxNywxMSArNDAzMywxNCBAQCBpeGdiZV9k ZXZfbGlua191cGRhdGVfc2hhcmUoc3RydWN0DQo+ID4+IHJ0ZV9ldGhfZGV2DQo+ID4+Pj4gKmRl diwNCj4gPj4+Pj4+ICAJfQ0KPiA+Pj4+Pj4NCj4gPj4+Pj4+ICAJaWYgKGxpbmtfdXAgPT0gMCkg ew0KPiA+Pj4+Pj4gLQkJaW50ci0+ZmxhZ3MgfD0gSVhHQkVfRkxBR19ORUVEX0xJTktfQ09ORklH Ow0KPiA+Pj4+Pj4gKwkJaWYgKGl4Z2JlX2dldF9tZWRpYV90eXBlKGh3KSA9PQ0KPiBpeGdiZV9t ZWRpYV90eXBlX2ZpYmVyKQ0KPiA+PiB7DQo+ID4+Pj4+PiArCQkJaW50ci0+ZmxhZ3MgfD0NCj4g SVhHQkVfRkxBR19ORUVEX0xJTktfQ09ORklHOw0KPiA+Pj4+Pj4gKwkJCXJ0ZV9lYWxfYWxhcm1f c2V0KDEwLA0KPiA+Pj4+Pj4gKw0KPiAJaXhnYmVfZGV2X3NldHVwX2xpbmtfYWxhcm1faGFuZGxl ciwgZGV2KTsNCj4gPj4+Pj4+ICsJCX0NCj4gPj4+Pj4+ICAJCXJldHVybiBydGVfZXRoX2xpbmtz dGF0dXNfc2V0KGRldiwgJmxpbmspOw0KPiA+Pj4+Pj4gIAl9DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4g LQlpbnRyLT5mbGFncyAmPSB+SVhHQkVfRkxBR19ORUVEX0xJTktfQ09ORklHOw0KPiA+Pj4+Pj4g IAlsaW5rLmxpbmtfc3RhdHVzID0gRVRIX0xJTktfVVA7DQo+ID4+Pj4+PiAgCWxpbmsubGlua19k dXBsZXggPSBFVEhfTElOS19GVUxMX0RVUExFWDsNCj4gPj4+Pj4+DQo+ID4+Pj4+PiBAQCAtNTEy OCw2ICs1MTQ3LDggQEAgaXhnYmV2Zl9kZXZfc3RvcChzdHJ1Y3QgcnRlX2V0aF9kZXYNCj4gKmRl dikNCj4gPj4+Pj4+DQo+ID4+Pj4+PiAgCVBNRF9JTklUX0ZVTkNfVFJBQ0UoKTsNCj4gPj4+Pj4+ DQo+ID4+Pj4+PiArCXJ0ZV9lYWxfYWxhcm1fY2FuY2VsKGl4Z2JlX2Rldl9zZXR1cF9saW5rX2Fs YXJtX2hhbmRsZXIsDQo+IGRldik7DQo+ID4+Pj4+PiArDQo+ID4+Pj4+PiAgCWl4Z2JldmZfaW50 cl9kaXNhYmxlKGRldik7DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gIAlody0+YWRhcHRlcl9zdG9wcGVk ID0gMTsNCj4gPj4+Pj4+IC0tDQo+ID4+Pj4+PiAyLjE3LjENCj4gPj4+Pj4NCg==