From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id 8B97FA0096 for ; Wed, 5 Jun 2019 20:11:27 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 7EE941BA57; Wed, 5 Jun 2019 20:10:38 +0200 (CEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 513B11B99B for ; Wed, 5 Jun 2019 20:10:36 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Jun 2019 11:10:35 -0700 X-ExtLoop1: 1 Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga005.jf.intel.com with ESMTP; 05 Jun 2019 11:10:34 -0700 Received: from fmsmsx163.amr.corp.intel.com (10.18.125.72) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 5 Jun 2019 11:10:34 -0700 Received: from fmsmsx120.amr.corp.intel.com ([169.254.15.129]) by fmsmsx163.amr.corp.intel.com ([169.254.6.185]) with mapi id 14.03.0415.000; Wed, 5 Jun 2019 11:10:34 -0700 From: "Stillwell Jr, Paul M" To: Maxime Coquelin , "Rong, Leyi" , "Zhang, Qi Z" CC: "dev@dpdk.org" , "Sridhar, Vignesh" Thread-Topic: [dpdk-dev] [PATCH 14/49] net/ice/base: refactor HW table init function Thread-Index: AQHVGpiNZhfOPTuft0erHunaaFtoIqaNVNmAgAAI0LA= Date: Wed, 5 Jun 2019 18:10:33 +0000 Message-ID: References: <20190604054248.68510-1-leyi.rong@intel.com> <20190604054248.68510-15-leyi.rong@intel.com> <5320d82a-4f46-4e60-b753-1621e8e16d1d@redhat.com> In-Reply-To: <5320d82a-4f46-4e60-b753-1621e8e16d1d@redhat.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ctpclassification: CTP_NT x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiN2ZhMTczNjYtZjU1ZC00YjBlLTg0MGEtOTc0MjAyYjVhYTJmIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiUys1VUZIR1BVRTE4OWs4dUxwZGp4bzhscjVKdmc4VkZhaVpvWGwyK2J3NHRcLzVyeUs5VzVraE9lXC83dnlmUHljIn0= x-originating-ip: [10.1.200.107] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [PATCH 14/49] net/ice/base: refactor HW table init function 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBNYXhpbWUgQ29xdWVsaW4gPG1h eGltZS5jb3F1ZWxpbkByZWRoYXQuY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIEp1bmUgNSwgMjAx OSAzOjM1IEFNDQo+IFRvOiBSb25nLCBMZXlpIDxsZXlpLnJvbmdAaW50ZWwuY29tPjsgWmhhbmcs IFFpIFogPHFpLnouemhhbmdAaW50ZWwuY29tPg0KPiBDYzogZGV2QGRwZGsub3JnOyBTcmlkaGFy LCBWaWduZXNoIDx2aWduZXNoLnNyaWRoYXJAaW50ZWwuY29tPjsgU3RpbGx3ZWxsIEpyLA0KPiBQ YXVsIE0gPHBhdWwubS5zdGlsbHdlbGwuanJAaW50ZWwuY29tPg0KPiBTdWJqZWN0OiBSZTogW2Rw ZGstZGV2XSBbUEFUQ0ggMTQvNDldIG5ldC9pY2UvYmFzZTogcmVmYWN0b3IgSFcgdGFibGUgaW5p dA0KPiBmdW5jdGlvbg0KPiANCj4gDQo+IA0KPiBPbiA2LzQvMTkgNzo0MiBBTSwgTGV5aSBSb25n IHdyb3RlOg0KPiA+IDEuIFNlcGFyYXRlZCB0aGUgY2FsbHMgdG8gaW5pdGlhbGl6ZSBhbmQgYWxs b2NhdGUgdGhlIEhXIFhMVCB0YWJsZXMNCj4gPiBmcm9tIGNhbGwgdG8gZmlsbCB0YWJsZS4gVGhp cyBpcyB0byBhbGxvdyB0aGUgaWNlX2luaXRfaHdfdGJscyBjYWxsIHRvDQo+ID4gYmUgbWFkZSBw cmlvciB0byBwYWNrYWdlIGRvd25sb2FkIHNvIHRoYXQgYWxsIEhXIHN0cnVjdHVyZXMgYXJlDQo+ ID4gY29ycmVjdGx5IGluaXRpYWxpemVkLiBUaGlzIHdpbGwgYXZvaWQgYW55IGludmFsaWQgbWVt b3J5IHJlZmVyZW5jZXMNCj4gPiBpZiBwYWNrYWdlIGRvd25sb2FkIGZhaWxzIG9uIHVubG9hZGlu ZyB0aGUgZHJpdmVyLg0KPiA+IDIuIEZpbGwgSFcgdGFibGVzIHdpdGggcGFja2FnZSBjb250ZW50 IGFmdGVyIHN1Y2Nlc3NmdWwgcGFja2FnZSBkb3dubG9hZC4NCj4gPiAzLiBGcmVlIEhXIHRhYmxl IGFuZCBmbG93IHByb2ZpbGUgYWxsb2NhdGlvbnMgd2hlbiB1bmxvYWRpbmcgZHJpdmVyLg0KPiA+ IDQuIEFkZCBmbGFnIGluIGJsb2NrIHN0cnVjdHVyZSB0byBjaGVjayBpZiBsaXN0cyBpbiBibG9j ayBhcmUNCj4gPiBpbml0aWFsaXplZC4gVGhpcyBpcyB0byBhdm9pZCBhbnkgTlVMTCByZWZlcmVu Y2UgaW4gcmVsZWFzaW5nIGZsb3cNCj4gPiBwcm9maWxlcyB0aGF0IG1heSBoYXZlIGJlZW4gZnJl ZWQgaW4gcHJldmlvdXMgY2FsbHMgdG8gZnJlZSB0YWJsZXMuDQo+ID4NCj4gPiBTaWduZWQtb2Zm LWJ5OiBWaWduZXNoIFNyaWRoYXIgPHZpZ25lc2guc3JpZGhhckBpbnRlbC5jb20+DQo+ID4gU2ln bmVkLW9mZi1ieTogUGF1bCBNIFN0aWxsd2VsbCBKciA8cGF1bC5tLnN0aWxsd2VsbC5qckBpbnRl bC5jb20+DQo+ID4gU2lnbmVkLW9mZi1ieTogTGV5aSBSb25nIDxsZXlpLnJvbmdAaW50ZWwuY29t Pg0KPiA+IC0tLQ0KPiA+ICAgZHJpdmVycy9uZXQvaWNlL2Jhc2UvaWNlX2NvbW1vbi5jICAgIHwg ICA2ICstDQo+ID4gICBkcml2ZXJzL25ldC9pY2UvYmFzZS9pY2VfZmxleF9waXBlLmMgfCAyODQg KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tDQo+ID4gICBkcml2ZXJzL25ldC9pY2UvYmFzZS9p Y2VfZmxleF9waXBlLmggfCAgIDEgKw0KPiA+ICAgZHJpdmVycy9uZXQvaWNlL2Jhc2UvaWNlX2Zs ZXhfdHlwZS5oIHwgICAxICsNCj4gPiAgIDQgZmlsZXMgY2hhbmdlZCwgMTUxIGluc2VydGlvbnMo KyksIDE0MSBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9p Y2UvYmFzZS9pY2VfY29tbW9uLmMNCj4gPiBiL2RyaXZlcnMvbmV0L2ljZS9iYXNlL2ljZV9jb21t b24uYw0KPiA+IGluZGV4IGEwYWIyNWFlZi4uNjJjN2ZhZDBkIDEwMDY0NA0KPiA+IC0tLSBhL2Ry aXZlcnMvbmV0L2ljZS9iYXNlL2ljZV9jb21tb24uYw0KPiA+ICsrKyBiL2RyaXZlcnMvbmV0L2lj ZS9iYXNlL2ljZV9jb21tb24uYw0KPiA+IEBAIC05MTYsMTIgKzkxNiwxMyBAQCBlbnVtIGljZV9z dGF0dXMgaWNlX2luaXRfaHcoc3RydWN0IGljZV9odyAqaHcpDQo+ID4NCj4gPiAgIAlpY2VfaW5p dF9mbGV4X2ZsZHMoaHcsIElDRV9SWERJRF9GTEVYX05JQyk7DQo+ID4gICAJaWNlX2luaXRfZmxl eF9mbGRzKGh3LCBJQ0VfUlhESURfRkxFWF9OSUNfMik7DQo+ID4gLQ0KPiA+ICAgCS8qIE9idGFp biBjb3VudGVyIGJhc2UgaW5kZXggd2hpY2ggd291bGQgYmUgdXNlZCBieSBmbG93IGRpcmVjdG9y DQo+ICovDQo+ID4gICAJc3RhdHVzID0gaWNlX2FsbG9jX2ZkX3Jlc19jbnRyKGh3LCAmaHctPmZk X2N0cl9iYXNlKTsNCj4gPiAgIAlpZiAoc3RhdHVzKQ0KPiA+ICAgCQlnb3RvIGVycl91bnJvbGxf Zmx0cl9tZ210X3N0cnVjdDsNCj4gPiAtDQo+ID4gKwlzdGF0dXMgPSBpY2VfaW5pdF9od190Ymxz KGh3KTsNCj4gPiArCWlmIChzdGF0dXMpDQo+ID4gKwkJZ290byBlcnJfdW5yb2xsX2ZsdHJfbWdt dF9zdHJ1Y3Q7DQo+ID4gICAJcmV0dXJuIElDRV9TVUNDRVNTOw0KPiA+DQo+ID4gICBlcnJfdW5y b2xsX2ZsdHJfbWdtdF9zdHJ1Y3Q6DQo+ID4gQEAgLTk1Miw2ICs5NTMsNyBAQCB2b2lkIGljZV9k ZWluaXRfaHcoc3RydWN0IGljZV9odyAqaHcpDQo+ID4gICAJaWNlX3NjaGVkX2NsZWFudXBfYWxs KGh3KTsNCj4gPiAgIAlpY2Vfc2NoZWRfY2xlYXJfYWdnKGh3KTsNCj4gPiAgIAlpY2VfZnJlZV9z ZWcoaHcpOw0KPiA+ICsJaWNlX2ZyZWVfaHdfdGJscyhodyk7DQo+ID4NCj4gPiAgIAlpZiAoaHct PnBvcnRfaW5mbykgew0KPiA+ICAgCQlpY2VfZnJlZShodywgaHctPnBvcnRfaW5mbyk7DQo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2ljZS9iYXNlL2ljZV9mbGV4X3BpcGUuYw0KPiA+IGIv ZHJpdmVycy9uZXQvaWNlL2Jhc2UvaWNlX2ZsZXhfcGlwZS5jDQo+ID4gaW5kZXggOGYwYjUxM2Y0 Li45M2UwNTY4NTMgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9uZXQvaWNlL2Jhc2UvaWNlX2Zs ZXhfcGlwZS5jDQo+ID4gKysrIGIvZHJpdmVycy9uZXQvaWNlL2Jhc2UvaWNlX2ZsZXhfcGlwZS5j DQo+ID4gQEAgLTEzNzUsMTAgKzEzNzUsMTIgQEAgZW51bSBpY2Vfc3RhdHVzIGljZV9pbml0X3Br ZyhzdHJ1Y3QgaWNlX2h3DQo+ID4gKmh3LCB1OCAqYnVmLCB1MzIgbGVuKQ0KPiA+DQo+ID4gICAJ aWYgKCFzdGF0dXMpIHsNCj4gPiAgIAkJaHctPnNlZyA9IHNlZzsNCj4gPiAtCQkvKiBvbiBzdWNj ZXNzZnVsIHBhY2thZ2UgZG93bmxvYWQsIHVwZGF0ZSBvdGhlciByZXF1aXJlZA0KPiA+IC0JCSAq IHJlZ2lzdGVycyB0byBzdXBwb3J0IHRoZSBwYWNrYWdlDQo+ID4gKwkJLyogb24gc3VjY2Vzc2Z1 bCBwYWNrYWdlIGRvd25sb2FkIHVwZGF0ZSBvdGhlciByZXF1aXJlZA0KPiA+ICsJCSAqIHJlZ2lz dGVycyB0byBzdXBwb3J0IHRoZSBwYWNrYWdlIGFuZCBmaWxsIEhXIHRhYmxlcw0KPiA+ICsJCSAq IHdpdGggcGFja2FnZSBjb250ZW50Lg0KPiA+ICAgCQkgKi8NCj4gPiAgIAkJaWNlX2luaXRfcGtn X3JlZ3MoaHcpOw0KPiA+ICsJCWljZV9maWxsX2Jsa190YmxzKGh3KTsNCj4gPiAgIAl9IGVsc2Ug ew0KPiA+ICAgCQlpY2VfZGVidWcoaHcsIElDRV9EQkdfSU5JVCwgInBhY2thZ2UgbG9hZCBmYWls ZWQsICVkXG4iLA0KPiA+ICAgCQkJICBzdGF0dXMpOw0KPiA+IEBAIC0yNzU1LDYgKzI3NTcsNjUg QEAgc3RhdGljIGNvbnN0IHUzMg0KPiBpY2VfYmxrX3NpZHNbSUNFX0JMS19DT1VOVF1bSUNFX1NJ RF9PRkZfQ09VTlRdID0gew0KPiA+ICAgCX0NCj4gPiAgIH07DQo+ID4NCj4gPiArLyoqDQo+ID4g KyAqIGljZV9pbml0X3N3X3hsdDFfZGIgLSBpbml0IHNvZnR3YXJlIFhMVDEgZGF0YWJhc2UgZnJv bSBIVyB0YWJsZXMNCj4gPiArICogQGh3OiBwb2ludGVyIHRvIHRoZSBoYXJkd2FyZSBzdHJ1Y3R1 cmUNCj4gPiArICogQGJsazogdGhlIEhXIGJsb2NrIHRvIGluaXRpYWxpemUNCj4gPiArICovDQo+ ID4gK3N0YXRpYw0KPiA+ICt2b2lkIGljZV9pbml0X3N3X3hsdDFfZGIoc3RydWN0IGljZV9odyAq aHcsIGVudW0gaWNlX2Jsb2NrIGJsaykgew0KPiA+ICsJdTE2IHB0Ow0KPiA+ICsNCj4gPiArCWZv ciAocHQgPSAwOyBwdCA8IGh3LT5ibGtbYmxrXS54bHQxLmNvdW50OyBwdCsrKSB7DQo+ID4gKwkJ dTggcHRnOw0KPiA+ICsNCj4gPiArCQlwdGcgPSBody0+YmxrW2Jsa10ueGx0MS50W3B0XTsNCj4g PiArCQlpZiAocHRnICE9IElDRV9ERUZBVUxUX1BURykgew0KPiA+ICsJCQlpY2VfcHRnX2FsbG9j X3ZhbChodywgYmxrLCBwdGcpOw0KPiA+ICsJCQlpY2VfcHRnX2FkZF9tdl9wdHlwZShodywgYmxr LCBwdCwgcHRnKTsNCj4gDQo+IGljZV9wdGdfYWRkX212X3B0eXBlKCkgY2FuIGZhaWwsIGVycm9y IHNob3VsZCBiZSBwcm9wYWdhdGVkLg0KDQpZb3UgYXJlIGNvcnJlY3QgdGhhdCBpY2VfcHRnX2Fk ZF9tdl9wdHlwZSgpIGNhbiBmYWlsLCBidXQgaXQgY2FuIG5ldmVyIGZhaWwgaW4gdGhpcyBjYXNl LiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBhdCBpbml0IHRpbWUgd2hlbiB0aGUgSFcgaGFzIGJl ZW4gbG9hZGVkIHRvIGEga25vd24gZ29vZCBzdGF0ZSBhbmQgdGhlcmUgaXMgbm8gY2hhbmNlIGl0 IHdpbGwgZmFpbCB0aGlzIGNhbGwuDQoNCj4gDQo+ID4gKwkJfQ0KPiA+ICsJfQ0KPiA+ICt9DQo+ ID4gKw0KPiA+ICsvKioNCj4gPiArICogaWNlX2luaXRfc3dfeGx0Ml9kYiAtIGluaXQgc29mdHdh cmUgWExUMiBkYXRhYmFzZSBmcm9tIEhXIHRhYmxlcw0KPiA+ICsgKiBAaHc6IHBvaW50ZXIgdG8g dGhlIGhhcmR3YXJlIHN0cnVjdHVyZQ0KPiA+ICsgKiBAYmxrOiB0aGUgSFcgYmxvY2sgdG8gaW5p dGlhbGl6ZQ0KPiA+ICsgKi8NCj4gPiArc3RhdGljIHZvaWQgaWNlX2luaXRfc3dfeGx0Ml9kYihz dHJ1Y3QgaWNlX2h3ICpodywgZW51bSBpY2VfYmxvY2sNCj4gPiArYmxrKSB7DQo+ID4gKwl1MTYg dnNpOw0KPiA+ICsNCj4gPiArCWZvciAodnNpID0gMDsgdnNpIDwgaHctPmJsa1tibGtdLnhsdDIu Y291bnQ7IHZzaSsrKSB7DQo+ID4gKwkJdTE2IHZzaWc7DQo+ID4gKw0KPiA+ICsJCXZzaWcgPSBo dy0+YmxrW2Jsa10ueGx0Mi50W3ZzaV07DQo+ID4gKwkJaWYgKHZzaWcpIHsNCj4gPiArCQkJaWNl X3ZzaWdfYWxsb2NfdmFsKGh3LCBibGssIHZzaWcpOw0KPiA+ICsJCQlpY2VfdnNpZ19hZGRfbXZf dnNpKGh3LCBibGssIHZzaSwgdnNpZyk7DQo+IA0KPiBEaXR0bw0KDQpTYW1lIGlzc3VlIGhlcmUg YXMgYWJvdmUuDQoNCj4gDQo+ID4gKwkJCS8qIG5vIGNoYW5nZXMgYXQgdGhpcyB0aW1lLCBzaW5j ZSB0aGlzIGhhcyBiZWVuDQo+ID4gKwkJCSAqIGluaXRpYWxpemVkIGZyb20gdGhlIG9yaWdpbmFs IHBhY2thZ2UNCj4gPiArCQkJICovDQo+ID4gKwkJCWh3LT5ibGtbYmxrXS54bHQyLnZzaXNbdnNp XS5jaGFuZ2VkID0gMDsNCj4gPiArCQl9DQo+ID4gKwl9DQo+ID4gK30NCj4gPiArDQo+ID4gKy8q Kg0KPiA+ICsgKiBpY2VfaW5pdF9zd19kYiAtIGluaXQgc29mdHdhcmUgZGF0YWJhc2UgZnJvbSBI VyB0YWJsZXMNCj4gPiArICogQGh3OiBwb2ludGVyIHRvIHRoZSBoYXJkd2FyZSBzdHJ1Y3R1cmUg ICovIHN0YXRpYyB2b2lkDQo+ID4gK2ljZV9pbml0X3N3X2RiKHN0cnVjdCBpY2VfaHcgKmh3KSB7 DQo+ID4gKwl1MTYgaTsNCj4gPiArDQo+ID4gKwlmb3IgKGkgPSAwOyBpIDwgSUNFX0JMS19DT1VO VDsgaSsrKSB7DQo+ID4gKwkJaWNlX2luaXRfc3dfeGx0MV9kYihodywgKGVudW0gaWNlX2Jsb2Nr KWkpOw0KPiA+ICsJCWljZV9pbml0X3N3X3hsdDJfZGIoaHcsIChlbnVtIGljZV9ibG9jaylpKTsN Cj4gPiArCX0NCj4gDQo+IEFuZCBzbyB0aGlzIGZ1bmN0aW9uIHNob3VsZCBhbHNvIHByb3BhZ2F0 ZSB0aGUgZXJyb3IuDQoNClNhbWUgY29tbWVudCBoZXJlLg0KDQo+IA0KPiA+ICt9DQo+ID4gKw0K PiA+ICAgLyoqDQo+ID4gICAgKiBpY2VfZmlsbF90YmwgLSBSZWFkcyBjb250ZW50IG9mIGEgc2lu Z2xlIHRhYmxlIHR5cGUgaW50byBkYXRhYmFzZQ0KPiA+ICAgICogQGh3OiBwb2ludGVyIHRvIHRo ZSBoYXJkd2FyZSBzdHJ1Y3R1cmUgQEAgLTI4NTMsMTIgKzI5MTQsMTIgQEANCj4gPiBzdGF0aWMg dm9pZCBpY2VfZmlsbF90Ymwoc3RydWN0IGljZV9odyAqaHcsIGVudW0gaWNlX2Jsb2NrIGJsb2Nr X2lkLCB1MzIgc2lkKQ0KPiA+ICAgCQljYXNlIElDRV9TSURfRkxEX1ZFQ19QRToNCj4gPiAgIAkJ CWVzID0gKHN0cnVjdCBpY2Vfc3dfZnZfc2VjdGlvbiAqKXNlY3Q7DQo+ID4gICAJCQlzcmMgPSAo dTggKillcy0+ZnY7DQo+ID4gLQkJCXNlY3RfbGVuID0gTEUxNl9UT19DUFUoZXMtPmNvdW50KSAq DQo+ID4gLQkJCQlody0+YmxrW2Jsb2NrX2lkXS5lcy5mdncgKg0KPiA+ICsJCQlzZWN0X2xlbiA9 ICh1MzIpKExFMTZfVE9fQ1BVKGVzLT5jb3VudCkgKg0KPiA+ICsJCQkJCSBody0+YmxrW2Jsb2Nr X2lkXS5lcy5mdncpICoNCj4gPiAgIAkJCQlzaXplb2YoKmh3LT5ibGtbYmxvY2tfaWRdLmVzLnQp Ow0KPiA+ICAgCQkJZHN0ID0gKHU4ICopaHctPmJsa1tibG9ja19pZF0uZXMudDsNCj4gPiAtCQkJ ZHN0X2xlbiA9IGh3LT5ibGtbYmxvY2tfaWRdLmVzLmNvdW50ICoNCj4gPiAtCQkJCWh3LT5ibGtb YmxvY2tfaWRdLmVzLmZ2dyAqDQo+ID4gKwkJCWRzdF9sZW4gPSAodTMyKShody0+YmxrW2Jsb2Nr X2lkXS5lcy5jb3VudCAqDQo+ID4gKwkJCQkJaHctPmJsa1tibG9ja19pZF0uZXMuZnZ3KSAqDQo+ ID4gICAJCQkJc2l6ZW9mKCpody0+YmxrW2Jsb2NrX2lkXS5lcy50KTsNCj4gPiAgIAkJCWJyZWFr Ow0KPiA+ICAgCQlkZWZhdWx0Og0KPiA+IEBAIC0yODg2LDc1ICsyOTQ3LDYxIEBAIHN0YXRpYyB2 b2lkIGljZV9maWxsX3RibChzdHJ1Y3QgaWNlX2h3ICpodywgZW51bQ0KPiBpY2VfYmxvY2sgYmxv Y2tfaWQsIHUzMiBzaWQpDQo+ID4gICB9DQo+ID4NCj4gPiAgIC8qKg0KPiA+IC0gKiBpY2VfZmls bF9ibGtfdGJscyAtIFJlYWQgcGFja2FnZSBjb250ZW50IGZvciB0YWJsZXMgb2YgYSBibG9jaw0K PiA+ICsgKiBpY2VfZmlsbF9ibGtfdGJscyAtIFJlYWQgcGFja2FnZSBjb250ZXh0IGZvciB0YWJs ZXMNCj4gPiAgICAqIEBodzogcG9pbnRlciB0byB0aGUgaGFyZHdhcmUgc3RydWN0dXJlDQo+ID4g LSAqIEBibG9ja19pZDogVGhlIGJsb2NrIElEIHdoaWNoIGNvbnRhaW5zIHRoZSB0YWJsZXMgdG8g YmUgY29waWVkDQo+ID4gICAgKg0KPiA+ICAgICogUmVhZHMgdGhlIGN1cnJlbnQgcGFja2FnZSBj b250ZW50cyBhbmQgcG9wdWxhdGVzIHRoZSBkcml2ZXINCj4gPiAtICogZGF0YWJhc2Ugd2l0aCB0 aGUgZGF0YSBpdCBjb250YWlucyB0byBhbGxvdyBmb3IgYWR2YW5jZWQgZHJpdmVyDQo+ID4gLSAq IGZlYXR1cmVzLg0KPiA+IC0gKi8NCj4gPiAtc3RhdGljIHZvaWQgaWNlX2ZpbGxfYmxrX3RibHMo c3RydWN0IGljZV9odyAqaHcsIGVudW0gaWNlX2Jsb2NrDQo+ID4gYmxvY2tfaWQpIC17DQo+ID4g LQlpY2VfZmlsbF90YmwoaHcsIGJsb2NrX2lkLCBody0+YmxrW2Jsb2NrX2lkXS54bHQxLnNpZCk7 DQo+ID4gLQlpY2VfZmlsbF90YmwoaHcsIGJsb2NrX2lkLCBody0+YmxrW2Jsb2NrX2lkXS54bHQy LnNpZCk7DQo+ID4gLQlpY2VfZmlsbF90YmwoaHcsIGJsb2NrX2lkLCBody0+YmxrW2Jsb2NrX2lk XS5wcm9mLnNpZCk7DQo+ID4gLQlpY2VfZmlsbF90YmwoaHcsIGJsb2NrX2lkLCBody0+YmxrW2Js b2NrX2lkXS5wcm9mX3JlZGlyLnNpZCk7DQo+ID4gLQlpY2VfZmlsbF90YmwoaHcsIGJsb2NrX2lk LCBody0+YmxrW2Jsb2NrX2lkXS5lcy5zaWQpOw0KPiA+IC19DQo+ID4gLQ0KPiA+IC0vKioNCj4g PiAtICogaWNlX2ZyZWVfZmxvd19wcm9mcyAtIGZyZWUgZmxvdyBwcm9maWxlIGVudHJpZXMNCj4g PiAtICogQGh3OiBwb2ludGVyIHRvIHRoZSBoYXJkd2FyZSBzdHJ1Y3R1cmUNCj4gPiArICogZGF0 YWJhc2Ugd2l0aCB0aGUgZGF0YSBpdGVyYXRpdmVseSBmb3IgYWxsIGFkdmFuY2VkIGZlYXR1cmUN Cj4gPiArICogYmxvY2tzLiBBc3N1bWUgdGhhdCB0aGUgSHcgdGFibGVzIGhhdmUgYmVlbiBhbGxv Y2F0ZWQuDQo+ID4gICAgKi8NCj4gPiAtc3RhdGljIHZvaWQgaWNlX2ZyZWVfZmxvd19wcm9mcyhz dHJ1Y3QgaWNlX2h3ICpodykNCj4gPiArdm9pZCBpY2VfZmlsbF9ibGtfdGJscyhzdHJ1Y3QgaWNl X2h3ICpodykNCj4gPiAgIHsNCj4gPiAgIAl1OCBpOw0KPiA+DQo+ID4gICAJZm9yIChpID0gMDsg aSA8IElDRV9CTEtfQ09VTlQ7IGkrKykgew0KPiA+IC0JCXN0cnVjdCBpY2VfZmxvd19wcm9mICpw LCAqdG1wOw0KPiA+IC0NCj4gPiAtCQlpZiAoISZody0+ZmxfcHJvZnNbaV0pDQo+ID4gLQkJCWNv bnRpbnVlOw0KPiA+IC0NCj4gPiAtCQkvKiBUaGlzIGNhbGwgaXMgYmVpbmcgbWFkZSBhcyBwYXJ0 IG9mIHJlc291cmNlIGRlYWxsb2NhdGlvbg0KPiA+IC0JCSAqIGR1cmluZyB1bmxvYWQuIExvY2sg YWNxdWlyZSBhbmQgcmVsZWFzZSB3aWxsIG5vdCBiZQ0KPiA+IC0JCSAqIG5lY2Vzc2FyeSBoZXJl Lg0KPiA+IC0JCSAqLw0KPiA+IC0JCUxJU1RfRk9SX0VBQ0hfRU5UUllfU0FGRShwLCB0bXAsICZo dy0+ZmxfcHJvZnNbaV0sDQo+ID4gLQkJCQkJIGljZV9mbG93X3Byb2YsIGxfZW50cnkpIHsNCj4g PiAtCQkJc3RydWN0IGljZV9mbG93X2VudHJ5ICplLCAqdDsNCj4gPiAtDQo+ID4gLQkJCUxJU1Rf Rk9SX0VBQ0hfRU5UUllfU0FGRShlLCB0LCAmcC0+ZW50cmllcywNCj4gPiAtCQkJCQkJIGljZV9m bG93X2VudHJ5LCBsX2VudHJ5KQ0KPiA+IC0JCQkJaWNlX2Zsb3dfcmVtX2VudHJ5KGh3LA0KPiBJ Q0VfRkxPV19FTlRSWV9ITkRMKGUpKTsNCj4gPiAtDQo+ID4gLQkJCUxJU1RfREVMKCZwLT5sX2Vu dHJ5KTsNCj4gPiAtCQkJaWYgKHAtPmFjdHMpDQo+ID4gLQkJCQlpY2VfZnJlZShodywgcC0+YWN0 cyk7DQo+ID4gLQkJCWljZV9mcmVlKGh3LCBwKTsNCj4gPiAtCQl9DQo+ID4gKwkJZW51bSBpY2Vf YmxvY2sgYmxrX2lkID0gKGVudW0gaWNlX2Jsb2NrKWk7DQo+ID4NCj4gPiAtCQlpY2VfZGVzdHJv eV9sb2NrKCZody0+ZmxfcHJvZnNfbG9ja3NbaV0pOw0KPiA+ICsJCWljZV9maWxsX3RibChodywg YmxrX2lkLCBody0+YmxrW2Jsa19pZF0ueGx0MS5zaWQpOw0KPiA+ICsJCWljZV9maWxsX3RibCho dywgYmxrX2lkLCBody0+YmxrW2Jsa19pZF0ueGx0Mi5zaWQpOw0KPiA+ICsJCWljZV9maWxsX3Ri bChodywgYmxrX2lkLCBody0+YmxrW2Jsa19pZF0ucHJvZi5zaWQpOw0KPiA+ICsJCWljZV9maWxs X3RibChodywgYmxrX2lkLCBody0+YmxrW2Jsa19pZF0ucHJvZl9yZWRpci5zaWQpOw0KPiA+ICsJ CWljZV9maWxsX3RibChodywgYmxrX2lkLCBody0+YmxrW2Jsa19pZF0uZXMuc2lkKTsNCj4gDQo+ ID4gICAJfQ0KPiA+ICsNCj4gPiArCWljZV9pbml0X3N3X2RiKGh3KTsNCj4gDQo+IFByb3BhZ2F0 ZSBlcnJvciBvbmNlIGFib3ZlIGlzIGZpeGVkLg0KDQpTYW1lIGNvbW1lbnQgaGVyZQ0KDQo+IA0K PiA+ICAgfQ0KPiA+DQoNCg==