From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 634321B147 for ; Tue, 8 Jan 2019 11:10:10 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Jan 2019 02:10:09 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,453,1539673200"; d="scan'208";a="132611955" Received: from kmsmsx152.gar.corp.intel.com ([172.21.73.87]) by fmsmga002.fm.intel.com with ESMTP; 08 Jan 2019 02:10:07 -0800 Received: from pgsmsx103.gar.corp.intel.com ([169.254.2.6]) by KMSMSX152.gar.corp.intel.com ([169.254.11.185]) with mapi id 14.03.0415.000; Tue, 8 Jan 2019 18:10:06 +0800 From: "Zhao1, Wei" To: "Meunier, Julien (Nokia - FR/Paris-Saclay)" , "Zhang, Qi Z" , "Ananyev, Konstantin" , "Lu, Wenzhuo" CC: "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH] net/ixgbe: add support of loopback for X540/X550 Thread-Index: AQHUorR4t2DMOQjamk2U0ZFglDInCaWi3++AgACWuoCAAbIM0A== Date: Tue, 8 Jan 2019 10:10:05 +0000 Message-ID: References: <20190102160055.30301-1-julien.meunier@nokia.com> <039ED4275CED7440929022BC67E70611533167EC@SHSMSX103.ccr.corp.intel.com> <6b2efbe0-94dc-750d-8a4f-b98d3f909260@nokia.com> In-Reply-To: <6b2efbe0-94dc-750d-8a4f-b98d3f909260@nokia.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: add support of loopback for X540/X550 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: Tue, 08 Jan 2019 10:10:11 -0000 SGksICBNZXVuaWVyLCBKdWxpZW4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBG cm9tOiBkZXYgW21haWx0bzpkZXYtYm91bmNlc0BkcGRrLm9yZ10gT24gQmVoYWxmIE9mIE1ldW5p ZXIsIEp1bGllbg0KPiAoTm9raWEgLSBGUi9QYXJpcy1TYWNsYXkpDQo+IFNlbnQ6IE1vbmRheSwg SmFudWFyeSA3LCAyMDE5IDExOjUzIFBNDQo+IFRvOiBaaGFuZywgUWkgWiA8cWkuei56aGFuZ0Bp bnRlbC5jb20+OyBBbmFueWV2LCBLb25zdGFudGluDQo+IDxrb25zdGFudGluLmFuYW55ZXZAaW50 ZWwuY29tPjsgTHUsIFdlbnpodW8gPHdlbnpodW8ubHVAaW50ZWwuY29tPg0KPiBDYzogZGV2QGRw ZGsub3JnDQo+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSF0gbmV0L2l4Z2JlOiBhZGQg c3VwcG9ydCBvZiBsb29wYmFjayBmb3INCj4gWDU0MC9YNTUwDQo+IA0KPiBIaSwNCj4gDQo+IE1t bSwgeW91J3JlIHJpZ2h0LiBIb3dldmVyLCBhcyBsaWtlIGZvciB0aGUgODI1OTksIHRoZSBwbWQg c2tpcHMgdGhlIGxpbmsNCj4gY29uZmlndXJhdGlvbiwgc28sIGl0IHNob3VsZCBub3QgZW5hYmxl IHRoZSBhdXRvbmVnLg0KPiANCj4gRHVyaW5nIG15IHRlc3RzLCBJIGhhZCBhIDEwRyBjb25uZWN0 aXZpdHksIGFuZCBJIGRpZG4ndCBub3RpY2UgYW55IHByb2JsZW0uIEkNCj4gdXNlZCB0aGUgRFBE SyBhcHBsaWNhdGlvbiAidGVzdCIsIHdpdGggdGhlIHRlc3QgcG1kX3BlcmZfYXV0b3Rlc3QuDQoN Ckl0IHNlZW1zIHlvdSBhcmUgcmlnaHQsIGF1dG9uZWcgaXMgZG9uZSBpbiBmdW5jdGlvbiBvZiBp eGdiZV9zZXR1cF9saW5rKCktPi4uLi4uLi4uICgpDQp3aGljaCBjYWxsIGZ1bmN0aW9uICBpeGdi ZV9zZXR1cF9waHlfbGlua19zcGVlZF9nZW5lcmljKCktPml4Z2JlX3NldHVwX3BoeV9saW5rICgp LT4NCml4Z2JlX3NldHVwX3BoeV9saW5rX2dlbmVyaWMgKCksICBkbyB0aGUgd29yayBmb3IgQXV0 by1OZWdvdGlhdGlvbiwgIGJ1dCBwbWQgY29kZSBza2lwIGl0Lg0KQnV0IHRoZSBiaXQgQyBvZiBB ZGRyZXNzIDcuMCBpcyBpbml0aWFsaXplZCBhcyAxIGJ5IGRlZmF1bHQgaW4gZGF0YXNoZWV0LCAg d2hhdCBwbWQgY29kZSBza2lwIGlzIGp1c3QgdGhlIA0KUHJvY2VzcyBvZiBBdXRvLU5lZ290aWF0 aW9uLCBiZWNhdXNlIHdlIHNraXAgY29kZSBvZiBiZWxsb3cgSW4gaXhnYmVfc2V0dXBfcGh5X2xp bmtfZ2VuZXJpYyAoKSwgbm90IGRpc2FibGUgYml0IDcuMC5jLg0KU28sIHlvdSBoYWQgYmV0dGVy IGRpc2FibGUgNy4wLmMgYml0IHdoZW4gbWFjIGxvb3BiYWNrIGlzIGVuYWJsZS4NCg0KIg0KCS8q IFJlc3RhcnQgUEhZIGF1dG8tbmVnb3RpYXRpb24uICovDQoJaHctPnBoeS5vcHMucmVhZF9yZWco aHcsIElYR0JFX01ESU9fQVVUT19ORUdfQ09OVFJPTCwNCgkJCSAgICAgSVhHQkVfTURJT19BVVRP X05FR19ERVZfVFlQRSwgJmF1dG9uZWdfcmVnKTsNCg0KCWF1dG9uZWdfcmVnIHw9IElYR0JFX01J SV9SRVNUQVJUOw0KDQoJaHctPnBoeS5vcHMud3JpdGVfcmVnKGh3LCBJWEdCRV9NRElPX0FVVE9f TkVHX0NPTlRST0wsDQoJCQkgICAgICBJWEdCRV9NRElPX0FVVE9fTkVHX0RFVl9UWVBFLCBhdXRv bmVnX3JlZyk7DQoiDQoNCg0KPiANCj4gU2hvdWxkIEkgbmVlZCB0byBtb2RpZnkgbXkgY29kZSB0 byBiZSBzdXJlIHRoYXQgYXV0b25lZyBpcyBkaXNhYmxlZCAoYW5kDQo+IGZvcmNlIGl0IHRvIDEw RykgPw0KPiANCj4gVGhhbmtzLA0KPiBCZXN0IHJlZ2FyZHMsDQo+IEp1bGllbiBNZXVuaWVyDQo+ IA0KPiBPbiAwNy8wMS8yMDE5IDA3OjUzLCBaaGFuZywgUWkgWiB3cm90ZToNCj4gPg0KPiA+DQo+ ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4+IEZyb206IGRldiBbbWFpbHRvOmRl di1ib3VuY2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2YgSnVsaWVuIE1ldW5pZXINCj4gPj4gU2Vu dDogVGh1cnNkYXksIEphbnVhcnkgMywgMjAxOSAxMjowMSBBTQ0KPiA+PiBUbzogQW5hbnlldiwg S29uc3RhbnRpbiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT47IEx1LCBXZW56aHVvDQo+ ID4+IDx3ZW56aHVvLmx1QGludGVsLmNvbT4NCj4gPj4gQ2M6IGRldkBkcGRrLm9yZw0KPiA+PiBT dWJqZWN0OiBbZHBkay1kZXZdIFtQQVRDSF0gbmV0L2l4Z2JlOiBhZGQgc3VwcG9ydCBvZiBsb29w YmFjayBmb3INCj4gPj4gWDU0MC9YNTUwDQo+ID4+DQo+ID4+IExvb3BiYWNrIG1vZGUgaXMgYWxz byBzdXBwb3J0ZWQgb24gWDU0MCBhbmQgWDU1MCBOSUNzLCBhY2NvcmRpbmcgdG8NCj4gPj4gdGhl aXIgZGF0YXNoZWV0IChzZWN0aW9uIDE1LjIpLiBUaGUgd2F5IHRvIHNldCBpdCB1cCBpcyBhIGxp dHRsZSBkaWZmZXJlbnQgb2YNCj4gdGhlIDgyNTk5Lg0KPiA+DQo+ID4gVGhhbmtzIGZvciBlbmFi bGUgdGhpcy4NCj4gPg0KPiA+IG9uZSBxdWVzdGlvbiBpcywgRGF0YXNoZWV0IGFsc28gbWVudGlv bmVkIHRoYXQgYXV0byBuZWdvdGlhdGlvbiBzaG91bGQNCj4gPiBiZSBkaXNhYmxlZCBidXQgSSBk aWRuJ3Qgc2VlIGFueSByZWxhdGVkIGNoYW5nZSB3aXRoIGl0Lg0KPiA+DQo+ID4gV291bGQgeW91 IHNoYXJlIG1vcmUgaW5zaWdodCBvbiB0aGlzPw0KPiA+DQo+ID4+DQo+ID4+IFNpZ25lZC1vZmYt Ynk6IEp1bGllbiBNZXVuaWVyIDxqdWxpZW4ubWV1bmllckBub2tpYS5jb20+DQo+ID4+IC0tLQ0K PiA+PiAgIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5jIHwgMTAgKysrKysrLS0tDQo+ ID4+IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5oIHwgIDUgKystLS0NCj4gPj4gICBk cml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4LmMgICB8IDQ3DQo+ID4+ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0NCj4gPj4gICAzIGZpbGVzIGNoYW5nZWQsIDQ5IGlu c2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQ0KPiA+Pg0KPiA+PiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmMNCj4gPj4gYi9kcml2ZXJzL25ldC9peGdiZS9p eGdiZV9ldGhkZXYuYw0KPiA+PiBpbmRleCA3NDkzMTEwLi43ZWIzMzAzIDEwMDY0NA0KPiA+PiAt LS0gYS9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYw0KPiA+PiArKysgYi9kcml2ZXJz L25ldC9peGdiZS9peGdiZV9ldGhkZXYuYw0KPiA+PiBAQCAtMjY1Miw5ICsyNjUyLDEzIEBAIGl4 Z2JlX2Rldl9zdGFydChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gPj4gICAJCWdvdG8gZXJy b3I7DQo+ID4+ICAgCX0NCj4gPj4NCj4gPj4gLQkvKiBTa2lwIGxpbmsgc2V0dXAgaWYgbG9vcGJh Y2sgbW9kZSBpcyBlbmFibGVkIGZvciA4MjU5OS4gKi8NCj4gPj4gLQlpZiAoaHctPm1hYy50eXBl ID09IGl4Z2JlX21hY184MjU5OUVCICYmDQo+ID4+IC0JCQlkZXYtPmRhdGEtPmRldl9jb25mLmxw YmtfbW9kZSA9PQ0KPiBJWEdCRV9MUEJLXzgyNTk5X1RYX1JYKQ0KPiA+PiArCS8qIFNraXAgbGlu ayBzZXR1cCBpZiBsb29wYmFjayBtb2RlIGlzIGVuYWJsZWQuICovDQo+ID4+ICsJaWYgKChody0+ bWFjLnR5cGUgPT0gaXhnYmVfbWFjXzgyNTk5RUIgfHwNCj4gPj4gKwkgICAgIGh3LT5tYWMudHlw ZSA9PSBpeGdiZV9tYWNfWDU0MCB8fA0KPiA+PiArCSAgICAgaHctPm1hYy50eXBlID09IGl4Z2Jl X21hY19YNTUwIHx8DQo+ID4+ICsJICAgICBody0+bWFjLnR5cGUgPT0gaXhnYmVfbWFjX1g1NTBF TV94IHx8DQo+ID4+ICsJICAgICBody0+bWFjLnR5cGUgPT0gaXhnYmVfbWFjX1g1NTBFTV9hKSAm Jg0KPiA+PiArCQkJZGV2LT5kYXRhLT5kZXZfY29uZi5scGJrX21vZGUgPT0NCj4gSVhHQkVfTFBC S19UWF9SWCkNCj4gPj4gICAJCWdvdG8gc2tpcF9saW5rX3NldHVwOw0KPiA+Pg0KPiA+PiAgIAlp ZiAoaXhnYmVfaXNfc2ZwKGh3KSAmJiBody0+cGh5Lm11bHRpc3BlZWRfZmliZXIpIHsgZGlmZiAt LWdpdA0KPiA+PiBhL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5oDQo+IGIvZHJpdmVy cy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmgNCj4gPj4gaW5kZXggNTY1YzY5Yy4uYzYwYTY5NyAx MDA2NDQNCj4gPj4gLS0tIGEvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmgNCj4gPj4g KysrIGIvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmgNCj4gPj4gQEAgLTY1LDkgKzY1 LDggQEANCj4gPj4gICAjZGVmaW5lIElYR0JFX1FVRVVFX0lUUl9JTlRFUlZBTF9ERUZBVUxUCTUw MCAvKiA1MDB1cyAqLw0KPiA+Pg0KPiA+PiAgIC8qIExvb3BiYWNrIG9wZXJhdGlvbiBtb2RlcyAq Lw0KPiA+PiAtLyogODI1OTkgc3BlY2lmaWMgbG9vcGJhY2sgb3BlcmF0aW9uIHR5cGVzICovDQo+ ID4+IC0jZGVmaW5lIElYR0JFX0xQQktfODI1OTlfTk9ORSAgIDB4MCAvKiBEZWZhdWx0IHZhbHVl LiBMb29wYmFjayBpcw0KPiBkaXNhYmxlZC4NCj4gPj4gKi8NCj4gPj4gLSNkZWZpbmUgSVhHQkVf TFBCS184MjU5OV9UWF9SWCAgMHgxIC8qIFR4LT5SeCBsb29wYmFjayBvcGVyYXRpb24gaXMNCj4g Pj4gZW5hYmxlZC4gKi8NCj4gPj4gKyNkZWZpbmUgSVhHQkVfTFBCS19OT05FICAgMHgwIC8qIERl ZmF1bHQgdmFsdWUuIExvb3BiYWNrIGlzIGRpc2FibGVkLg0KPiAqLw0KPiA+PiArI2RlZmluZSBJ WEdCRV9MUEJLX1RYX1JYICAweDEgLyogVHgtPlJ4IGxvb3BiYWNrIG9wZXJhdGlvbiBpcw0KPiBl bmFibGVkLg0KPiA+PiArKi8NCj4gPj4NCj4gPj4gICAjZGVmaW5lIElYR0JFX01BWF9KVU1CT19G UkFNRV9TSVpFICAgICAgMHgyNjAwIC8qIE1heGltdW0NCj4gSnVtYm8NCj4gPj4gZnJhbWUgc2l6 ZS4gKi8NCj4gPj4NCj4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4 dHguYw0KPiA+PiBiL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYyBpbmRleCA5YTc5ZDE4 Li4wZWY3ZmRmIDEwMDY0NA0KPiA+PiAtLS0gYS9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9yeHR4 LmMNCj4gPj4gKysrIGIvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5jDQo+ID4+IEBAIC00 ODc5LDEwICs0ODc5LDE0IEBAIGl4Z2JlX2Rldl9yeF9pbml0KHN0cnVjdCBydGVfZXRoX2RldiAq ZGV2KQ0KPiA+PiAgIAkJaGxyZWcwICY9IH5JWEdCRV9ITFJFRzBfSlVNQk9FTjsNCj4gPj4NCj4g Pj4gICAJLyoNCj4gPj4gLQkgKiBJZiBsb29wYmFjayBtb2RlIGlzIGNvbmZpZ3VyZWQgZm9yIDgy NTk5LCBzZXQgTFBCSyBiaXQuDQo+ID4+ICsJICogSWYgbG9vcGJhY2sgbW9kZSBpcyBjb25maWd1 cmVkLCBzZXQgTFBCSyBiaXQuDQo+ID4+ICAgCSAqLw0KPiA+PiAtCWlmIChody0+bWFjLnR5cGUg PT0gaXhnYmVfbWFjXzgyNTk5RUIgJiYNCj4gPj4gLQkJCWRldi0+ZGF0YS0+ZGV2X2NvbmYubHBi a19tb2RlID09DQo+IElYR0JFX0xQQktfODI1OTlfVFhfUlgpDQo+ID4+ICsJaWYgKChody0+bWFj LnR5cGUgPT0gaXhnYmVfbWFjXzgyNTk5RUIgfHwNCj4gPj4gKwkgICAgIGh3LT5tYWMudHlwZSA9 PSBpeGdiZV9tYWNfWDU0MCB8fA0KPiA+PiArCSAgICAgaHctPm1hYy50eXBlID09IGl4Z2JlX21h Y19YNTUwIHx8DQo+ID4+ICsJICAgICBody0+bWFjLnR5cGUgPT0gaXhnYmVfbWFjX1g1NTBFTV94 IHx8DQo+ID4+ICsJICAgICBody0+bWFjLnR5cGUgPT0gaXhnYmVfbWFjX1g1NTBFTV9hKSAmJg0K PiA+PiArCQkJZGV2LT5kYXRhLT5kZXZfY29uZi5scGJrX21vZGUgPT0NCj4gSVhHQkVfTFBCS19U WF9SWCkNCj4gPj4gICAJCWhscmVnMCB8PSBJWEdCRV9ITFJFRzBfTFBCSzsNCj4gPj4gICAJZWxz ZQ0KPiA+PiAgIAkJaGxyZWcwICY9IH5JWEdCRV9ITFJFRzBfTFBCSzsNCj4gPj4gQEAgLTUwODgs NiArNTA5MiwyOSBAQCBpeGdiZV9zZXR1cF9sb29wYmFja19saW5rXzgyNTk5KHN0cnVjdA0KPiA+ PiBpeGdiZV9odw0KPiA+PiAqaHcpDQo+ID4+ICAgCW1zZWNfZGVsYXkoNTApOw0KPiA+PiAgIH0N Cj4gPj4NCj4gPj4gKy8qDQo+ID4+ICsgKiBTZXQgdXAgbGluayBsb29wYmFjayBmb3IgWDU0MCAv IFg1NTAgbW9kZSBUeC0+UnguDQo+ID4+ICsgKi8NCj4gPj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBf X2F0dHJpYnV0ZV9fKChjb2xkKSkNCj4gPj4gK2l4Z2JlX3NldHVwX2xvb3BiYWNrX2xpbmtfeDU0 MF94NTUwKHN0cnVjdCBpeGdiZV9odyAqaHcpIHsNCj4gPj4gKwl1aW50MzJfdCBtYWNjOw0KPiA+ PiArCVBNRF9JTklUX0ZVTkNfVFJBQ0UoKTsNCj4gPj4gKw0KPiA+PiArCS8qIGRhdGFzaGVldCAx NS4yLjE6IE1BQ0MuRkxVID0gMSAoZm9yY2UgbGluayB1cCkgKi8NCj4gPj4gKwltYWNjID0gSVhH QkVfUkVBRF9SRUcoaHcsIElYR0JFX01BQ0MpOw0KPiA+PiArCW1hY2MgfD0gSVhHQkVfTUFDQ19G TFU7DQo+ID4+ICsJSVhHQkVfV1JJVEVfUkVHKGh3LCBJWEdCRV9NQUNDLCBtYWNjKTsNCj4gPj4g Kw0KPiA+PiArCS8qIFJlc3RhcnQgbGluayAqLw0KPiA+PiArCUlYR0JFX1dSSVRFX1JFRyhodywN Cj4gPj4gKwkJCUlYR0JFX0FVVE9DLA0KPiA+PiArCQkJSVhHQkVfQVVUT0NfTE1TXzEwR19MSU5L X05PX0FOIHwNCj4gSVhHQkVfQVVUT0NfRkxVKTsNCj4gPj4gKw0KPiA+PiArCWh3LT5tYWMub3Bz LnJlbGVhc2Vfc3dmd19zeW5jKGh3LCBJWEdCRV9HU1NSX01BQ19DU1JfU00pOw0KPiA+PiArCW1z ZWNfZGVsYXkoNTApOw0KPiA+PiArfQ0KPiA+PiArDQo+ID4+DQo+ID4+ICAgLyoNCj4gPj4gICAg KiBTdGFydCBUcmFuc21pdCBhbmQgUmVjZWl2ZSBVbml0cy4NCj4gPj4gQEAgLTUxNDgsMTAgKzUx NzUsMTYgQEAgaXhnYmVfZGV2X3J4dHhfc3RhcnQoc3RydWN0IHJ0ZV9ldGhfZGV2DQo+ICpkZXYp DQo+ID4+ICAgCXJ4Y3RybCB8PSBJWEdCRV9SWENUUkxfUlhFTjsNCj4gPj4gICAJaHctPm1hYy5v cHMuZW5hYmxlX3J4X2RtYShodywgcnhjdHJsKTsNCj4gPj4NCj4gPj4gLQkvKiBJZiBsb29wYmFj ayBtb2RlIGlzIGVuYWJsZWQgZm9yIDgyNTk5LCBzZXQgdXAgdGhlIGxpbmsgYWNjb3JkaW5nbHkN Cj4gKi8NCj4gPj4gLQlpZiAoaHctPm1hYy50eXBlID09IGl4Z2JlX21hY184MjU5OUVCICYmDQo+ ID4+IC0JCQlkZXYtPmRhdGEtPmRldl9jb25mLmxwYmtfbW9kZSA9PQ0KPiBJWEdCRV9MUEJLXzgy NTk5X1RYX1JYKQ0KPiA+PiAtCQlpeGdiZV9zZXR1cF9sb29wYmFja19saW5rXzgyNTk5KGh3KTsN Cj4gPj4gKwkvKiBJZiBsb29wYmFjayBtb2RlIGlzIGVuYWJsZWQsIHNldCB1cCB0aGUgbGluayBh Y2NvcmRpbmdseSAqLw0KPiA+PiArCWlmIChkZXYtPmRhdGEtPmRldl9jb25mLmxwYmtfbW9kZSA9 PSBJWEdCRV9MUEJLX1RYX1JYKSB7DQo+ID4+ICsJCWlmIChody0+bWFjLnR5cGUgPT0gaXhnYmVf bWFjXzgyNTk5RUIpDQo+ID4+ICsJCQlpeGdiZV9zZXR1cF9sb29wYmFja19saW5rXzgyNTk5KGh3 KTsNCj4gPj4gKwkJZWxzZSBpZiAoaHctPm1hYy50eXBlID09IGl4Z2JlX21hY19YNTQwIHx8DQo+ ID4+ICsJCSAgICAgaHctPm1hYy50eXBlID09IGl4Z2JlX21hY19YNTUwIHx8DQo+ID4+ICsJCSAg ICAgaHctPm1hYy50eXBlID09IGl4Z2JlX21hY19YNTUwRU1feCB8fA0KPiA+PiArCQkgICAgIGh3 LT5tYWMudHlwZSA9PSBpeGdiZV9tYWNfWDU1MEVNX2EpDQo+ID4+ICsJCQlpeGdiZV9zZXR1cF9s b29wYmFja19saW5rX3g1NDBfeDU1MChodyk7DQo+ID4+ICsJfQ0KPiA+Pg0KPiA+PiAgICNpZmRl ZiBSVEVfTElCUlRFX1NFQ1VSSVRZDQo+ID4+ICAgCWlmICgoZGV2LT5kYXRhLT5kZXZfY29uZi5y eG1vZGUub2ZmbG9hZHMgJg0KPiA+PiAtLQ0KPiA+PiAyLjEwLjINCj4gPg0K