From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id CCA2C1B19; Wed, 12 Sep 2018 08:50:01 +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 orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 11 Sep 2018 23:50:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.53,363,1531810800"; d="scan'208";a="79798180" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by FMSMGA003.fm.intel.com with ESMTP; 11 Sep 2018 23:50:00 -0700 Received: from fmsmsx102.amr.corp.intel.com (10.18.124.200) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 11 Sep 2018 23:50:00 -0700 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by FMSMSX102.amr.corp.intel.com (10.18.124.200) with Microsoft SMTP Server (TLS) id 14.3.319.2; Tue, 11 Sep 2018 23:49:59 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.240]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.150]) with mapi id 14.03.0319.002; Wed, 12 Sep 2018 14:49:32 +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 Date: Wed, 12 Sep 2018 06:49:32 +0000 Message-ID: <039ED4275CED7440929022BC67E7061153284304@SHSMSX103.ccr.corp.intel.com> References: <20180831123824eucas1p1cd2981c716c4764703e24c3eeb4d33c7~P_GOOSRuf0867908679eucas1p1K@eucas1p1.samsung.com> <039ED4275CED7440929022BC67E706115327FA5E@SHSMSX103.ccr.corp.intel.com> <20180910150708eucas1p220c16857c4277b311ddc000b9337d9cb~TEk8KngQJ1365413654eucas1p2a@eucas1p2.samsung.com> In-Reply-To: <20180910150708eucas1p220c16857c4277b311ddc000b9337d9cb~TEk8KngQJ1365413654eucas1p2a@eucas1p2.samsung.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYTc3MjhkMjYtMjc3MC00YmRjLTk4NDctODMyNDVhZmQ4OTIwIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiODkzZWUya21QNllCdEJSVGZTcm1FbTRCWlduY1BkREx4K0dJaFpiS0JNRmlGQlZJdE03cFlDZWpDbFdZcEdXMCJ9 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 06:50:02 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogSWx5YSBNYXhpbWV0cyBb bWFpbHRvOmkubWF4aW1ldHNAc2Ftc3VuZy5jb21dDQo+IFNlbnQ6IE1vbmRheSwgU2VwdGVtYmVy IDEwLCAyMDE4IDExOjA5IFBNDQo+IFRvOiBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0BpbnRlbC5j b20+OyBkZXZAZHBkay5vcmcNCj4gQ2M6IEx1LCBXZW56aHVvIDx3ZW56aHVvLmx1QGludGVsLmNv bT47IEFuYW55ZXYsIEtvbnN0YW50aW4NCj4gPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+ OyBMYXVyZW50IEhhcmR5DQo+IDxsYXVyZW50LmhhcmR5QDZ3aW5kLmNvbT47IERhaSwgV2VpIDx3 ZWkuZGFpQGludGVsLmNvbT47DQo+IHN0YWJsZUBkcGRrLm9yZw0KPiBTdWJqZWN0OiBSZTogW2Rw ZGstZGV2XSBbUEFUQ0hdIG5ldC9peGdiZTogZml4IGJ1c3kgcG9sbGluZyB3aGlsZSBmaWJlciBs aW5rDQo+IHVwZGF0ZQ0KPiANCj4gT24gMDQuMDkuMjAxOCAwOTowOCwgWmhhbmcsIFFpIFogd3Jv dGU6DQo+ID4gSGkgSWx5YToNCj4gPg0KPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0K PiA+PiBGcm9tOiBkZXYgW21haWx0bzpkZXYtYm91bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxmIE9m IElseWEgTWF4aW1ldHMNCj4gPj4gU2VudDogRnJpZGF5LCBBdWd1c3QgMzEsIDIwMTggODo0MCBQ TQ0KPiA+PiBUbzogZGV2QGRwZGsub3JnDQo+ID4+IENjOiBMdSwgV2Vuemh1byA8d2Vuemh1by5s dUBpbnRlbC5jb20+OyBBbmFueWV2LCBLb25zdGFudGluDQo+ID4+IDxrb25zdGFudGluLmFuYW55 ZXZAaW50ZWwuY29tPjsgTGF1cmVudCBIYXJkeQ0KPiA+PiA8bGF1cmVudC5oYXJkeUA2d2luZC5j b20+OyBEYWksIFdlaSA8d2VpLmRhaUBpbnRlbC5jb20+OyBJbHlhDQo+ID4+IE1heGltZXRzIDxp Lm1heGltZXRzQHNhbXN1bmcuY29tPjsgc3RhYmxlQGRwZGsub3JnDQo+ID4+IFN1YmplY3Q6IFtk cGRrLWRldl0gW1BBVENIXSBuZXQvaXhnYmU6IGZpeCBidXN5IHBvbGxpbmcgd2hpbGUgZmliZXIN Cj4gPj4gbGluayB1cGRhdGUNCj4gPj4NCj4gPj4gSWYgdGhlIG11bHRpc3BlZWQgZmliZXIgbGlu ayBpcyBpbiBET1dOIHN0YXRlLCBpeGdiZV9zZXR1cF9saW5rIGNvdWxkDQo+ID4+IHRha2UgYXJv dW5kIGEgc2Vjb25kIG9mIGJ1c3kgcG9sbGluZy4gVGhpcyBpcyBoaWdobHkgaW5jb252ZW5pZW50 IGZvcg0KPiA+PiB0aGUgY2FzZSB3aGVyZSBzaW5nbGUgdGhyZWFkIHBlcmlvZGljYWxseSBjaGVj a3MgdGhlIGxpbmsgc3RhdHVzZXMuDQo+ID4+IEZvciBleGFtcGxlLCBPVlMgbWFpbiB0aHJlYWQg cGVyaW9kaWNhbGx5IHVwZGF0ZXMgdGhlIGxpbmsgc3RhdHVzZXMNCj4gPj4gYW5kIGhhbmdzIGZv ciBhIHJlYWxseSBsb25nIHRpbWUgYnVzeSB3YWl0aW5nIG9uIGl4Z2JlX3NldHVwX2xpbmsoKQ0K PiA+PiBmb3IgYSBET1dOIGZpYmVyIHBvcnRzLiBGb3IgY2FzZSB3aXRoIDMgZG93biBwb3J0cyBp dCBoYW5ncyBmb3IgYSAzDQo+ID4+IHNlY29uZHMgYW5kIHVuYWJsZSB0byBkbyBhbnl0aGluZyBp bmNsdWRpbmcgcGFja2V0IHByb2Nlc3NpbmcuDQo+ID4+IEZpeCB0aGF0IGJ5IHNoaWZ0aW5nIHRo YXQgd29ya2Fyb3VuZCB0byBhIHNlcGFyYXRlIHRocmVhZCBieSBhbGFybQ0KPiA+PiBoYW5kbGVy IHRoYXQgd2lsbCB0cnkgdG8gc2V0IHVwIGxpbmsgaWYgaXQgaXMgRE9XTi4NCj4gPg0KPiA+IERv ZXMgdGhhdCBtZWFuIHdlIHdpbGwgYmxvY2sgdGhlIGludGVycnVwdCB0aHJlYWQgZm9yIDMgc2Vj b25kcz8NCj4gDQo+IFRocmVlIHRpbWVzIGZvciBvbmUgc2Vjb25kLiBPdGhlciB3b3JrIGNvdWxk IGJlIHNjaGVkdWxlZCBiZXR3ZWVuLg0KPiBJTUhPLCBpdCdzIG11Y2ggYmV0dGVyIHRoYW4gYmxv Y2tpbmcgdXN1YWwgY2FsbGVyIGZvciAzIHNlY29uZHMuDQo+IA0KPiA+IEFsc28sIGNhbiB3ZSBn dWFyYW50ZWUgdGhlcmUgd2lsbCBub3QgYmUgYW55IHJhY2UgY29uZGl0aW9uIGlmIHdlIGNhbGwN Cj4gaXhnYmVfc2V0dXBfbGluayBhdCBhbm90aGVyIHRocmVhZCwgdGhlIGJhc2UgY29kZSBBUEkg aXMgbm90IGFzc3VtZWQgdG8gYmUNCj4gdGhyZWFkLXNhZmUgYXMgSSBrbm93Lg0KPiANCj4gVGhl IG9ubHkgdXNlciBvZiAnaXhnYmVfc2V0dXBfbGluaycgaXMgJ2l4Z2JlX2Rldl9zdGFydCcsIGJ1 dCBpdCBjb3VsZCBiZSBjYWxsZWQNCj4gb25seSBpZiBkZXZpY2Ugc3RvcHBlZC4gJ2l4Z2JlX2Rl dl9zdG9wJyBjYW5jZWxzIHRoZSBhbGFybS4NCj4gUmFjZSB3aXRoICdsaW5rX3VwZGF0ZScgYXZv aWRlZCBieSAnSVhHQkVfRkxBR19ORUVEX0xJTktfQ09ORklHJyBmbGFnLg0KDQpJIGd1ZXNzLCBp dCcgbm90IG9ubHkgYWJvdXQgd2hlbiBpeGdiX3NldHVwX2xpbmsgcmFjZSB3aXRoIGl0c2VsZiwg YnV0IGFsc28gd2hlbiBpdCByYWNlIHdpdGggb3RoZXIgQVBJcy4NCkFsc28gdGhlIGNvbmNlcm4g aXMsIGV2ZW4gaW4gY3VycmVudCB2ZXJzaW9uLCB3ZSBjYW4gcHJvdmUgdGhlcmUgaXMgbm8gaXNz dWUsIGhvdyBjYW4gd2UgZ3VhcmFudGVlIHdlIGFyZSBzYWZlIGZvciBmdXR1cmUgYmFzZSBjb2Rl IHVwZGF0ZT8gSXQncyBub3QgZGVzaWduZWQgYXMgdGhyZWFkLXNhZmUuDQpGb3IgbXkgb3B0aW9u LCB0aGUgY2hhbmdlIGlzIHJpc2t5Lg0KDQpCdHcsIHNpbmNlIGl4Z2JlIHN1cHBvcnQgTFNDLCBp dCBpcyBub3QgbmVjZXNzYXJ5IGZvciAic2luZ2xlIHRocmVhZCBwZXJpb2RpY2FsbHkgY2hlY2tz IHRoZSBsaW5rIHN0YXR1c2VzIiwgcmlnaHQ/DQoNCj4gDQo+ID4NCj4gPiBSZWdhcmRzDQo+ID4g UWkNCj4gPg0KPiA+Pg0KPiA+PiBGaXhlczogYzEyZDIyZjY1YjEzICgibmV0L2l4Z2JlOiBlbnN1 cmUgbGluayBzdGF0dXMgaXMgdXBkYXRlZCIpDQo+ID4+IENDOiBzdGFibGVAZHBkay5vcmcNCj4g Pj4NCj4gPj4gU2lnbmVkLW9mZi1ieTogSWx5YSBNYXhpbWV0cyA8aS5tYXhpbWV0c0BzYW1zdW5n LmNvbT4NCj4gPj4gLS0tDQo+ID4+ICBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYyB8 IDQzDQo+ID4+ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tDQo+ID4+ICAxIGZpbGUg Y2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pDQo+ID4+DQo+ID4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYw0KPiA+PiBiL2RyaXZl cnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5jDQo+ID4+IGluZGV4IDI2YjE5MjczNy4uYTMzYjlh NmU4IDEwMDY0NA0KPiA+PiAtLS0gYS9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYw0K PiA+PiArKysgYi9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYw0KPiA+PiBAQCAtMjIx LDYgKzIyMSw4IEBAIHN0YXRpYyBpbnQgaXhnYmVfZGV2X2ludGVycnVwdF9hY3Rpb24oc3RydWN0 DQo+ID4+IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4+ICAJCQkJICAgICAgc3RydWN0IHJ0ZV9pbnRy X2hhbmRsZSAqaGFuZGxlKTsgIHN0YXRpYyB2b2lkDQo+ID4+IGl4Z2JlX2Rldl9pbnRlcnJ1cHRf aGFuZGxlcih2b2lkICpwYXJhbSk7ICBzdGF0aWMgdm9pZA0KPiA+PiBpeGdiZV9kZXZfaW50ZXJy dXB0X2RlbGF5ZWRfaGFuZGxlcih2b2lkICpwYXJhbSk7DQo+ID4+ICtzdGF0aWMgdm9pZCBpeGdi ZV9kZXZfc2V0dXBfbGlua19hbGFybV9oYW5kbGVyKHZvaWQgKnBhcmFtKTsNCj4gPj4gKw0KPiA+ PiAgc3RhdGljIGludCBpeGdiZV9hZGRfcmFyKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCBzdHJ1 Y3QgZXRoZXJfYWRkcg0KPiA+PiAqbWFjX2FkZHIsDQo+ID4+ICAJCQkgdWludDMyX3QgaW5kZXgs IHVpbnQzMl90IHBvb2wpOw0KPiA+PiAgc3RhdGljIHZvaWQgaXhnYmVfcmVtb3ZlX3JhcihzdHJ1 Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDMyX3QNCj4gPj4gaW5kZXgpOyBAQA0KPiA+PiAtMjc5 MSw2ICsyNzkzLDggQEAgaXhnYmVfZGV2X3N0b3Aoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQo+ ID4+DQo+ID4+ICAJUE1EX0lOSVRfRlVOQ19UUkFDRSgpOw0KPiA+Pg0KPiA+PiArCXJ0ZV9lYWxf YWxhcm1fY2FuY2VsKGl4Z2JlX2Rldl9zZXR1cF9saW5rX2FsYXJtX2hhbmRsZXIsIGRldik7DQo+ ID4+ICsNCj4gPj4gIAkvKiBkaXNhYmxlIGludGVycnVwdHMgKi8NCj4gPj4gIAlpeGdiZV9kaXNh YmxlX2ludHIoaHcpOw0KPiA+Pg0KPiA+PiBAQCAtMzk2OSw2ICszOTczLDI1IEBAIGl4Z2JldmZf Y2hlY2tfbGluayhzdHJ1Y3QgaXhnYmVfaHcgKmh3LA0KPiA+PiBpeGdiZV9saW5rX3NwZWVkICpz cGVlZCwNCj4gPj4gIAlyZXR1cm4gcmV0X3ZhbDsNCj4gPj4gIH0NCj4gPj4NCj4gPj4gK3N0YXRp YyB2b2lkDQo+ID4+ICtpeGdiZV9kZXZfc2V0dXBfbGlua19hbGFybV9oYW5kbGVyKHZvaWQgKnBh cmFtKSB7DQo+ID4+ICsJc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYgPSAoc3RydWN0IHJ0ZV9ldGhf ZGV2ICopcGFyYW07DQo+ID4+ICsJc3RydWN0IGl4Z2JlX2h3ICpodyA9DQo+ID4+IElYR0JFX0RF Vl9QUklWQVRFX1RPX0hXKGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOw0KPiA+PiArCXN0cnVjdCBp eGdiZV9pbnRlcnJ1cHQgKmludHIgPQ0KPiA+PiArCQlJWEdCRV9ERVZfUFJJVkFURV9UT19JTlRS KGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGUpOw0KPiA+PiArCXUzMiBzcGVlZDsNCj4gPj4gKwlib29s IGF1dG9uZWcgPSBmYWxzZTsNCj4gPj4gKw0KPiA+PiArCXNwZWVkID0gaHctPnBoeS5hdXRvbmVn X2FkdmVydGlzZWQ7DQo+ID4+ICsJaWYgKCFzcGVlZCkNCj4gPj4gKwkJaXhnYmVfZ2V0X2xpbmtf Y2FwYWJpbGl0aWVzKGh3LCAmc3BlZWQsICZhdXRvbmVnKTsNCj4gPj4gKw0KPiA+PiArCWl4Z2Jl X3NldHVwX2xpbmsoaHcsIHNwZWVkLCB0cnVlKTsNCj4gPj4gKw0KPiA+PiArCWludHItPmZsYWdz ICY9IH5JWEdCRV9GTEFHX05FRURfTElOS19DT05GSUc7IH0NCj4gPj4gKw0KPiA+PiAgLyogcmV0 dXJuIDAgbWVhbnMgbGluayBzdGF0dXMgY2hhbmdlZCwgLTEgbWVhbnMgbm90IGNoYW5nZWQgKi8g IGludA0KPiA+PiBpeGdiZV9kZXZfbGlua191cGRhdGVfc2hhcmUoc3RydWN0IHJ0ZV9ldGhfZGV2 ICpkZXYsIEBAIC0zOTgxLDkNCj4gPj4gKzQwMDQsNyBAQCBpeGdiZV9kZXZfbGlua191cGRhdGVf c2hhcmUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4+ICAJCUlYR0JFX0RFVl9QUklWQVRF X1RPX0lOVFIoZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7DQo+ID4+ICAJaW50IGxpbmtfdXA7DQo+ ID4+ICAJaW50IGRpYWc7DQo+ID4+IC0JdTMyIHNwZWVkID0gMDsNCj4gPj4gIAlpbnQgd2FpdCA9 IDE7DQo+ID4+IC0JYm9vbCBhdXRvbmVnID0gZmFsc2U7DQo+ID4+DQo+ID4+ICAJbWVtc2V0KCZs aW5rLCAwLCBzaXplb2YobGluaykpOw0KPiA+PiAgCWxpbmsubGlua19zdGF0dXMgPSBFVEhfTElO S19ET1dOOw0KPiA+PiBAQCAtMzk5MywxMyArNDAxNCw4IEBAIGl4Z2JlX2Rldl9saW5rX3VwZGF0 ZV9zaGFyZShzdHJ1Y3QNCj4gcnRlX2V0aF9kZXYNCj4gPj4gKmRldiwNCj4gPj4NCj4gPj4gIAlo dy0+bWFjLmdldF9saW5rX3N0YXR1cyA9IHRydWU7DQo+ID4+DQo+ID4+IC0JaWYgKChpbnRyLT5m bGFncyAmIElYR0JFX0ZMQUdfTkVFRF9MSU5LX0NPTkZJRykgJiYNCj4gPj4gLQkJaXhnYmVfZ2V0 X21lZGlhX3R5cGUoaHcpID09IGl4Z2JlX21lZGlhX3R5cGVfZmliZXIpIHsNCj4gPj4gLQkJc3Bl ZWQgPSBody0+cGh5LmF1dG9uZWdfYWR2ZXJ0aXNlZDsNCj4gPj4gLQkJaWYgKCFzcGVlZCkNCj4g Pj4gLQkJCWl4Z2JlX2dldF9saW5rX2NhcGFiaWxpdGllcyhodywgJnNwZWVkLCAmYXV0b25lZyk7 DQo+ID4+IC0JCWl4Z2JlX3NldHVwX2xpbmsoaHcsIHNwZWVkLCB0cnVlKTsNCj4gPj4gLQl9DQo+ ID4+ICsJaWYgKGludHItPmZsYWdzICYgSVhHQkVfRkxBR19ORUVEX0xJTktfQ09ORklHKQ0KPiA+ PiArCQlyZXR1cm4gcnRlX2V0aF9saW5rc3RhdHVzX3NldChkZXYsICZsaW5rKTsNCj4gPj4NCj4g Pj4gIAkvKiBjaGVjayBpZiBpdCBuZWVkcyB0byB3YWl0IHRvIGNvbXBsZXRlLCBpZiBsc2MgaW50 ZXJydXB0IGlzIGVuYWJsZWQgKi8NCj4gPj4gIAlpZiAod2FpdF90b19jb21wbGV0ZSA9PSAwIHx8 IGRldi0+ZGF0YS0+ZGV2X2NvbmYuaW50cl9jb25mLmxzYyAhPQ0KPiA+PiAwKSBAQA0KPiA+PiAt NDAxNywxMSArNDAzMywxNCBAQCBpeGdiZV9kZXZfbGlua191cGRhdGVfc2hhcmUoc3RydWN0IHJ0 ZV9ldGhfZGV2DQo+ICpkZXYsDQo+ID4+ICAJfQ0KPiA+Pg0KPiA+PiAgCWlmIChsaW5rX3VwID09 IDApIHsNCj4gPj4gLQkJaW50ci0+ZmxhZ3MgfD0gSVhHQkVfRkxBR19ORUVEX0xJTktfQ09ORklH Ow0KPiA+PiArCQlpZiAoaXhnYmVfZ2V0X21lZGlhX3R5cGUoaHcpID09IGl4Z2JlX21lZGlhX3R5 cGVfZmliZXIpIHsNCj4gPj4gKwkJCWludHItPmZsYWdzIHw9IElYR0JFX0ZMQUdfTkVFRF9MSU5L X0NPTkZJRzsNCj4gPj4gKwkJCXJ0ZV9lYWxfYWxhcm1fc2V0KDEwLA0KPiA+PiArCQkJCWl4Z2Jl X2Rldl9zZXR1cF9saW5rX2FsYXJtX2hhbmRsZXIsIGRldik7DQo+ID4+ICsJCX0NCj4gPj4gIAkJ cmV0dXJuIHJ0ZV9ldGhfbGlua3N0YXR1c19zZXQoZGV2LCAmbGluayk7DQo+ID4+ICAJfQ0KPiA+ Pg0KPiA+PiAtCWludHItPmZsYWdzICY9IH5JWEdCRV9GTEFHX05FRURfTElOS19DT05GSUc7DQo+ ID4+ICAJbGluay5saW5rX3N0YXR1cyA9IEVUSF9MSU5LX1VQOw0KPiA+PiAgCWxpbmsubGlua19k dXBsZXggPSBFVEhfTElOS19GVUxMX0RVUExFWDsNCj4gPj4NCj4gPj4gQEAgLTUxMjgsNiArNTE0 Nyw4IEBAIGl4Z2JldmZfZGV2X3N0b3Aoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQo+ID4+DQo+ ID4+ICAJUE1EX0lOSVRfRlVOQ19UUkFDRSgpOw0KPiA+Pg0KPiA+PiArCXJ0ZV9lYWxfYWxhcm1f Y2FuY2VsKGl4Z2JlX2Rldl9zZXR1cF9saW5rX2FsYXJtX2hhbmRsZXIsIGRldik7DQo+ID4+ICsN Cj4gPj4gIAlpeGdiZXZmX2ludHJfZGlzYWJsZShkZXYpOw0KPiA+Pg0KPiA+PiAgCWh3LT5hZGFw dGVyX3N0b3BwZWQgPSAxOw0KPiA+PiAtLQ0KPiA+PiAyLjE3LjENCj4gPg0K