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 D1A541041; Wed, 12 Sep 2018 10:29:35 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Sep 2018 01:29:34 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,364,1531810800"; d="scan'208";a="89736544" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga001.jf.intel.com with ESMTP; 12 Sep 2018 01:28:56 -0700 Received: from fmsmsx153.amr.corp.intel.com (10.18.125.6) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 12 Sep 2018 01:28:52 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX153.amr.corp.intel.com (10.18.125.6) with Microsoft SMTP Server (TLS) id 14.3.319.2; Wed, 12 Sep 2018 01:28:51 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.240]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.205]) with mapi id 14.03.0319.002; Wed, 12 Sep 2018 16:28:49 +0800 From: "Zhang, Qi Z" To: Ilya Maximets , "dev@dpdk.org" CC: "Lu, Wenzhuo" , "Ananyev, Konstantin" , Laurent Hardy , "Dai, Wei" , "stable@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH] net/ixgbe: fix busy polling while fiber link update Thread-Index: AQHUSRgm2flqZ5cfnEGgMeOA0QVwsqTsM3Cg//+S8wCAAIcyoA== Date: Wed, 12 Sep 2018 08:28:49 +0000 Message-ID: <039ED4275CED7440929022BC67E7061153284408@SHSMSX103.ccr.corp.intel.com> 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: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNjQ4NGRiM2MtMzA1YS00YWVkLWE0NDEtNTI5NjY5M2M2NDQyIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiVHVJVXp4QzB1ejJhXC9JWFwvMERUTVwvK2ZtYVN2ZjFHdE5cLzkyNGhzXC9HamM0Tk9JQ1JLY29OOGtuYTRZWm9NVGlTIn0= x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.400.15 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] 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: Wed, 12 Sep 2018 08:29:36 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSWx5YSBNYXhpbWV0cyBb bWFpbHRvOmkubWF4aW1ldHNAc2Ftc3VuZy5jb21dDQo+IFNlbnQ6IFdlZG5lc2RheSwgU2VwdGVt YmVyIDEyLCAyMDE4IDQ6MDUgUE0NCj4gVG86IFpoYW5nLCBRaSBaIDxxaS56LnpoYW5nQGludGVs LmNvbT47IGRldkBkcGRrLm9yZw0KPiBDYzogTHUsIFdlbnpodW8gPHdlbnpodW8ubHVAaW50ZWwu Y29tPjsgQW5hbnlldiwgS29uc3RhbnRpbg0KPiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNv bT47IExhdXJlbnQgSGFyZHkNCj4gPGxhdXJlbnQuaGFyZHlANndpbmQuY29tPjsgRGFpLCBXZWkg PHdlaS5kYWlAaW50ZWwuY29tPjsNCj4gc3RhYmxlQGRwZGsub3JnDQo+IFN1YmplY3Q6IFJlOiBb ZHBkay1kZXZdIFtQQVRDSF0gbmV0L2l4Z2JlOiBmaXggYnVzeSBwb2xsaW5nIHdoaWxlIGZpYmVy IGxpbmsNCj4gdXBkYXRlDQo+IA0KPiBPbiAxMi4wOS4yMDE4IDA5OjQ5LCBaaGFuZywgUWkgWiB3 cm90ZToNCj4gPg0KPiA+DQo+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZy b206IElseWEgTWF4aW1ldHMgW21haWx0bzppLm1heGltZXRzQHNhbXN1bmcuY29tXQ0KPiA+PiBT ZW50OiBNb25kYXksIFNlcHRlbWJlciAxMCwgMjAxOCAxMTowOSBQTQ0KPiA+PiBUbzogWmhhbmcs IFFpIFogPHFpLnouemhhbmdAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4+IENjOiBMdSwg V2Vuemh1byA8d2Vuemh1by5sdUBpbnRlbC5jb20+OyBBbmFueWV2LCBLb25zdGFudGluDQo+ID4+ IDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPjsgTGF1cmVudCBIYXJkeQ0KPiA+PiA8bGF1 cmVudC5oYXJkeUA2d2luZC5jb20+OyBEYWksIFdlaSA8d2VpLmRhaUBpbnRlbC5jb20+Ow0KPiA+ PiBzdGFibGVAZHBkay5vcmcNCj4gPj4gU3ViamVjdDogUmU6IFtkcGRrLWRldl0gW1BBVENIXSBu ZXQvaXhnYmU6IGZpeCBidXN5IHBvbGxpbmcgd2hpbGUNCj4gPj4gZmliZXIgbGluayB1cGRhdGUN Cj4gPj4NCj4gPj4gT24gMDQuMDkuMjAxOCAwOTowOCwgWmhhbmcsIFFpIFogd3JvdGU6DQo+ID4+ PiBIaSBJbHlhOg0KPiA+Pj4NCj4gPj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ Pj4+IEZyb206IGRldiBbbWFpbHRvOmRldi1ib3VuY2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2Yg SWx5YSBNYXhpbWV0cw0KPiA+Pj4+IFNlbnQ6IEZyaWRheSwgQXVndXN0IDMxLCAyMDE4IDg6NDAg UE0NCj4gPj4+PiBUbzogZGV2QGRwZGsub3JnDQo+ID4+Pj4gQ2M6IEx1LCBXZW56aHVvIDx3ZW56 aHVvLmx1QGludGVsLmNvbT47IEFuYW55ZXYsIEtvbnN0YW50aW4NCj4gPj4+PiA8a29uc3RhbnRp bi5hbmFueWV2QGludGVsLmNvbT47IExhdXJlbnQgSGFyZHkNCj4gPj4+PiA8bGF1cmVudC5oYXJk eUA2d2luZC5jb20+OyBEYWksIFdlaSA8d2VpLmRhaUBpbnRlbC5jb20+OyBJbHlhDQo+ID4+Pj4g TWF4aW1ldHMgPGkubWF4aW1ldHNAc2Ftc3VuZy5jb20+OyBzdGFibGVAZHBkay5vcmcNCj4gPj4+ PiBTdWJqZWN0OiBbZHBkay1kZXZdIFtQQVRDSF0gbmV0L2l4Z2JlOiBmaXggYnVzeSBwb2xsaW5n IHdoaWxlIGZpYmVyDQo+ID4+Pj4gbGluayB1cGRhdGUNCj4gPj4+Pg0KPiA+Pj4+IElmIHRoZSBt dWx0aXNwZWVkIGZpYmVyIGxpbmsgaXMgaW4gRE9XTiBzdGF0ZSwgaXhnYmVfc2V0dXBfbGluaw0K PiA+Pj4+IGNvdWxkIHRha2UgYXJvdW5kIGEgc2Vjb25kIG9mIGJ1c3kgcG9sbGluZy4gVGhpcyBp cyBoaWdobHkNCj4gPj4+PiBpbmNvbnZlbmllbnQgZm9yIHRoZSBjYXNlIHdoZXJlIHNpbmdsZSB0 aHJlYWQgcGVyaW9kaWNhbGx5IGNoZWNrcyB0aGUgbGluaw0KPiBzdGF0dXNlcy4NCj4gPj4+PiBG b3IgZXhhbXBsZSwgT1ZTIG1haW4gdGhyZWFkIHBlcmlvZGljYWxseSB1cGRhdGVzIHRoZSBsaW5r IHN0YXR1c2VzDQo+ID4+Pj4gYW5kIGhhbmdzIGZvciBhIHJlYWxseSBsb25nIHRpbWUgYnVzeSB3 YWl0aW5nIG9uIGl4Z2JlX3NldHVwX2xpbmsoKQ0KPiA+Pj4+IGZvciBhIERPV04gZmliZXIgcG9y dHMuIEZvciBjYXNlIHdpdGggMyBkb3duIHBvcnRzIGl0IGhhbmdzIGZvciBhIDMNCj4gPj4+PiBz ZWNvbmRzIGFuZCB1bmFibGUgdG8gZG8gYW55dGhpbmcgaW5jbHVkaW5nIHBhY2tldCBwcm9jZXNz aW5nLg0KPiA+Pj4+IEZpeCB0aGF0IGJ5IHNoaWZ0aW5nIHRoYXQgd29ya2Fyb3VuZCB0byBhIHNl cGFyYXRlIHRocmVhZCBieSBhbGFybQ0KPiA+Pj4+IGhhbmRsZXIgdGhhdCB3aWxsIHRyeSB0byBz ZXQgdXAgbGluayBpZiBpdCBpcyBET1dOLg0KPiA+Pj4NCj4gPj4+IERvZXMgdGhhdCBtZWFuIHdl IHdpbGwgYmxvY2sgdGhlIGludGVycnVwdCB0aHJlYWQgZm9yIDMgc2Vjb25kcz8NCj4gPj4NCj4g Pj4gVGhyZWUgdGltZXMgZm9yIG9uZSBzZWNvbmQuIE90aGVyIHdvcmsgY291bGQgYmUgc2NoZWR1 bGVkIGJldHdlZW4uDQo+ID4+IElNSE8sIGl0J3MgbXVjaCBiZXR0ZXIgdGhhbiBibG9ja2luZyB1 c3VhbCBjYWxsZXIgZm9yIDMgc2Vjb25kcy4NCj4gPj4NCj4gPj4+IEFsc28sIGNhbiB3ZSBndWFy YW50ZWUgdGhlcmUgd2lsbCBub3QgYmUgYW55IHJhY2UgY29uZGl0aW9uIGlmIHdlDQo+ID4+PiBj YWxsDQo+ID4+IGl4Z2JlX3NldHVwX2xpbmsgYXQgYW5vdGhlciB0aHJlYWQsIHRoZSBiYXNlIGNv ZGUgQVBJIGlzIG5vdCBhc3N1bWVkDQo+ID4+IHRvIGJlIHRocmVhZC1zYWZlIGFzIEkga25vdy4N Cj4gPj4NCj4gPj4gVGhlIG9ubHkgdXNlciBvZiAnaXhnYmVfc2V0dXBfbGluaycgaXMgJ2l4Z2Jl X2Rldl9zdGFydCcsIGJ1dCBpdA0KPiA+PiBjb3VsZCBiZSBjYWxsZWQgb25seSBpZiBkZXZpY2Ug c3RvcHBlZC4gJ2l4Z2JlX2Rldl9zdG9wJyBjYW5jZWxzIHRoZSBhbGFybS4NCj4gPj4gUmFjZSB3 aXRoICdsaW5rX3VwZGF0ZScgYXZvaWRlZCBieSAnSVhHQkVfRkxBR19ORUVEX0xJTktfQ09ORklH JyBmbGFnLg0KPiA+DQo+ID4gSSBndWVzcywgaXQnIG5vdCBvbmx5IGFib3V0IHdoZW4gaXhnYl9z ZXR1cF9saW5rIHJhY2Ugd2l0aCBpdHNlbGYsIGJ1dCBhbHNvDQo+IHdoZW4gaXQgcmFjZSB3aXRo IG90aGVyIEFQSXMuDQo+ID4gQWxzbyB0aGUgY29uY2VybiBpcywgZXZlbiBpbiBjdXJyZW50IHZl cnNpb24sIHdlIGNhbiBwcm92ZSB0aGVyZSBpcyBubyBpc3N1ZSwNCj4gaG93IGNhbiB3ZSBndWFy YW50ZWUgd2UgYXJlIHNhZmUgZm9yIGZ1dHVyZSBiYXNlIGNvZGUgdXBkYXRlPyBJdCdzIG5vdA0K PiBkZXNpZ25lZCBhcyB0aHJlYWQtc2FmZS4NCj4gPiBGb3IgbXkgb3B0aW9uLCB0aGUgY2hhbmdl IGlzIHJpc2t5Lg0KPiANCj4gSW4gY3VycmVudCBpbXBsZW1lbnRhdGlvbiBpbnRlcnJ1cHQgaGFu ZGxlciBhbHJlYWR5IGNhbGxzIHRoZQ0KPiAnaXhnYmVfZGV2X2xpbmtfdXBkYXRlJyB3aGljaCBz dWJzZXF1ZW50bHkgY2FsbHMgJ2l4Z2JlX3NldHVwX2xpbmsnDQo+IGluIG91ciBjYXNlIGlmIExT QyBpbnRlcnJ1cHRzIGVuYWJsZWQuIFNvLCBteSBjaGFuZ2UgbWFrZXMgdGhlIGRyaXZlciBldmVu DQo+IHNhZmVyIGJ5IG1vdmluZyAnaXhnYmVfc2V0dXBfbGluaycgdG8gdGhlIHNhbWUgaW50ZXJy dXB0IHRocmVhZC4NCj4gT3RoZXJ3aXNlIHR3byB0aHJlYWRzIChpbnRlcnJ1cHRzIGhhbmRsZXIg YW5kIHRoZSBsaW5rIHN0YXR1cyBjaGVja2luZyB0aHJlYWQpDQo+IGNvdWxkIGNhbGwgJ2l4Z2Jl X3NldHVwX2xpbmsnIHNpbXVsdGFuZW91c2x5Lg0KDQpPaywgeW91IGFyZSByaWdodCwgc2VlbXMg dGhlIGNvbmNlcm4gSSBoYXZlIGlzIGFscmVhZHkgZXhpc3QgLCB5b3VyIHBhdGNoIGRvZXMgbm90 IGludHJvZHVjZSBuZXcgaXNzdWUuDQpTbyBJIGhhdmUgbm8gb2JqZWN0aW9uIGlmIHRoaXMgd2ls bCBmaXggc29tZSBpc3N1ZS4NCkJ1dCBsZXQncyBjaGVjayBpZiBhbnkgaXhnYmUgZXhwZXJ0cyB3 aWxsIGNvbW1lbnQuDQoNClJlZ2FyZHMNClFpDQoNCj4gDQo+ID4NCj4gPiBCdHcsIHNpbmNlIGl4 Z2JlIHN1cHBvcnQgTFNDLCBpdCBpcyBub3QgbmVjZXNzYXJ5IGZvciAic2luZ2xlIHRocmVhZA0K PiBwZXJpb2RpY2FsbHkgY2hlY2tzIHRoZSBsaW5rIHN0YXR1c2VzIiwgcmlnaHQ/DQo+IA0KPiBJ biBjdXJyZW50IGltcGxlbWVudGF0aW9uIGl0IHdpbGwgdGFrZSBhdCBsZWFzdCA1IHNlY29uZHMg KDQgKyAxKSBmb3IgdGhlIGludGVycnVwdA0KPiBoYW5kbGVyIHRvIGRldGVjdCBET1dOIGxpbmsg c3RhdGUgZm9yIGl4Z2JlIG11bHRpc3BlZWQgZmliZXIuIFRoaXMgaXMgdG9vIG11Y2gNCj4gZm9y IG1hbnkgcmVhbCB3b3JsZCBjYXNlcy4NCj4gDQo+ID4NCj4gPj4NCj4gPj4+DQo+ID4+PiBSZWdh cmRzDQo+ID4+PiBRaQ0KPiA+Pj4NCj4gPj4+Pg0KPiA+Pj4+IEZpeGVzOiBjMTJkMjJmNjViMTMg KCJuZXQvaXhnYmU6IGVuc3VyZSBsaW5rIHN0YXR1cyBpcyB1cGRhdGVkIikNCj4gPj4+PiBDQzog c3RhYmxlQGRwZGsub3JnDQo+ID4+Pj4NCj4gPj4+PiBTaWduZWQtb2ZmLWJ5OiBJbHlhIE1heGlt ZXRzIDxpLm1heGltZXRzQHNhbXN1bmcuY29tPg0KPiA+Pj4+IC0tLQ0KPiA+Pj4+ICBkcml2ZXJz L25ldC9peGdiZS9peGdiZV9ldGhkZXYuYyB8IDQzDQo+ID4+Pj4gKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0tLS0NCj4gPj4+PiAgMSBmaWxlIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyks IDExIGRlbGV0aW9ucygtKQ0KPiA+Pj4+DQo+ID4+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2l4Z2JlL2l4Z2JlX2V0aGRldi5jDQo+ID4+Pj4gYi9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9l dGhkZXYuYw0KPiA+Pj4+IGluZGV4IDI2YjE5MjczNy4uYTMzYjlhNmU4IDEwMDY0NA0KPiA+Pj4+ IC0tLSBhL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5jDQo+ID4+Pj4gKysrIGIvZHJp dmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmMNCj4gPj4+PiBAQCAtMjIxLDYgKzIyMSw4IEBA IHN0YXRpYyBpbnQgaXhnYmVfZGV2X2ludGVycnVwdF9hY3Rpb24oc3RydWN0DQo+ID4+Pj4gcnRl X2V0aF9kZXYgKmRldiwNCj4gPj4+PiAgCQkJCSAgICAgIHN0cnVjdCBydGVfaW50cl9oYW5kbGUg KmhhbmRsZSk7ICBzdGF0aWMgdm9pZA0KPiA+Pj4+IGl4Z2JlX2Rldl9pbnRlcnJ1cHRfaGFuZGxl cih2b2lkICpwYXJhbSk7ICBzdGF0aWMgdm9pZA0KPiA+Pj4+IGl4Z2JlX2Rldl9pbnRlcnJ1cHRf ZGVsYXllZF9oYW5kbGVyKHZvaWQgKnBhcmFtKTsNCj4gPj4+PiArc3RhdGljIHZvaWQgaXhnYmVf ZGV2X3NldHVwX2xpbmtfYWxhcm1faGFuZGxlcih2b2lkICpwYXJhbSk7DQo+ID4+Pj4gKw0KPiA+ Pj4+ICBzdGF0aWMgaW50IGl4Z2JlX2FkZF9yYXIoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHN0 cnVjdA0KPiA+Pj4+IGV0aGVyX2FkZHIgKm1hY19hZGRyLA0KPiA+Pj4+ICAJCQkgdWludDMyX3Qg aW5kZXgsIHVpbnQzMl90IHBvb2wpOyAgc3RhdGljIHZvaWQNCj4gPj4+PiBpeGdiZV9yZW1vdmVf cmFyKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MzJfdCBpbmRleCk7IEBADQo+ID4+Pj4g LTI3OTEsNiArMjc5Myw4IEBAIGl4Z2JlX2Rldl9zdG9wKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2 KQ0KPiA+Pj4+DQo+ID4+Pj4gIAlQTURfSU5JVF9GVU5DX1RSQUNFKCk7DQo+ID4+Pj4NCj4gPj4+ PiArCXJ0ZV9lYWxfYWxhcm1fY2FuY2VsKGl4Z2JlX2Rldl9zZXR1cF9saW5rX2FsYXJtX2hhbmRs ZXIsIGRldik7DQo+ID4+Pj4gKw0KPiA+Pj4+ICAJLyogZGlzYWJsZSBpbnRlcnJ1cHRzICovDQo+ ID4+Pj4gIAlpeGdiZV9kaXNhYmxlX2ludHIoaHcpOw0KPiA+Pj4+DQo+ID4+Pj4gQEAgLTM5Njks NiArMzk3MywyNSBAQCBpeGdiZXZmX2NoZWNrX2xpbmsoc3RydWN0IGl4Z2JlX2h3ICpodywNCj4g Pj4+PiBpeGdiZV9saW5rX3NwZWVkICpzcGVlZCwNCj4gPj4+PiAgCXJldHVybiByZXRfdmFsOw0K PiA+Pj4+ICB9DQo+ID4+Pj4NCj4gPj4+PiArc3RhdGljIHZvaWQNCj4gPj4+PiAraXhnYmVfZGV2 X3NldHVwX2xpbmtfYWxhcm1faGFuZGxlcih2b2lkICpwYXJhbSkgew0KPiA+Pj4+ICsJc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYgPSAoc3RydWN0IHJ0ZV9ldGhfZGV2ICopcGFyYW07DQo+ID4+Pj4g KwlzdHJ1Y3QgaXhnYmVfaHcgKmh3ID0NCj4gPj4+PiBJWEdCRV9ERVZfUFJJVkFURV9UT19IVyhk ZXYtPmRhdGEtPmRldl9wcml2YXRlKTsNCj4gPj4+PiArCXN0cnVjdCBpeGdiZV9pbnRlcnJ1cHQg KmludHIgPQ0KPiA+Pj4+ICsJCUlYR0JFX0RFVl9QUklWQVRFX1RPX0lOVFIoZGV2LT5kYXRhLT5k ZXZfcHJpdmF0ZSk7DQo+ID4+Pj4gKwl1MzIgc3BlZWQ7DQo+ID4+Pj4gKwlib29sIGF1dG9uZWcg PSBmYWxzZTsNCj4gPj4+PiArDQo+ID4+Pj4gKwlzcGVlZCA9IGh3LT5waHkuYXV0b25lZ19hZHZl cnRpc2VkOw0KPiA+Pj4+ICsJaWYgKCFzcGVlZCkNCj4gPj4+PiArCQlpeGdiZV9nZXRfbGlua19j YXBhYmlsaXRpZXMoaHcsICZzcGVlZCwgJmF1dG9uZWcpOw0KPiA+Pj4+ICsNCj4gPj4+PiArCWl4 Z2JlX3NldHVwX2xpbmsoaHcsIHNwZWVkLCB0cnVlKTsNCj4gPj4+PiArDQo+ID4+Pj4gKwlpbnRy LT5mbGFncyAmPSB+SVhHQkVfRkxBR19ORUVEX0xJTktfQ09ORklHOyB9DQo+ID4+Pj4gKw0KPiA+ Pj4+ICAvKiByZXR1cm4gMCBtZWFucyBsaW5rIHN0YXR1cyBjaGFuZ2VkLCAtMSBtZWFucyBub3Qg Y2hhbmdlZCAqLw0KPiA+Pj4+IGludCBpeGdiZV9kZXZfbGlua191cGRhdGVfc2hhcmUoc3RydWN0 IHJ0ZV9ldGhfZGV2ICpkZXYsIEBAIC0zOTgxLDkNCj4gPj4+PiArNDAwNCw3IEBAIGl4Z2JlX2Rl dl9saW5rX3VwZGF0ZV9zaGFyZShzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gPj4+PiAgCQlJ WEdCRV9ERVZfUFJJVkFURV9UT19JTlRSKGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOw0KPiA+Pj4+ ICAJaW50IGxpbmtfdXA7DQo+ID4+Pj4gIAlpbnQgZGlhZzsNCj4gPj4+PiAtCXUzMiBzcGVlZCA9 IDA7DQo+ID4+Pj4gIAlpbnQgd2FpdCA9IDE7DQo+ID4+Pj4gLQlib29sIGF1dG9uZWcgPSBmYWxz ZTsNCj4gPj4+Pg0KPiA+Pj4+ICAJbWVtc2V0KCZsaW5rLCAwLCBzaXplb2YobGluaykpOw0KPiA+ Pj4+ICAJbGluay5saW5rX3N0YXR1cyA9IEVUSF9MSU5LX0RPV047IEBAIC0zOTkzLDEzICs0MDE0 LDggQEANCj4gPj4+PiBpeGdiZV9kZXZfbGlua191cGRhdGVfc2hhcmUoc3RydWN0DQo+ID4+IHJ0 ZV9ldGhfZGV2DQo+ID4+Pj4gKmRldiwNCj4gPj4+Pg0KPiA+Pj4+ICAJaHctPm1hYy5nZXRfbGlu a19zdGF0dXMgPSB0cnVlOw0KPiA+Pj4+DQo+ID4+Pj4gLQlpZiAoKGludHItPmZsYWdzICYgSVhH QkVfRkxBR19ORUVEX0xJTktfQ09ORklHKSAmJg0KPiA+Pj4+IC0JCWl4Z2JlX2dldF9tZWRpYV90 eXBlKGh3KSA9PSBpeGdiZV9tZWRpYV90eXBlX2ZpYmVyKSB7DQo+ID4+Pj4gLQkJc3BlZWQgPSBo dy0+cGh5LmF1dG9uZWdfYWR2ZXJ0aXNlZDsNCj4gPj4+PiAtCQlpZiAoIXNwZWVkKQ0KPiA+Pj4+ IC0JCQlpeGdiZV9nZXRfbGlua19jYXBhYmlsaXRpZXMoaHcsICZzcGVlZCwgJmF1dG9uZWcpOw0K PiA+Pj4+IC0JCWl4Z2JlX3NldHVwX2xpbmsoaHcsIHNwZWVkLCB0cnVlKTsNCj4gPj4+PiAtCX0N Cj4gPj4+PiArCWlmIChpbnRyLT5mbGFncyAmIElYR0JFX0ZMQUdfTkVFRF9MSU5LX0NPTkZJRykN Cj4gPj4+PiArCQlyZXR1cm4gcnRlX2V0aF9saW5rc3RhdHVzX3NldChkZXYsICZsaW5rKTsNCj4g Pj4+Pg0KPiA+Pj4+ICAJLyogY2hlY2sgaWYgaXQgbmVlZHMgdG8gd2FpdCB0byBjb21wbGV0ZSwg aWYgbHNjIGludGVycnVwdCBpcyBlbmFibGVkICovDQo+ID4+Pj4gIAlpZiAod2FpdF90b19jb21w bGV0ZSA9PSAwIHx8IGRldi0+ZGF0YS0+ZGV2X2NvbmYuaW50cl9jb25mLmxzYyAhPQ0KPiA+Pj4+ IDApIEBADQo+ID4+Pj4gLTQwMTcsMTEgKzQwMzMsMTQgQEAgaXhnYmVfZGV2X2xpbmtfdXBkYXRl X3NoYXJlKHN0cnVjdCBydGVfZXRoX2Rldg0KPiA+PiAqZGV2LA0KPiA+Pj4+ICAJfQ0KPiA+Pj4+ DQo+ID4+Pj4gIAlpZiAobGlua191cCA9PSAwKSB7DQo+ID4+Pj4gLQkJaW50ci0+ZmxhZ3MgfD0g SVhHQkVfRkxBR19ORUVEX0xJTktfQ09ORklHOw0KPiA+Pj4+ICsJCWlmIChpeGdiZV9nZXRfbWVk aWFfdHlwZShodykgPT0gaXhnYmVfbWVkaWFfdHlwZV9maWJlcikgew0KPiA+Pj4+ICsJCQlpbnRy LT5mbGFncyB8PSBJWEdCRV9GTEFHX05FRURfTElOS19DT05GSUc7DQo+ID4+Pj4gKwkJCXJ0ZV9l YWxfYWxhcm1fc2V0KDEwLA0KPiA+Pj4+ICsJCQkJaXhnYmVfZGV2X3NldHVwX2xpbmtfYWxhcm1f aGFuZGxlciwgZGV2KTsNCj4gPj4+PiArCQl9DQo+ID4+Pj4gIAkJcmV0dXJuIHJ0ZV9ldGhfbGlu a3N0YXR1c19zZXQoZGV2LCAmbGluayk7DQo+ID4+Pj4gIAl9DQo+ID4+Pj4NCj4gPj4+PiAtCWlu dHItPmZsYWdzICY9IH5JWEdCRV9GTEFHX05FRURfTElOS19DT05GSUc7DQo+ID4+Pj4gIAlsaW5r Lmxpbmtfc3RhdHVzID0gRVRIX0xJTktfVVA7DQo+ID4+Pj4gIAlsaW5rLmxpbmtfZHVwbGV4ID0g RVRIX0xJTktfRlVMTF9EVVBMRVg7DQo+ID4+Pj4NCj4gPj4+PiBAQCAtNTEyOCw2ICs1MTQ3LDgg QEAgaXhnYmV2Zl9kZXZfc3RvcChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gPj4+Pg0KPiA+ Pj4+ICAJUE1EX0lOSVRfRlVOQ19UUkFDRSgpOw0KPiA+Pj4+DQo+ID4+Pj4gKwlydGVfZWFsX2Fs YXJtX2NhbmNlbChpeGdiZV9kZXZfc2V0dXBfbGlua19hbGFybV9oYW5kbGVyLCBkZXYpOw0KPiA+ Pj4+ICsNCj4gPj4+PiAgCWl4Z2JldmZfaW50cl9kaXNhYmxlKGRldik7DQo+ID4+Pj4NCj4gPj4+ PiAgCWh3LT5hZGFwdGVyX3N0b3BwZWQgPSAxOw0KPiA+Pj4+IC0tDQo+ID4+Pj4gMi4xNy4xDQo+ ID4+Pg0K