From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 7201A1B144 for ; Tue, 8 Jan 2019 13:39:11 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Jan 2019 04:39:10 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,454,1539673200"; d="scan'208";a="124318512" Received: from fmsmsx105.amr.corp.intel.com ([10.18.124.203]) by orsmga002.jf.intel.com with ESMTP; 08 Jan 2019 04:39:09 -0800 Received: from fmsmsx114.amr.corp.intel.com (10.18.116.8) by FMSMSX105.amr.corp.intel.com (10.18.124.203) with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 8 Jan 2019 04:39:09 -0800 Received: from shsmsx108.ccr.corp.intel.com (10.239.4.97) by FMSMSX114.amr.corp.intel.com (10.18.116.8) with Microsoft SMTP Server (TLS) id 14.3.408.0; Tue, 8 Jan 2019 04:39:09 -0800 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.150]) by SHSMSX108.ccr.corp.intel.com ([169.254.8.85]) with mapi id 14.03.0415.000; Tue, 8 Jan 2019 20:39:07 +0800 From: "Zhang, Qi Z" To: "Zhao1, Wei" , "Meunier, Julien (Nokia - FR/Paris-Saclay)" , "Ananyev, Konstantin" , "Lu, Wenzhuo" CC: "dev@dpdk.org" Thread-Topic: [dpdk-dev] [PATCH] net/ixgbe: add support of loopback for X540/X550 Thread-Index: AQHUorRw+EcoZrYRZkqgxnEKm2mhi6WjVbtQgAAg7oCAATJ4gIAArUow Date: Tue, 8 Jan 2019 12:39:06 +0000 Message-ID: <039ED4275CED7440929022BC67E7061153317326@SHSMSX103.ccr.corp.intel.com> References: <20190102160055.30301-1-julien.meunier@nokia.com> <039ED4275CED7440929022BC67E70611533167EC@SHSMSX103.ccr.corp.intel.com> <6b2efbe0-94dc-750d-8a4f-b98d3f909260@nokia.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNTJlZjBjZTgtMWE1MC00YTZjLWI5ZmUtMTFiM2RmN2ExODc2IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoib3ZTakthTlMrdlhnTXlIOUp1dXJ4YUUxb0ZSMXpvMktDUHAyUm51ajcxdjRyeERMVUxLNnB2TlZVZzgwRVM3WSJ9 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: 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 12:39:12 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogWmhhbzEsIFdlaQ0KPiBT ZW50OiBUdWVzZGF5LCBKYW51YXJ5IDgsIDIwMTkgNjoxMCBQTQ0KPiBUbzogTWV1bmllciwgSnVs aWVuIChOb2tpYSAtIEZSL1BhcmlzLVNhY2xheSkgPGp1bGllbi5tZXVuaWVyQG5va2lhLmNvbT47 DQo+IFpoYW5nLCBRaSBaIDxxaS56LnpoYW5nQGludGVsLmNvbT47IEFuYW55ZXYsIEtvbnN0YW50 aW4NCj4gPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+OyBMdSwgV2Vuemh1byA8d2Vuemh1 by5sdUBpbnRlbC5jb20+DQo+IENjOiBkZXZAZHBkay5vcmcNCj4gU3ViamVjdDogUkU6IFtkcGRr LWRldl0gW1BBVENIXSBuZXQvaXhnYmU6IGFkZCBzdXBwb3J0IG9mIGxvb3BiYWNrIGZvcg0KPiBY NTQwL1g1NTANCj4gDQo+IEhpLCAgTWV1bmllciwgSnVsaWVuDQo+IA0KPiA+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4gRnJvbTogZGV2IFttYWlsdG86ZGV2LWJvdW5jZXNAZHBkay5v cmddIE9uIEJlaGFsZiBPZiBNZXVuaWVyLCBKdWxpZW4NCj4gPiAoTm9raWEgLSBGUi9QYXJpcy1T YWNsYXkpDQo+ID4gU2VudDogTW9uZGF5LCBKYW51YXJ5IDcsIDIwMTkgMTE6NTMgUE0NCj4gPiBU bzogWmhhbmcsIFFpIFogPHFpLnouemhhbmdAaW50ZWwuY29tPjsgQW5hbnlldiwgS29uc3RhbnRp bg0KPiA+IDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPjsgTHUsIFdlbnpodW8gPHdlbnpo dW8ubHVAaW50ZWwuY29tPg0KPiA+IENjOiBkZXZAZHBkay5vcmcNCj4gPiBTdWJqZWN0OiBSZTog W2RwZGstZGV2XSBbUEFUQ0hdIG5ldC9peGdiZTogYWRkIHN1cHBvcnQgb2YgbG9vcGJhY2sgZm9y DQo+ID4gWDU0MC9YNTUwDQo+ID4NCj4gPiBIaSwNCj4gPg0KPiA+IE1tbSwgeW91J3JlIHJpZ2h0 LiBIb3dldmVyLCBhcyBsaWtlIGZvciB0aGUgODI1OTksIHRoZSBwbWQgc2tpcHMgdGhlDQo+ID4g bGluayBjb25maWd1cmF0aW9uLCBzbywgaXQgc2hvdWxkIG5vdCBlbmFibGUgdGhlIGF1dG9uZWcu DQo+ID4NCj4gPiBEdXJpbmcgbXkgdGVzdHMsIEkgaGFkIGEgMTBHIGNvbm5lY3Rpdml0eSwgYW5k IEkgZGlkbid0IG5vdGljZSBhbnkNCj4gPiBwcm9ibGVtLiBJIHVzZWQgdGhlIERQREsgYXBwbGlj YXRpb24gInRlc3QiLCB3aXRoIHRoZSB0ZXN0IHBtZF9wZXJmX2F1dG90ZXN0Lg0KPiANCj4gSXQg c2VlbXMgeW91IGFyZSByaWdodCwgYXV0b25lZyBpcyBkb25lIGluIGZ1bmN0aW9uIG9mIGl4Z2Jl X3NldHVwX2xpbmsoKS0+Li4uLi4uLi4gKCkNCj4gd2hpY2ggY2FsbCBmdW5jdGlvbg0KPiBpeGdi ZV9zZXR1cF9waHlfbGlua19zcGVlZF9nZW5lcmljKCktPml4Z2JlX3NldHVwX3BoeV9saW5rICgp LT4NCj4gaXhnYmVfc2V0dXBfcGh5X2xpbmtfZ2VuZXJpYyAoKSwgIGRvIHRoZSB3b3JrIGZvciBB dXRvLU5lZ290aWF0aW9uLCAgYnV0IHBtZA0KPiBjb2RlIHNraXAgaXQuDQo+IEJ1dCB0aGUgYml0 IEMgb2YgQWRkcmVzcyA3LjAgaXMgaW5pdGlhbGl6ZWQgYXMgMSBieSBkZWZhdWx0IGluIGRhdGFz aGVldCwgIHdoYXQgcG1kDQo+IGNvZGUgc2tpcCBpcyBqdXN0IHRoZSBQcm9jZXNzIG9mIEF1dG8t TmVnb3RpYXRpb24sIGJlY2F1c2Ugd2Ugc2tpcCBjb2RlIG9mIGJlbGxvdw0KPiBJbiBpeGdiZV9z ZXR1cF9waHlfbGlua19nZW5lcmljICgpLCBub3QgZGlzYWJsZSBiaXQgNy4wLmMuDQo+IFNvLCB5 b3UgaGFkIGJldHRlciBkaXNhYmxlIDcuMC5jIGJpdCB3aGVuIG1hYyBsb29wYmFjayBpcyBlbmFi bGUuDQo+IA0KPiAiDQo+IAkvKiBSZXN0YXJ0IFBIWSBhdXRvLW5lZ290aWF0aW9uLiAqLw0KPiAJ aHctPnBoeS5vcHMucmVhZF9yZWcoaHcsIElYR0JFX01ESU9fQVVUT19ORUdfQ09OVFJPTCwNCj4g CQkJICAgICBJWEdCRV9NRElPX0FVVE9fTkVHX0RFVl9UWVBFLCAmYXV0b25lZ19yZWcpOw0KPiAN Cj4gCWF1dG9uZWdfcmVnIHw9IElYR0JFX01JSV9SRVNUQVJUOw0KPiANCj4gCWh3LT5waHkub3Bz LndyaXRlX3JlZyhodywgSVhHQkVfTURJT19BVVRPX05FR19DT05UUk9MLA0KPiAJCQkgICAgICBJ WEdCRV9NRElPX0FVVE9fTkVHX0RFVl9UWVBFLCBhdXRvbmVnX3JlZyk7ICINCj4gDQo+IA0KDQpT bywgbG9va3MgbGlrZSBQTUQgd2lsbCBub3QgdG91Y2ggYXV0b25lZyBiaXQgYnkgZGVmYXVsdCBh bmQgd2Ugc2hvdWxkIG5vdCBleHBlY3RlZCB0aGlzIGJpdCBhbHdheXMgYmUgb24gb3Igb2ZmLCBi ZWNhdXNlIGl0IGNhbiBiZSBjaGFuZ2VkIGJ5IGtlcm5lbCBkcml2ZXIgYmVmb3JlIGJpbmQgdG8g ZHBkay4NCg0KcHJvYmFibHkgYSBiZXR0ZXIgc29sdXRpb24gY291bGQgYmUgDQoNCmR1cmluZyBk ZXZfc3RhcnQgaWYgbG9vcGJhY2sgaXMgcmVxdWlyZWQsIHdlIGRpc2FibGUgdGhlIGJpdCB0byBt YWtlIHN1cmUgbG9vcGJhY2sgd29ya3MgYW5kIHJlbWVtYmVyIGl0cyBvcmlnaW5hbCBzdGF0dXMs IGFuZCBkdXJpbmcgZGV2X3N0b3Agd2UgZG8gcm9sbCBiYWNrIGlmIG5lY2Vzc2FyeSANCg0Kd2hh dCBkbyB5b3UgdGhpbms/DQoNCg0KPiA+IFNob3VsZCBJIG5lZWQgdG8gbW9kaWZ5IG15IGNvZGUg dG8gYmUgc3VyZSB0aGF0IGF1dG9uZWcgaXMgZGlzYWJsZWQNCj4gPiAoYW5kIGZvcmNlIGl0IHRv IDEwRykgPw0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+IEJlc3QgcmVnYXJkcywNCj4gPiBKdWxpZW4g TWV1bmllcg0KPiA+DQo+ID4gT24gMDcvMDEvMjAxOSAwNzo1MywgWmhhbmcsIFFpIFogd3JvdGU6 DQo+ID4gPg0KPiA+ID4NCj4gPiA+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+ID4+ IEZyb206IGRldiBbbWFpbHRvOmRldi1ib3VuY2VzQGRwZGsub3JnXSBPbiBCZWhhbGYgT2YgSnVs aWVuIE1ldW5pZXINCj4gPiA+PiBTZW50OiBUaHVyc2RheSwgSmFudWFyeSAzLCAyMDE5IDEyOjAx IEFNDQo+ID4gPj4gVG86IEFuYW55ZXYsIEtvbnN0YW50aW4gPGtvbnN0YW50aW4uYW5hbnlldkBp bnRlbC5jb20+OyBMdSwgV2Vuemh1bw0KPiA+ID4+IDx3ZW56aHVvLmx1QGludGVsLmNvbT4NCj4g PiA+PiBDYzogZGV2QGRwZGsub3JnDQo+ID4gPj4gU3ViamVjdDogW2RwZGstZGV2XSBbUEFUQ0hd IG5ldC9peGdiZTogYWRkIHN1cHBvcnQgb2YgbG9vcGJhY2sgZm9yDQo+ID4gPj4gWDU0MC9YNTUw DQo+ID4gPj4NCj4gPiA+PiBMb29wYmFjayBtb2RlIGlzIGFsc28gc3VwcG9ydGVkIG9uIFg1NDAg YW5kIFg1NTAgTklDcywgYWNjb3JkaW5nIHRvDQo+ID4gPj4gdGhlaXIgZGF0YXNoZWV0IChzZWN0 aW9uIDE1LjIpLiBUaGUgd2F5IHRvIHNldCBpdCB1cCBpcyBhIGxpdHRsZQ0KPiA+ID4+IGRpZmZl cmVudCBvZg0KPiA+IHRoZSA4MjU5OS4NCj4gPiA+DQo+ID4gPiBUaGFua3MgZm9yIGVuYWJsZSB0 aGlzLg0KPiA+ID4NCj4gPiA+IG9uZSBxdWVzdGlvbiBpcywgRGF0YXNoZWV0IGFsc28gbWVudGlv bmVkIHRoYXQgYXV0byBuZWdvdGlhdGlvbg0KPiA+ID4gc2hvdWxkIGJlIGRpc2FibGVkIGJ1dCBJ IGRpZG4ndCBzZWUgYW55IHJlbGF0ZWQgY2hhbmdlIHdpdGggaXQuDQo+ID4gPg0KPiA+ID4gV291 bGQgeW91IHNoYXJlIG1vcmUgaW5zaWdodCBvbiB0aGlzPw0KPiA+ID4NCj4gPiA+Pg0KPiA+ID4+ IFNpZ25lZC1vZmYtYnk6IEp1bGllbiBNZXVuaWVyIDxqdWxpZW4ubWV1bmllckBub2tpYS5jb20+ DQo+ID4gPj4gLS0tDQo+ID4gPj4gICBkcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYyB8 IDEwICsrKysrKy0tLQ0KPiA+ID4+IGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5oIHwg IDUgKystLS0NCj4gPiA+PiAgIGRyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX3J4dHguYyAgIHwgNDcN Cj4gPiA+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tDQo+ID4gPj4g ICAzIGZpbGVzIGNoYW5nZWQsIDQ5IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKQ0KPiA+ ID4+DQo+ID4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2l4Z2JlL2l4Z2JlX2V0aGRldi5j DQo+ID4gPj4gYi9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhkZXYuYw0KPiA+ID4+IGluZGV4 IDc0OTMxMTAuLjdlYjMzMDMgMTAwNjQ0DQo+ID4gPj4gLS0tIGEvZHJpdmVycy9uZXQvaXhnYmUv aXhnYmVfZXRoZGV2LmMNCj4gPiA+PiArKysgYi9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9ldGhk ZXYuYw0KPiA+ID4+IEBAIC0yNjUyLDkgKzI2NTIsMTMgQEAgaXhnYmVfZGV2X3N0YXJ0KHN0cnVj dCBydGVfZXRoX2RldiAqZGV2KQ0KPiA+ID4+ICAgCQlnb3RvIGVycm9yOw0KPiA+ID4+ICAgCX0N Cj4gPiA+Pg0KPiA+ID4+IC0JLyogU2tpcCBsaW5rIHNldHVwIGlmIGxvb3BiYWNrIG1vZGUgaXMg ZW5hYmxlZCBmb3IgODI1OTkuICovDQo+ID4gPj4gLQlpZiAoaHctPm1hYy50eXBlID09IGl4Z2Jl X21hY184MjU5OUVCICYmDQo+ID4gPj4gLQkJCWRldi0+ZGF0YS0+ZGV2X2NvbmYubHBia19tb2Rl ID09DQo+ID4gSVhHQkVfTFBCS184MjU5OV9UWF9SWCkNCj4gPiA+PiArCS8qIFNraXAgbGluayBz ZXR1cCBpZiBsb29wYmFjayBtb2RlIGlzIGVuYWJsZWQuICovDQo+ID4gPj4gKwlpZiAoKGh3LT5t YWMudHlwZSA9PSBpeGdiZV9tYWNfODI1OTlFQiB8fA0KPiA+ID4+ICsJICAgICBody0+bWFjLnR5 cGUgPT0gaXhnYmVfbWFjX1g1NDAgfHwNCj4gPiA+PiArCSAgICAgaHctPm1hYy50eXBlID09IGl4 Z2JlX21hY19YNTUwIHx8DQo+ID4gPj4gKwkgICAgIGh3LT5tYWMudHlwZSA9PSBpeGdiZV9tYWNf WDU1MEVNX3ggfHwNCj4gPiA+PiArCSAgICAgaHctPm1hYy50eXBlID09IGl4Z2JlX21hY19YNTUw RU1fYSkgJiYNCj4gPiA+PiArCQkJZGV2LT5kYXRhLT5kZXZfY29uZi5scGJrX21vZGUgPT0NCj4g PiBJWEdCRV9MUEJLX1RYX1JYKQ0KPiA+ID4+ICAgCQlnb3RvIHNraXBfbGlua19zZXR1cDsNCj4g PiA+Pg0KPiA+ID4+ICAgCWlmIChpeGdiZV9pc19zZnAoaHcpICYmIGh3LT5waHkubXVsdGlzcGVl ZF9maWJlcikgeyBkaWZmIC0tZ2l0DQo+ID4gPj4gYS9kcml2ZXJzL25ldC9peGdiZS9peGdiZV9l dGhkZXYuaA0KPiA+IGIvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfZXRoZGV2LmgNCj4gPiA+PiBp bmRleCA1NjVjNjljLi5jNjBhNjk3IDEwMDY0NA0KPiA+ID4+IC0tLSBhL2RyaXZlcnMvbmV0L2l4 Z2JlL2l4Z2JlX2V0aGRldi5oDQo+ID4gPj4gKysrIGIvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVf ZXRoZGV2LmgNCj4gPiA+PiBAQCAtNjUsOSArNjUsOCBAQA0KPiA+ID4+ICAgI2RlZmluZSBJWEdC RV9RVUVVRV9JVFJfSU5URVJWQUxfREVGQVVMVAk1MDAgLyogNTAwdXMgKi8NCj4gPiA+Pg0KPiA+ ID4+ICAgLyogTG9vcGJhY2sgb3BlcmF0aW9uIG1vZGVzICovDQo+ID4gPj4gLS8qIDgyNTk5IHNw ZWNpZmljIGxvb3BiYWNrIG9wZXJhdGlvbiB0eXBlcyAqLw0KPiA+ID4+IC0jZGVmaW5lIElYR0JF X0xQQktfODI1OTlfTk9ORSAgIDB4MCAvKiBEZWZhdWx0IHZhbHVlLiBMb29wYmFjayBpcw0KPiA+ IGRpc2FibGVkLg0KPiA+ID4+ICovDQo+ID4gPj4gLSNkZWZpbmUgSVhHQkVfTFBCS184MjU5OV9U WF9SWCAgMHgxIC8qIFR4LT5SeCBsb29wYmFjayBvcGVyYXRpb24NCj4gPiA+PiBpcyBlbmFibGVk LiAqLw0KPiA+ID4+ICsjZGVmaW5lIElYR0JFX0xQQktfTk9ORSAgIDB4MCAvKiBEZWZhdWx0IHZh bHVlLiBMb29wYmFjayBpcyBkaXNhYmxlZC4NCj4gPiAqLw0KPiA+ID4+ICsjZGVmaW5lIElYR0JF X0xQQktfVFhfUlggIDB4MSAvKiBUeC0+UnggbG9vcGJhY2sgb3BlcmF0aW9uIGlzDQo+ID4gZW5h YmxlZC4NCj4gPiA+PiArKi8NCj4gPiA+Pg0KPiA+ID4+ICAgI2RlZmluZSBJWEdCRV9NQVhfSlVN Qk9fRlJBTUVfU0laRSAgICAgIDB4MjYwMCAvKiBNYXhpbXVtDQo+ID4gSnVtYm8NCj4gPiA+PiBm cmFtZSBzaXplLiAqLw0KPiA+ID4+DQo+ID4gPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2l4 Z2JlL2l4Z2JlX3J4dHguYw0KPiA+ID4+IGIvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVfcnh0eC5j IGluZGV4IDlhNzlkMTguLjBlZjdmZGYgMTAwNjQ0DQo+ID4gPj4gLS0tIGEvZHJpdmVycy9uZXQv aXhnYmUvaXhnYmVfcnh0eC5jDQo+ID4gPj4gKysrIGIvZHJpdmVycy9uZXQvaXhnYmUvaXhnYmVf cnh0eC5jDQo+ID4gPj4gQEAgLTQ4NzksMTAgKzQ4NzksMTQgQEAgaXhnYmVfZGV2X3J4X2luaXQo c3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpDQo+ID4gPj4gICAJCWhscmVnMCAmPSB+SVhHQkVfSExS RUcwX0pVTUJPRU47DQo+ID4gPj4NCj4gPiA+PiAgIAkvKg0KPiA+ID4+IC0JICogSWYgbG9vcGJh Y2sgbW9kZSBpcyBjb25maWd1cmVkIGZvciA4MjU5OSwgc2V0IExQQksgYml0Lg0KPiA+ID4+ICsJ ICogSWYgbG9vcGJhY2sgbW9kZSBpcyBjb25maWd1cmVkLCBzZXQgTFBCSyBiaXQuDQo+ID4gPj4g ICAJICovDQo+ID4gPj4gLQlpZiAoaHctPm1hYy50eXBlID09IGl4Z2JlX21hY184MjU5OUVCICYm DQo+ID4gPj4gLQkJCWRldi0+ZGF0YS0+ZGV2X2NvbmYubHBia19tb2RlID09DQo+ID4gSVhHQkVf TFBCS184MjU5OV9UWF9SWCkNCj4gPiA+PiArCWlmICgoaHctPm1hYy50eXBlID09IGl4Z2JlX21h Y184MjU5OUVCIHx8DQo+ID4gPj4gKwkgICAgIGh3LT5tYWMudHlwZSA9PSBpeGdiZV9tYWNfWDU0 MCB8fA0KPiA+ID4+ICsJICAgICBody0+bWFjLnR5cGUgPT0gaXhnYmVfbWFjX1g1NTAgfHwNCj4g PiA+PiArCSAgICAgaHctPm1hYy50eXBlID09IGl4Z2JlX21hY19YNTUwRU1feCB8fA0KPiA+ID4+ ICsJICAgICBody0+bWFjLnR5cGUgPT0gaXhnYmVfbWFjX1g1NTBFTV9hKSAmJg0KPiA+ID4+ICsJ CQlkZXYtPmRhdGEtPmRldl9jb25mLmxwYmtfbW9kZSA9PQ0KPiA+IElYR0JFX0xQQktfVFhfUlgp DQo+ID4gPj4gICAJCWhscmVnMCB8PSBJWEdCRV9ITFJFRzBfTFBCSzsNCj4gPiA+PiAgIAllbHNl DQo+ID4gPj4gICAJCWhscmVnMCAmPSB+SVhHQkVfSExSRUcwX0xQQks7DQo+ID4gPj4gQEAgLTUw ODgsNiArNTA5MiwyOSBAQCBpeGdiZV9zZXR1cF9sb29wYmFja19saW5rXzgyNTk5KHN0cnVjdA0K PiA+ID4+IGl4Z2JlX2h3DQo+ID4gPj4gKmh3KQ0KPiA+ID4+ICAgCW1zZWNfZGVsYXkoNTApOw0K PiA+ID4+ICAgfQ0KPiA+ID4+DQo+ID4gPj4gKy8qDQo+ID4gPj4gKyAqIFNldCB1cCBsaW5rIGxv b3BiYWNrIGZvciBYNTQwIC8gWDU1MCBtb2RlIFR4LT5SeC4NCj4gPiA+PiArICovDQo+ID4gPj4g K3N0YXRpYyBpbmxpbmUgdm9pZCBfX2F0dHJpYnV0ZV9fKChjb2xkKSkNCj4gPiA+PiAraXhnYmVf c2V0dXBfbG9vcGJhY2tfbGlua194NTQwX3g1NTAoc3RydWN0IGl4Z2JlX2h3ICpodykgew0KPiA+ ID4+ICsJdWludDMyX3QgbWFjYzsNCj4gPiA+PiArCVBNRF9JTklUX0ZVTkNfVFJBQ0UoKTsNCj4g PiA+PiArDQo+ID4gPj4gKwkvKiBkYXRhc2hlZXQgMTUuMi4xOiBNQUNDLkZMVSA9IDEgKGZvcmNl IGxpbmsgdXApICovDQo+ID4gPj4gKwltYWNjID0gSVhHQkVfUkVBRF9SRUcoaHcsIElYR0JFX01B Q0MpOw0KPiA+ID4+ICsJbWFjYyB8PSBJWEdCRV9NQUNDX0ZMVTsNCj4gPiA+PiArCUlYR0JFX1dS SVRFX1JFRyhodywgSVhHQkVfTUFDQywgbWFjYyk7DQo+ID4gPj4gKw0KPiA+ID4+ICsJLyogUmVz dGFydCBsaW5rICovDQo+ID4gPj4gKwlJWEdCRV9XUklURV9SRUcoaHcsDQo+ID4gPj4gKwkJCUlY R0JFX0FVVE9DLA0KPiA+ID4+ICsJCQlJWEdCRV9BVVRPQ19MTVNfMTBHX0xJTktfTk9fQU4gfA0K PiA+IElYR0JFX0FVVE9DX0ZMVSk7DQo+ID4gPj4gKw0KPiA+ID4+ICsJaHctPm1hYy5vcHMucmVs ZWFzZV9zd2Z3X3N5bmMoaHcsIElYR0JFX0dTU1JfTUFDX0NTUl9TTSk7DQo+ID4gPj4gKwltc2Vj X2RlbGF5KDUwKTsNCj4gPiA+PiArfQ0KPiA+ID4+ICsNCj4gPiA+Pg0KPiA+ID4+ICAgLyoNCj4g PiA+PiAgICAqIFN0YXJ0IFRyYW5zbWl0IGFuZCBSZWNlaXZlIFVuaXRzLg0KPiA+ID4+IEBAIC01 MTQ4LDEwICs1MTc1LDE2IEBAIGl4Z2JlX2Rldl9yeHR4X3N0YXJ0KHN0cnVjdCBydGVfZXRoX2Rl dg0KPiA+ICpkZXYpDQo+ID4gPj4gICAJcnhjdHJsIHw9IElYR0JFX1JYQ1RSTF9SWEVOOw0KPiA+ ID4+ICAgCWh3LT5tYWMub3BzLmVuYWJsZV9yeF9kbWEoaHcsIHJ4Y3RybCk7DQo+ID4gPj4NCj4g PiA+PiAtCS8qIElmIGxvb3BiYWNrIG1vZGUgaXMgZW5hYmxlZCBmb3IgODI1OTksIHNldCB1cCB0 aGUgbGluayBhY2NvcmRpbmdseQ0KPiA+ICovDQo+ID4gPj4gLQlpZiAoaHctPm1hYy50eXBlID09 IGl4Z2JlX21hY184MjU5OUVCICYmDQo+ID4gPj4gLQkJCWRldi0+ZGF0YS0+ZGV2X2NvbmYubHBi a19tb2RlID09DQo+ID4gSVhHQkVfTFBCS184MjU5OV9UWF9SWCkNCj4gPiA+PiAtCQlpeGdiZV9z ZXR1cF9sb29wYmFja19saW5rXzgyNTk5KGh3KTsNCj4gPiA+PiArCS8qIElmIGxvb3BiYWNrIG1v ZGUgaXMgZW5hYmxlZCwgc2V0IHVwIHRoZSBsaW5rIGFjY29yZGluZ2x5ICovDQo+ID4gPj4gKwlp ZiAoZGV2LT5kYXRhLT5kZXZfY29uZi5scGJrX21vZGUgPT0gSVhHQkVfTFBCS19UWF9SWCkgew0K PiA+ID4+ICsJCWlmIChody0+bWFjLnR5cGUgPT0gaXhnYmVfbWFjXzgyNTk5RUIpDQo+ID4gPj4g KwkJCWl4Z2JlX3NldHVwX2xvb3BiYWNrX2xpbmtfODI1OTkoaHcpOw0KPiA+ID4+ICsJCWVsc2Ug aWYgKGh3LT5tYWMudHlwZSA9PSBpeGdiZV9tYWNfWDU0MCB8fA0KPiA+ID4+ICsJCSAgICAgaHct Pm1hYy50eXBlID09IGl4Z2JlX21hY19YNTUwIHx8DQo+ID4gPj4gKwkJICAgICBody0+bWFjLnR5 cGUgPT0gaXhnYmVfbWFjX1g1NTBFTV94IHx8DQo+ID4gPj4gKwkJICAgICBody0+bWFjLnR5cGUg PT0gaXhnYmVfbWFjX1g1NTBFTV9hKQ0KPiA+ID4+ICsJCQlpeGdiZV9zZXR1cF9sb29wYmFja19s aW5rX3g1NDBfeDU1MChodyk7DQo+ID4gPj4gKwl9DQo+ID4gPj4NCj4gPiA+PiAgICNpZmRlZiBS VEVfTElCUlRFX1NFQ1VSSVRZDQo+ID4gPj4gICAJaWYgKChkZXYtPmRhdGEtPmRldl9jb25mLnJ4 bW9kZS5vZmZsb2FkcyAmDQo+ID4gPj4gLS0NCj4gPiA+PiAyLjEwLjINCj4gPiA+DQo=