From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E5776C04AB5 for ; Thu, 6 Jun 2019 06:46:38 +0000 (UTC) Received: from dpdk.org (dpdk.org [92.243.14.124]) by mail.kernel.org (Postfix) with ESMTP id 5A80620673 for ; Thu, 6 Jun 2019 06:46:38 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5A80620673 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1DB661B946; Thu, 6 Jun 2019 08:46:37 +0200 (CEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by dpdk.org (Postfix) with ESMTP id 43A315424 for ; Thu, 6 Jun 2019 08:46:35 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga002.jf.intel.com ([10.7.209.21]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Jun 2019 23:46:33 -0700 X-ExtLoop1: 1 Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga002.jf.intel.com with ESMTP; 05 Jun 2019 23:46:32 -0700 Received: from fmsmsx156.amr.corp.intel.com (10.18.116.74) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 5 Jun 2019 23:46:18 -0700 Received: from shsmsx154.ccr.corp.intel.com (10.239.6.54) by fmsmsx156.amr.corp.intel.com (10.18.116.74) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 5 Jun 2019 23:46:17 -0700 Received: from shsmsx103.ccr.corp.intel.com ([169.254.4.120]) by SHSMSX154.ccr.corp.intel.com ([169.254.7.247]) with mapi id 14.03.0415.000; Thu, 6 Jun 2019 14:46:16 +0800 From: "Rong, Leyi" To: Maxime Coquelin , "Zhang, Qi Z" CC: "dev@dpdk.org" , "Stillwell Jr, Paul M" Thread-Topic: [dpdk-dev] [PATCH 39/49] net/ice/base: slightly code update Thread-Index: AQHVGpiaNRoFOvAcv0ifeweN2kdwZKaMcm+AgAG+dJA= Date: Thu, 6 Jun 2019 06:46:15 +0000 Message-ID: <47ACC7359E973C41ACB0C2477632BC72518B7F64@SHSMSX103.ccr.corp.intel.com> References: <20190604054248.68510-1-leyi.rong@intel.com> <20190604054248.68510-40-leyi.rong@intel.com> <047e2318-7002-03a5-4fbc-87da9c00406c@redhat.com> In-Reply-To: <047e2318-7002-03a5-4fbc-87da9c00406c@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: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiY2NhZjdkNjAtMzAwZC00MjU1LTk1YWMtOTUxYTQyMDVjMjQ3IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiRyswN29OdkJLWHpqOHFUYUoyV3VpUEFtZnEzemhIZE90a2NpNHFZajRaNFB6bDVBVHlZQ2VLM2RpZTdYSGtsXC8ifQ== dlp-product: dlpe-windows dlp-version: 11.2.0.6 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 39/49] net/ice/base: slightly code 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206IE1heGltZSBDb3F1ZWxpbiBb bWFpbHRvOm1heGltZS5jb3F1ZWxpbkByZWRoYXQuY29tXQ0KPiBTZW50OiBXZWRuZXNkYXksIEp1 bmUgNSwgMjAxOSA4OjA1IFBNDQo+IFRvOiBSb25nLCBMZXlpIDxsZXlpLnJvbmdAaW50ZWwuY29t PjsgWmhhbmcsIFFpIFogPHFpLnouemhhbmdAaW50ZWwuY29tPg0KPiBDYzogZGV2QGRwZGsub3Jn OyBTdGlsbHdlbGwgSnIsIFBhdWwgTSA8cGF1bC5tLnN0aWxsd2VsbC5qckBpbnRlbC5jb20+DQo+ IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCAzOS80OV0gbmV0L2ljZS9iYXNlOiBzbGln aHRseSBjb2RlIHVwZGF0ZQ0KPiANCj4gDQo+IA0KPiBPbiA2LzQvMTkgNzo0MiBBTSwgTGV5aSBS b25nIHdyb3RlOg0KPiA+IE1haW5seSB1cGRhdGUgYmVsb3cgZnVuY3Rpb25zOg0KPiA+DQo+ID4g aWNlX2Zsb3dfcHJvY19zZWdfaGRycw0KPiA+IGljZV9mbG93X2ZpbmRfcHJvZl9jb25kcw0KPiA+ IGljZV9kZWFsbG9jX2Zsb3dfZW50cnkNCj4gPiBpY2VfYWRkX3J1bGVfaW50ZXJuYWwNCj4gDQo+ IA0KPiBJdCBzZWVtcyB0aGF0IHNvbWUgb2YgdGhlIGNoYW5nZXMgYXJlIGJ1ZyBmaXhlcy4NCj4g U28gSU1PLCB0aGVzZSBjaGFuZ2VzIHNob3VsZCBiZSBpbiBkZWRpY2F0ZWQgcGF0Y2hlcywgd2l0 aCBGaXhlcyB0YWcgaW4gdGhlIGNvbW1pdCBtZXNzYWdlLg0KPiANCj4gT3ZlcmFsbCwgdGhlc2Ug Y2hhbmdlcyBzaG91bGQgYmUgc3BsaXQgYnkga2luZCBvZiBjaGFuZ2VzLiBUaGVyZSBhcmUgZnVu Y3Rpb25zIHJld29ya3MsIG1pbm9yIGNsZWFudXBzLCByb2J1c3RuZXNzDQo+IGNoYW5nZXMsIC4u Lg0KDQpXaWxsIHRyeSB0byBzcGxpdCB0aGlzIGNvbW1pdCBpbnRvIG11bHRpcGxlIG9uZXMgYXMg eW91ciBzdWdnZXN0aW9uLCB0aGFua3MhDQoNCj4gDQo+ID4gU2lnbmVkLW9mZi1ieTogUGF1bCBN IFN0aWxsd2VsbCBKciA8cGF1bC5tLnN0aWxsd2VsbC5qckBpbnRlbC5jb20+DQo+ID4gU2lnbmVk LW9mZi1ieTogTGV5aSBSb25nIDxsZXlpLnJvbmdAaW50ZWwuY29tPg0KPiA+IC0tLQ0KPiA+ICAg ZHJpdmVycy9uZXQvaWNlL2Jhc2UvaWNlX2ZsZXhfcGlwZS5jICAgICB8IDEzICsrKy0tLS0NCj4g PiAgIGRyaXZlcnMvbmV0L2ljZS9iYXNlL2ljZV9mbG93LmMgICAgICAgICAgfCA0NyArKysrKysr KysrKysrKysrKy0tLS0tLS0NCj4gPiAgIGRyaXZlcnMvbmV0L2ljZS9iYXNlL2ljZV9udm0uYyAg ICAgICAgICAgfCAgNCArLQ0KPiA+ICAgZHJpdmVycy9uZXQvaWNlL2Jhc2UvaWNlX3Byb3RvY29s X3R5cGUuaCB8ICAxICsNCj4gPiAgIGRyaXZlcnMvbmV0L2ljZS9iYXNlL2ljZV9zd2l0Y2guYyAg ICAgICAgfCAyNCArKysrKysrLS0tLS0NCj4gPiAgIGRyaXZlcnMvbmV0L2ljZS9iYXNlL2ljZV9z d2l0Y2guaCAgICAgICAgfCAxNCArKystLS0tDQo+ID4gICBkcml2ZXJzL25ldC9pY2UvYmFzZS9p Y2VfdHlwZS5oICAgICAgICAgIHwgMTMgKysrKysrLQ0KPiA+ICAgNyBmaWxlcyBjaGFuZ2VkLCA3 MyBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkNCj4gPg0KPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9pY2UvYmFzZS9pY2VfZmxleF9waXBlLmMNCj4gPiBiL2RyaXZlcnMvbmV0L2lj ZS9iYXNlL2ljZV9mbGV4X3BpcGUuYw0KPiA+IGluZGV4IDU4NjRjYmYzZS4uMmEzMTBiNmUxIDEw MDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvbmV0L2ljZS9iYXNlL2ljZV9mbGV4X3BpcGUuYw0KPiA+ ICsrKyBiL2RyaXZlcnMvbmV0L2ljZS9iYXNlL2ljZV9mbGV4X3BpcGUuYw0KPiA+IEBAIC0xMzQs NyArMTM0LDcgQEAgc3RhdGljIHN0cnVjdCBpY2VfYnVmX3RhYmxlICppY2VfZmluZF9idWZfdGFi bGUoc3RydWN0IGljZV9zZWcgKmljZV9zZWcpDQo+ID4gICAJbnZtcyA9IChzdHJ1Y3QgaWNlX252 bV90YWJsZSAqKShpY2Vfc2VnLT5kZXZpY2VfdGFibGUgKw0KPiA+ICAgCQlMRTMyX1RPX0NQVShp Y2Vfc2VnLT5kZXZpY2VfdGFibGVfY291bnQpKTsNCj4gPg0KPiA+IC0JcmV0dXJuIChzdHJ1Y3Qg aWNlX2J1Zl90YWJsZSAqKQ0KPiA+ICsJcmV0dXJuIChfRk9SQ0VfIHN0cnVjdCBpY2VfYnVmX3Rh YmxlICopDQo+ID4gICAJCShudm1zLT52ZXJzICsgTEUzMl9UT19DUFUobnZtcy0+dGFibGVfY291 bnQpKTsNCj4gPiAgIH0NCj4gPg0KPiA+IEBAIC0xMDA1LDkgKzEwMDUsOCBAQCBpY2VfZHdubGRf Y2ZnX2J1ZnMoc3RydWN0IGljZV9odyAqaHcsIHN0cnVjdA0KPiA+IGljZV9idWYgKmJ1ZnMsIHUz MiBjb3VudCkNCj4gPg0KPiA+ICAgCQliaCA9IChzdHJ1Y3QgaWNlX2J1Zl9oZHIgKikoYnVmcyAr IGkpOw0KPiA+DQo+ID4gLQkJc3RhdHVzID0gaWNlX2FxX2Rvd25sb2FkX3BrZyhodywgYmgsIExF MTZfVE9fQ1BVKGJoLT5kYXRhX2VuZCksDQo+ID4gLQkJCQkJICAgICBsYXN0LCAmb2Zmc2V0LCAm aW5mbywgTlVMTCk7DQo+ID4gLQ0KPiA+ICsJCXN0YXR1cyA9IGljZV9hcV9kb3dubG9hZF9wa2co aHcsIGJoLCBJQ0VfUEtHX0JVRl9TSVpFLCBsYXN0LA0KPiA+ICsJCQkJCSAgICAgJm9mZnNldCwg JmluZm8sIE5VTEwpOw0KPiA+ICAgCQlpZiAoc3RhdHVzKSB7DQo+ID4gICAJCQlpY2VfZGVidWco aHcsIElDRV9EQkdfUEtHLA0KPiA+ICAgCQkJCSAgIlBrZyBkb3dubG9hZCBmYWlsZWQ6IGVyciAl ZCBvZmYgJWQgaW5mICVkXG4iLCBAQCAtMjkzNyw3DQo+ID4gKzI5MzYsNyBAQCBzdGF0aWMgdm9p ZCBpY2VfZmlsbF90Ymwoc3RydWN0IGljZV9odyAqaHcsIGVudW0gaWNlX2Jsb2NrIGJsb2NrX2lk LCB1MzIgc2lkKQ0KPiA+ICAgCQljYXNlIElDRV9TSURfWExUMl9BQ0w6DQo+ID4gICAJCWNhc2Ug SUNFX1NJRF9YTFQyX1BFOg0KPiA+ICAgCQkJeGx0MiA9IChzdHJ1Y3QgaWNlX3hsdDJfc2VjdGlv biAqKXNlY3Q7DQo+ID4gLQkJCXNyYyA9ICh1OCAqKXhsdDItPnZhbHVlOw0KPiA+ICsJCQlzcmMg PSAoX0ZPUkNFXyB1OCAqKXhsdDItPnZhbHVlOw0KPiA+ICAgCQkJc2VjdF9sZW4gPSBMRTE2X1RP X0NQVSh4bHQyLT5jb3VudCkgKg0KPiA+ICAgCQkJCXNpemVvZigqaHctPmJsa1tibG9ja19pZF0u eGx0Mi50KTsNCj4gPiAgIAkJCWRzdCA9ICh1OCAqKWh3LT5ibGtbYmxvY2tfaWRdLnhsdDIudDsg QEAgLTM4ODksNyArMzg4OCw3IEBADQo+ID4gaWNlX3VwZGF0ZV9mZF9zd2FwKHN0cnVjdCBpY2Vf aHcgKmh3LCB1MTYgcHJvZl9pZCwgc3RydWN0IGljZV9mdl93b3JkDQo+ID4gKmVzKQ0KPiA+DQo+ ID4gICAJLyogZmlsbCBpbiB0aGUgc3dhcCBhcnJheSAqLw0KPiA+ICAgCXNpID0gaHctPmJsa1tJ Q0VfQkxLX0ZEXS5lcy5mdncgLSAxOw0KPiA+IC0JZG8gew0KPiA+ICsJd2hpbGUgKHNpID49IDAp IHsNCj4gPiAgIAkJdTggaW5kZXhlc191c2VkID0gMTsNCj4gPg0KPiA+ICAgCQkvKiBhc3N1bWUg ZmxhdCBhdCB0aGlzIGluZGV4ICovDQo+ID4gQEAgLTM5MjEsNyArMzkyMCw3IEBAIGljZV91cGRh dGVfZmRfc3dhcChzdHJ1Y3QgaWNlX2h3ICpodywgdTE2IHByb2ZfaWQsIHN0cnVjdCBpY2VfZnZf d29yZCAqZXMpDQo+ID4gICAJCX0NCj4gPg0KPiA+ICAgCQlzaSAtPSBpbmRleGVzX3VzZWQ7DQo+ ID4gLQl9IHdoaWxlIChzaSA+PSAwKTsNCj4gPiArCX0NCj4gPg0KPiA+ICAgCS8qIGZvciBlYWNo IHNldCBvZiA0IHN3YXAgaW5kZXhlcywgd3JpdGUgdGhlIGFwcHJvcHJpYXRlIHJlZ2lzdGVyICov DQo+ID4gICAJZm9yIChqID0gMDsgaiA8IGh3LT5ibGtbSUNFX0JMS19GRF0uZXMuZnZ3IC8gNDsg aisrKSB7IGRpZmYgLS1naXQNCj4gPiBhL2RyaXZlcnMvbmV0L2ljZS9iYXNlL2ljZV9mbG93LmMg Yi9kcml2ZXJzL25ldC9pY2UvYmFzZS9pY2VfZmxvdy5jDQo+ID4gaW5kZXggNzk1YWJlOThmLi5m MzE1NTdlYWMgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9uZXQvaWNlL2Jhc2UvaWNlX2Zsb3cu Yw0KPiA+ICsrKyBiL2RyaXZlcnMvbmV0L2ljZS9iYXNlL2ljZV9mbG93LmMNCj4gPiBAQCAtNDE1 LDkgKzQxNSw2IEBAIGljZV9mbG93X3Byb2Nfc2VnX2hkcnMoc3RydWN0IGljZV9mbG93X3Byb2Zf cGFyYW1zICpwYXJhbXMpDQo+ID4gICAJCWNvbnN0IGljZV9iaXRtYXBfdCAqc3JjOw0KPiA+ICAg CQl1MzIgaGRyczsNCj4gPg0KPiA+IC0JCWlmIChpID4gMCAmJiAoaSArIDEpIDwgcHJvZi0+c2Vn c19jbnQpDQo+ID4gLQkJCWNvbnRpbnVlOw0KPiA+IC0NCj4gPiAgIAkJaGRycyA9IHByb2YtPnNl Z3NbaV0uaGRyczsNCj4gPg0KPiA+ICAgCQlpZiAoaGRycyAmIElDRV9GTE9XX1NFR19IRFJfRVRI KSB7IEBAIC04NDcsNiArODQ0LDcgQEANCj4gPiBpY2VfZmxvd19wcm9jX3NlZ3Moc3RydWN0IGlj ZV9odyAqaHcsIHN0cnVjdCBpY2VfZmxvd19wcm9mX3BhcmFtcw0KPiA+ICpwYXJhbXMpDQo+ID4N Cj4gPiAgICNkZWZpbmUgSUNFX0ZMT1dfRklORF9QUk9GX0NIS19GTERTCTB4MDAwMDAwMDENCj4g PiAgICNkZWZpbmUgSUNFX0ZMT1dfRklORF9QUk9GX0NIS19WU0kJMHgwMDAwMDAwMg0KPiA+ICsj ZGVmaW5lIElDRV9GTE9XX0ZJTkRfUFJPRl9OT1RfQ0hLX0RJUgkweDAwMDAwMDA0DQo+ID4NCj4g PiAgIC8qKg0KPiA+ICAgICogaWNlX2Zsb3dfZmluZF9wcm9mX2NvbmRzIC0gRmluZCBhIHByb2Zp bGUgbWF0Y2hpbmcgaGVhZGVycyBhbmQNCj4gPiBjb25kaXRpb25zIEBAIC04NjYsNyArODY0LDgg QEAgaWNlX2Zsb3dfZmluZF9wcm9mX2NvbmRzKHN0cnVjdCBpY2VfaHcgKmh3LCBlbnVtIGljZV9i bG9jayBibGssDQo+ID4gICAJc3RydWN0IGljZV9mbG93X3Byb2YgKnA7DQo+ID4NCj4gPiAgIAlM SVNUX0ZPUl9FQUNIX0VOVFJZKHAsICZody0+ZmxfcHJvZnNbYmxrXSwgaWNlX2Zsb3dfcHJvZiwg bF9lbnRyeSkgew0KPiA+IC0JCWlmIChwLT5kaXIgPT0gZGlyICYmIHNlZ3NfY250ICYmIHNlZ3Nf Y250ID09IHAtPnNlZ3NfY250KSB7DQo+ID4gKwkJaWYgKChwLT5kaXIgPT0gZGlyIHx8IGNvbmRz ICYgSUNFX0ZMT1dfRklORF9QUk9GX05PVF9DSEtfRElSKSAmJg0KPiA+ICsJCSAgICBzZWdzX2Nu dCAmJiBzZWdzX2NudCA9PSBwLT5zZWdzX2NudCkgew0KPiA+ICAgCQkJdTggaTsNCj4gPg0KPiA+ ICAgCQkJLyogQ2hlY2sgZm9yIHByb2ZpbGUtVlNJIGFzc29jaWF0aW9uIGlmIHNwZWNpZmllZCAq LyBAQCAtOTM1LDE3DQo+ID4gKzkzNCwxNSBAQCBpY2VfZmxvd19maW5kX3Byb2ZfaWQoc3RydWN0 IGljZV9odyAqaHcsIGVudW0gaWNlX2Jsb2NrIGJsaywgdTY0IHByb2ZfaWQpDQo+ID4gICB9DQo+ ID4NCj4gPiAgIC8qKg0KPiA+IC0gKiBpY2VfZmxvd19yZW1fZW50cnlfc3luYyAtIFJlbW92ZSBh IGZsb3cgZW50cnkNCj4gPiArICogaWNlX2RlYWxsb2NfZmxvd19lbnRyeSAtIERlYWxsb2NhdGUg ZmxvdyBlbnRyeSBtZW1vcnkNCj4gPiAgICAqIEBodzogcG9pbnRlciB0byB0aGUgSFcgc3RydWN0 DQo+ID4gICAgKiBAZW50cnk6IGZsb3cgZW50cnkgdG8gYmUgcmVtb3ZlZA0KPiA+ICAgICovDQo+ ID4gLXN0YXRpYyBlbnVtIGljZV9zdGF0dXMNCj4gPiAtaWNlX2Zsb3dfcmVtX2VudHJ5X3N5bmMo c3RydWN0IGljZV9odyAqaHcsIHN0cnVjdCBpY2VfZmxvd19lbnRyeQ0KPiA+ICplbnRyeSkNCj4g PiArc3RhdGljIHZvaWQNCj4gPiAraWNlX2RlYWxsb2NfZmxvd19lbnRyeShzdHJ1Y3QgaWNlX2h3 ICpodywgc3RydWN0IGljZV9mbG93X2VudHJ5DQo+ID4gKyplbnRyeSkNCj4gPiAgIHsNCj4gPiAg IAlpZiAoIWVudHJ5KQ0KPiA+IC0JCXJldHVybiBJQ0VfRVJSX0JBRF9QVFI7DQo+ID4gLQ0KPiA+ IC0JTElTVF9ERUwoJmVudHJ5LT5sX2VudHJ5KTsNCj4gPiArCQlyZXR1cm47DQo+ID4NCj4gPiAg IAlpZiAoZW50cnktPmVudHJ5KQ0KPiA+ICAgCQlpY2VfZnJlZShodywgZW50cnktPmVudHJ5KTsN Cj4gPiBAQCAtOTU3LDYgKzk1NCwyMiBAQCBpY2VfZmxvd19yZW1fZW50cnlfc3luYyhzdHJ1Y3Qg aWNlX2h3ICpodywgc3RydWN0IGljZV9mbG93X2VudHJ5ICplbnRyeSkNCj4gPiAgIAl9DQo+ID4N Cj4gPiAgIAlpY2VfZnJlZShodywgZW50cnkpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICsvKioNCj4g PiArICogaWNlX2Zsb3dfcmVtX2VudHJ5X3N5bmMgLSBSZW1vdmUgYSBmbG93IGVudHJ5DQo+ID4g KyAqIEBodzogcG9pbnRlciB0byB0aGUgSFcgc3RydWN0DQo+ID4gKyAqIEBlbnRyeTogZmxvdyBl bnRyeSB0byBiZSByZW1vdmVkDQo+ID4gKyAqLw0KPiA+ICtzdGF0aWMgZW51bSBpY2Vfc3RhdHVz DQo+ID4gK2ljZV9mbG93X3JlbV9lbnRyeV9zeW5jKHN0cnVjdCBpY2VfaHcgKmh3LCBzdHJ1Y3Qg aWNlX2Zsb3dfZW50cnkNCj4gPiArKmVudHJ5KSB7DQo+ID4gKwlpZiAoIWVudHJ5KQ0KPiA+ICsJ CXJldHVybiBJQ0VfRVJSX0JBRF9QVFI7DQo+ID4gKw0KPiA+ICsJTElTVF9ERUwoJmVudHJ5LT5s X2VudHJ5KTsNCj4gPiArDQo+ID4gKwlpY2VfZGVhbGxvY19mbG93X2VudHJ5KGh3LCBlbnRyeSk7 DQo+ID4NCj4gPiAgIAlyZXR1cm4gSUNFX1NVQ0NFU1M7DQo+ID4gICB9DQo+ID4gQEAgLTEzOTUs OSArMTQwOCwxMiBAQCBpY2VfZmxvd19hZGRfZW50cnkoc3RydWN0IGljZV9odyAqaHcsIGVudW0g aWNlX2Jsb2NrIGJsaywgdTY0IHByb2ZfaWQsDQo+ID4gICAJCWdvdG8gb3V0Ow0KPiA+ICAgCX0N Cj4gPg0KPiA+IC0JaWNlX2FjcXVpcmVfbG9jaygmcHJvZi0+ZW50cmllc19sb2NrKTsNCj4gPiAt CUxJU1RfQUREKCZlLT5sX2VudHJ5LCAmcHJvZi0+ZW50cmllcyk7DQo+ID4gLQlpY2VfcmVsZWFz ZV9sb2NrKCZwcm9mLT5lbnRyaWVzX2xvY2spOw0KPiA+ICsJaWYgKGJsayAhPSBJQ0VfQkxLX0FD TCkgew0KPiA+ICsJCS8qIEFDTCB3aWxsIGhhbmRsZSB0aGUgZW50cnkgbWFuYWdlbWVudCAqLw0K PiA+ICsJCWljZV9hY3F1aXJlX2xvY2soJnByb2YtPmVudHJpZXNfbG9jayk7DQo+ID4gKwkJTElT VF9BREQoJmUtPmxfZW50cnksICZwcm9mLT5lbnRyaWVzKTsNCj4gPiArCQlpY2VfcmVsZWFzZV9s b2NrKCZwcm9mLT5lbnRyaWVzX2xvY2spOw0KPiA+ICsJfQ0KPiA+DQo+ID4gICAJKmVudHJ5X2gg PSBJQ0VfRkxPV19FTlRSWV9ITkRMKGUpOw0KPiA+DQo+ID4gQEAgLTE0MjUsNyArMTQ0MSw3IEBA IGVudW0gaWNlX3N0YXR1cyBpY2VfZmxvd19yZW1fZW50cnkoc3RydWN0IGljZV9odyAqaHcsIHU2 NCBlbnRyeV9oKQ0KPiA+ICAgCWlmIChlbnRyeV9oID09IElDRV9GTE9XX0VOVFJZX0hBTkRMRV9J TlZBTCkNCj4gPiAgIAkJcmV0dXJuIElDRV9FUlJfUEFSQU07DQo+ID4NCj4gPiAtCWVudHJ5ID0g SUNFX0ZMT1dfRU5UUllfUFRSKCh1bnNpZ25lZCBsb25nKWVudHJ5X2gpOw0KPiA+ICsJZW50cnkg PSBJQ0VfRkxPV19FTlRSWV9QVFIoZW50cnlfaCk7DQo+ID4NCj4gPiAgIAkvKiBSZXRhaW4gdGhl IHBvaW50ZXIgdG8gdGhlIGZsb3cgcHJvZmlsZSBhcyB0aGUgZW50cnkgd2lsbCBiZSBmcmVlZCAq Lw0KPiA+ICAgCXByb2YgPSBlbnRyeS0+cHJvZjsNCj4gPiBAQCAtMTY3Niw2ICsxNjkyLDkgQEAg ZW51bSBpY2Vfc3RhdHVzIGljZV9yZW1fdnNpX3Jzc19jZmcoc3RydWN0IGljZV9odyAqaHcsIHUx NiB2c2lfaGFuZGxlKQ0KPiA+ICAgCWlmICghaWNlX2lzX3ZzaV92YWxpZChodywgdnNpX2hhbmRs ZSkpDQo+ID4gICAJCXJldHVybiBJQ0VfRVJSX1BBUkFNOw0KPiA+DQo+ID4gKwlpZiAoTElTVF9F TVBUWSgmaHctPmZsX3Byb2ZzW2Jsa10pKQ0KPiA+ICsJCXJldHVybiBJQ0VfU1VDQ0VTUzsNCj4g PiArDQo+IA0KPiBJdCBzaG91bGQgYmUgdXNlbGVzcyBhcyBMSVNUX0ZPUl9FQUNIX0VOVFJZX1NB RkUgaGFuZGxlcyB0aGF0IGNhc2UgcHJvcGVybHkgSUlVQy4NCj4gDQo+ID4gICAJaWNlX2FjcXVp cmVfbG9jaygmaHctPmZsX3Byb2ZzX2xvY2tzW2Jsa10pOw0KPiA+ICAgCUxJU1RfRk9SX0VBQ0hf RU5UUllfU0FGRShwLCB0LCAmaHctPmZsX3Byb2ZzW2Jsa10sIGljZV9mbG93X3Byb2YsDQo+ID4g ICAJCQkJIGxfZW50cnkpIHsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaWNlL2Jhc2Uv aWNlX252bS5jDQo+ID4gYi9kcml2ZXJzL25ldC9pY2UvYmFzZS9pY2VfbnZtLmMgaW5kZXggZmE5 YzM0OGNlLi43NmNmZWRiMjkgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9uZXQvaWNlL2Jhc2Uv aWNlX252bS5jDQo+ID4gKysrIGIvZHJpdmVycy9uZXQvaWNlL2Jhc2UvaWNlX252bS5jDQo+ID4g QEAgLTEyNyw3ICsxMjcsNyBAQCBpY2VfcmVhZF9zcl93b3JkX2FxKHN0cnVjdCBpY2VfaHcgKmh3 LCB1MTYgb2Zmc2V0LA0KPiA+IHUxNiAqZGF0YSkNCj4gPg0KPiA+ICAgCXN0YXR1cyA9IGljZV9y ZWFkX3NyX2FxKGh3LCBvZmZzZXQsIDEsIGRhdGEsIHRydWUpOw0KPiA+ICAgCWlmICghc3RhdHVz KQ0KPiA+IC0JCSpkYXRhID0gTEUxNl9UT19DUFUoKihfX2xlMTYgKilkYXRhKTsNCj4gPiArCQkq ZGF0YSA9IExFMTZfVE9fQ1BVKCooX0ZPUkNFXyBfX2xlMTYgKilkYXRhKTsNCj4gPg0KPiA+ICAg CXJldHVybiBzdGF0dXM7DQo+ID4gICB9DQo+ID4gQEAgLTE4NSw3ICsxODUsNyBAQCBpY2VfcmVh ZF9zcl9idWZfYXEoc3RydWN0IGljZV9odyAqaHcsIHUxNiBvZmZzZXQsIHUxNiAqd29yZHMsIHUx NiAqZGF0YSkNCj4gPiAgIAl9IHdoaWxlICh3b3Jkc19yZWFkIDwgKndvcmRzKTsNCj4gPg0KPiA+ ICAgCWZvciAoaSA9IDA7IGkgPCAqd29yZHM7IGkrKykNCj4gPiAtCQlkYXRhW2ldID0gTEUxNl9U T19DUFUoKChfX2xlMTYgKilkYXRhKVtpXSk7DQo+ID4gKwkJZGF0YVtpXSA9IExFMTZfVE9fQ1BV KCgoX0ZPUkNFXyBfX2xlMTYgKilkYXRhKVtpXSk7DQo+ID4NCj4gPiAgIHJlYWRfbnZtX2J1Zl9h cV9leGl0Og0KPiA+ICAgCSp3b3JkcyA9IHdvcmRzX3JlYWQ7DQo+ID4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbmV0L2ljZS9iYXNlL2ljZV9wcm90b2NvbF90eXBlLmgNCj4gPiBiL2RyaXZlcnMvbmV0 L2ljZS9iYXNlL2ljZV9wcm90b2NvbF90eXBlLmgNCj4gPiBpbmRleCBlNTcyZGQzMjAuLjgyODIy ZmI3NCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL25ldC9pY2UvYmFzZS9pY2VfcHJvdG9jb2xf dHlwZS5oDQo+ID4gKysrIGIvZHJpdmVycy9uZXQvaWNlL2Jhc2UvaWNlX3Byb3RvY29sX3R5cGUu aA0KPiA+IEBAIC0xODksNiArMTg5LDcgQEAgc3RydWN0IGljZV91ZHBfdG5sX2hkciB7DQo+ID4g ICAJdTE2IGZpZWxkOw0KPiA+ICAgCXUxNiBwcm90b190eXBlOw0KPiA+ICAgCXUxNiB2bmk7DQo+ ID4gKwl1MTYgcmVzZXJ2ZWQ7DQo+ID4gICB9Ow0KPiA+DQo+ID4gICBzdHJ1Y3QgaWNlX252Z3Jl IHsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9uZXQvaWNlL2Jhc2UvaWNlX3N3aXRjaC5jDQo+ ID4gYi9kcml2ZXJzL25ldC9pY2UvYmFzZS9pY2Vfc3dpdGNoLmMNCj4gPiBpbmRleCBmYWFlZGQ0 YzguLjM3M2FjYjdhNiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL25ldC9pY2UvYmFzZS9pY2Vf c3dpdGNoLmMNCj4gPiArKysgYi9kcml2ZXJzL25ldC9pY2UvYmFzZS9pY2Vfc3dpdGNoLmMNCj4g PiBAQCAtMjc5LDYgKzI3OSw3IEBAIGVudW0gaWNlX3N0YXR1cyBpY2VfaW5pdF9kZWZfc3dfcmVj cChzdHJ1Y3QgaWNlX2h3ICpodykNCj4gPiAgIAkJcmVjcHNbaV0ucm9vdF9yaWQgPSBpOw0KPiA+ ICAgCQlJTklUX0xJU1RfSEVBRCgmcmVjcHNbaV0uZmlsdF9ydWxlcyk7DQo+ID4gICAJCUlOSVRf TElTVF9IRUFEKCZyZWNwc1tpXS5maWx0X3JlcGxheV9ydWxlcyk7DQo+ID4gKwkJSU5JVF9MSVNU X0hFQUQoJnJlY3BzW2ldLnJnX2xpc3QpOw0KPiANCj4gVGhhdCBsb29rcyBsaWtlIGEgYnVnIGZp eCwgaXNuJ3QgaXQ/DQo+IA0KPiA+ICAgCQlpY2VfaW5pdF9sb2NrKCZyZWNwc1tpXS5maWx0X3J1 bGVfbG9jayk7DQo+ID4gICAJfQ0KPiA+DQo+ID4gQEAgLTg1OSw3ICs4NjAsNyBAQCBpY2VfYXFf YWRkX3VwZGF0ZV9taXJfcnVsZShzdHJ1Y3QgaWNlX2h3ICpodywgdTE2IHJ1bGVfdHlwZSwgdTE2 IGRlc3RfdnNpLA0KPiA+ICAgCQkJcmV0dXJuIElDRV9FUlJfUEFSQU07DQo+ID4NCj4gPiAgIAkJ YnVmX3NpemUgPSBjb3VudCAqIHNpemVvZihfX2xlMTYpOw0KPiA+IC0JCW1yX2xpc3QgPSAoX19s ZTE2ICopaWNlX21hbGxvYyhodywgYnVmX3NpemUpOw0KPiA+ICsJCW1yX2xpc3QgPSAoX0ZPUkNF XyBfX2xlMTYgKilpY2VfbWFsbG9jKGh3LCBidWZfc2l6ZSk7DQo+ID4gICAJCWlmICghbXJfbGlz dCkNCj4gPiAgIAkJCXJldHVybiBJQ0VfRVJSX05PX01FTU9SWTsNCj4gPiAgIAkJYnJlYWs7DQo+ ID4gQEAgLTE0NTksNyArMTQ2MCw2IEBAIHN0YXRpYyBpbnQgaWNlX2lsb2cyKHU2NCBuKQ0KPiA+ ICAgCXJldHVybiAtMTsNCj4gPiAgIH0NCj4gPg0KPiA+IC0NCj4gPiAgIC8qKg0KPiA+ICAgICog aWNlX2ZpbGxfc3dfcnVsZSAtIEhlbHBlciBmdW5jdGlvbiB0byBmaWxsIHN3aXRjaCBydWxlIHN0 cnVjdHVyZQ0KPiA+ICAgICogQGh3OiBwb2ludGVyIHRvIHRoZSBoYXJkd2FyZSBzdHJ1Y3R1cmUg QEAgLTE0NzksNyArMTQ3OSw2IEBADQo+ID4gaWNlX2ZpbGxfc3dfcnVsZShzdHJ1Y3QgaWNlX2h3 ICpodywgc3RydWN0IGljZV9mbHRyX2luZm8gKmZfaW5mbywNCj4gPiAgIAlfX2JlMTYgKm9mZjsN Cj4gPiAgIAl1OCBxX3JnbjsNCj4gPg0KPiA+IC0NCj4gPiAgIAlpZiAob3BjID09IGljZV9hcWNf b3BjX3JlbW92ZV9zd19ydWxlcykgew0KPiA+ICAgCQlzX3J1bGUtPnBkYXRhLmxrdXBfdHhfcngu YWN0ID0gMDsNCj4gPiAgIAkJc19ydWxlLT5wZGF0YS5sa3VwX3R4X3J4LmluZGV4ID0NCj4gPiBA QCAtMTU1NSw3ICsxNTU0LDcgQEAgaWNlX2ZpbGxfc3dfcnVsZShzdHJ1Y3QgaWNlX2h3ICpodywg c3RydWN0IGljZV9mbHRyX2luZm8gKmZfaW5mbywNCj4gPiAgIAkJZGFkZHIgPSBmX2luZm8tPmxf ZGF0YS5ldGhlcnR5cGVfbWFjLm1hY19hZGRyOw0KPiA+ICAgCQkvKiBmYWxsLXRocm91Z2ggKi8N Cj4gPiAgIAljYXNlIElDRV9TV19MS1VQX0VUSEVSVFlQRToNCj4gPiAtCQlvZmYgPSAoX19iZTE2 ICopKGV0aF9oZHIgKyBJQ0VfRVRIX0VUSFRZUEVfT0ZGU0VUKTsNCj4gPiArCQlvZmYgPSAoX0ZP UkNFXyBfX2JlMTYgKikoZXRoX2hkciArIElDRV9FVEhfRVRIVFlQRV9PRkZTRVQpOw0KPiA+ICAg CQkqb2ZmID0gQ1BVX1RPX0JFMTYoZl9pbmZvLT5sX2RhdGEuZXRoZXJ0eXBlX21hYy5ldGhlcnR5 cGUpOw0KPiA+ICAgCQlicmVhazsNCj4gPiAgIAljYXNlIElDRV9TV19MS1VQX01BQ19WTEFOOg0K PiA+IEBAIC0xNTg2LDcgKzE1ODUsNyBAQCBpY2VfZmlsbF9zd19ydWxlKHN0cnVjdCBpY2VfaHcg Kmh3LCBzdHJ1Y3QgaWNlX2ZsdHJfaW5mbyAqZl9pbmZvLA0KPiA+ICAgCQkJICAgSUNFX05PTkRN QV9UT19OT05ETUEpOw0KPiA+DQo+ID4gICAJaWYgKCEodmxhbl9pZCA+IElDRV9NQVhfVkxBTl9J RCkpIHsNCj4gPiAtCQlvZmYgPSAoX19iZTE2ICopKGV0aF9oZHIgKyBJQ0VfRVRIX1ZMQU5fVENJ X09GRlNFVCk7DQo+ID4gKwkJb2ZmID0gKF9GT1JDRV8gX19iZTE2ICopKGV0aF9oZHIgKyBJQ0Vf RVRIX1ZMQU5fVENJX09GRlNFVCk7DQo+ID4gICAJCSpvZmYgPSBDUFVfVE9fQkUxNih2bGFuX2lk KTsNCj4gPiAgIAl9DQo+ID4NCj4gPiBAQCAtMjI4OSwxNCArMjI4OCwxNSBAQCBpY2VfYWRkX3J1 bGVfaW50ZXJuYWwoc3RydWN0IGljZV9odyAqaHcsIHU4DQo+ID4gcmVjcF9pZCwNCj4gPg0KPiA+ ICAgCW1fZW50cnkgPSBpY2VfZmluZF9ydWxlX2VudHJ5KGh3LCByZWNwX2lkLCBuZXdfZmx0cik7 DQo+ID4gICAJaWYgKCFtX2VudHJ5KSB7DQo+ID4gLQkJaWNlX3JlbGVhc2VfbG9jayhydWxlX2xv Y2spOw0KPiA+IC0JCXJldHVybiBpY2VfY3JlYXRlX3BrdF9md2RfcnVsZShodywgZl9lbnRyeSk7 DQo+ID4gKwkJc3RhdHVzID0gaWNlX2NyZWF0ZV9wa3RfZndkX3J1bGUoaHcsIGZfZW50cnkpOw0K PiA+ICsJCWdvdG8gZXhpdF9hZGRfcnVsZV9pbnRlcm5hbDsNCj4gPiAgIAl9DQo+ID4NCj4gPiAg IAljdXJfZmx0ciA9ICZtX2VudHJ5LT5mbHRyX2luZm87DQo+ID4gICAJc3RhdHVzID0gaWNlX2Fk ZF91cGRhdGVfdnNpX2xpc3QoaHcsIG1fZW50cnksIGN1cl9mbHRyLCBuZXdfZmx0cik7DQo+ID4g LQlpY2VfcmVsZWFzZV9sb2NrKHJ1bGVfbG9jayk7DQo+ID4NCj4gPiArZXhpdF9hZGRfcnVsZV9p bnRlcm5hbDoNCj4gPiArCWljZV9yZWxlYXNlX2xvY2socnVsZV9sb2NrKTsNCj4gPiAgIAlyZXR1 cm4gc3RhdHVzOw0KPiA+ICAgfQ0KPiA+DQo+ID4gQEAgLTI5NzUsMTIgKzI5NzUsMTkgQEAgaWNl X2FkZF9tYWNfdmxhbihzdHJ1Y3QgaWNlX2h3ICpodywgc3RydWN0IExJU1RfSEVBRF9UWVBFICpt dl9saXN0KQ0KPiA+ICAgICogaWNlX2FkZF9ldGhfbWFjIC0gQWRkIGV0aGVydHlwZSBhbmQgTUFD IGJhc2VkIGZpbHRlciBydWxlDQo+ID4gICAgKiBAaHc6IHBvaW50ZXIgdG8gdGhlIGhhcmR3YXJl IHN0cnVjdHVyZQ0KPiA+ICAgICogQGVtX2xpc3Q6IGxpc3Qgb2YgZXRoZXIgdHlwZSBNQUMgZmls dGVyLCBNQUMgaXMgb3B0aW9uYWwNCj4gPiArICoNCj4gPiArICogVGhpcyBmdW5jdGlvbiByZXF1 aXJlcyB0aGUgY2FsbGVyIHRvIHBvcHVsYXRlIHRoZSBlbnRyaWVzIGluDQo+ID4gKyAqIHRoZSBm aWx0ZXIgbGlzdCB3aXRoIHRoZSBuZWNlc3NhcnkgZmllbGRzIChpbmNsdWRpbmcgZmxhZ3MgdG8N Cj4gPiArICogaW5kaWNhdGUgVHggb3IgUnggcnVsZXMpLg0KPiA+ICAgICovDQo+ID4gICBlbnVt IGljZV9zdGF0dXMNCj4gPiAgIGljZV9hZGRfZXRoX21hYyhzdHJ1Y3QgaWNlX2h3ICpodywgc3Ry dWN0IExJU1RfSEVBRF9UWVBFICplbV9saXN0KQ0KPiA+ICAgew0KPiA+ICAgCXN0cnVjdCBpY2Vf Zmx0cl9saXN0X2VudHJ5ICplbV9saXN0X2l0cjsNCj4gPg0KPiA+ICsJaWYgKCFlbV9saXN0IHx8 ICFodykNCj4gPiArCQlyZXR1cm4gSUNFX0VSUl9QQVJBTTsNCj4gPiArDQo+ID4gICAJTElTVF9G T1JfRUFDSF9FTlRSWShlbV9saXN0X2l0ciwgZW1fbGlzdCwgaWNlX2ZsdHJfbGlzdF9lbnRyeSwN Cj4gPiAgIAkJCSAgICBsaXN0X2VudHJ5KSB7DQo+ID4gICAJCWVudW0gaWNlX3N3X2xrdXBfdHlw ZSBsX3R5cGUgPQ0KPiA+IEBAIC0yOTkwLDcgKzI5OTcsNiBAQCBpY2VfYWRkX2V0aF9tYWMoc3Ry dWN0IGljZV9odyAqaHcsIHN0cnVjdCBMSVNUX0hFQURfVFlQRSAqZW1fbGlzdCkNCj4gPiAgIAkJ ICAgIGxfdHlwZSAhPSBJQ0VfU1dfTEtVUF9FVEhFUlRZUEUpDQo+ID4gICAJCQlyZXR1cm4gSUNF X0VSUl9QQVJBTTsNCj4gPg0KPiA+IC0JCWVtX2xpc3RfaXRyLT5mbHRyX2luZm8uZmxhZyA9IElD RV9GTFRSX1RYOw0KPiA+ICAgCQllbV9saXN0X2l0ci0+c3RhdHVzID0gaWNlX2FkZF9ydWxlX2lu dGVybmFsKGh3LCBsX3R5cGUsDQo+ID4gICAJCQkJCQkJICAgIGVtX2xpc3RfaXRyKTsNCj4gPiAg IAkJaWYgKGVtX2xpc3RfaXRyLT5zdGF0dXMpDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0 L2ljZS9iYXNlL2ljZV9zd2l0Y2guaA0KPiA+IGIvZHJpdmVycy9uZXQvaWNlL2Jhc2UvaWNlX3N3 aXRjaC5oDQo+ID4gaW5kZXggMmYxNDBhODZkLi4wNWIxMTcwYzkgMTAwNjQ0DQo+ID4gLS0tIGEv ZHJpdmVycy9uZXQvaWNlL2Jhc2UvaWNlX3N3aXRjaC5oDQo+ID4gKysrIGIvZHJpdmVycy9uZXQv aWNlL2Jhc2UvaWNlX3N3aXRjaC5oDQo+ID4gQEAgLTExLDYgKzExLDkgQEANCj4gPiAgICNkZWZp bmUgSUNFX1NXX0NGR19NQVhfQlVGX0xFTiAyMDQ4DQo+ID4gICAjZGVmaW5lIElDRV9NQVhfU1cg MjU2DQo+ID4gICAjZGVmaW5lIElDRV9ERkxUX1ZTSV9JTlZBTCAweGZmDQo+ID4gKyNkZWZpbmUg SUNFX0ZMVFJfUlggQklUKDApDQo+ID4gKyNkZWZpbmUgSUNFX0ZMVFJfVFggQklUKDEpDQo+ID4g KyNkZWZpbmUgSUNFX0ZMVFJfVFhfUlggKElDRV9GTFRSX1JYIHwgSUNFX0ZMVFJfVFgpDQo+ID4N Cj4gPg0KPiA+ICAgLyogV29yc3QgY2FzZSBidWZmZXIgbGVuZ3RoIGZvciBpY2VfYXFjX29wY19n ZXRfcmVzX2FsbG9jICovIEBADQo+ID4gLTc3LDkgKzgwLDYgQEAgc3RydWN0IGljZV9mbHRyX2lu Zm8gew0KPiA+ICAgCS8qIHJ1bGUgSUQgcmV0dXJuZWQgYnkgZmlybXdhcmUgb25jZSBmaWx0ZXIg cnVsZSBpcyBjcmVhdGVkICovDQo+ID4gICAJdTE2IGZsdHJfcnVsZV9pZDsNCj4gPiAgIAl1MTYg ZmxhZzsNCj4gPiAtI2RlZmluZSBJQ0VfRkxUUl9SWAkJQklUKDApDQo+ID4gLSNkZWZpbmUgSUNF X0ZMVFJfVFgJCUJJVCgxKQ0KPiA+IC0jZGVmaW5lIElDRV9GTFRSX1RYX1JYCQkoSUNFX0ZMVFJf UlggfCBJQ0VfRkxUUl9UWCkNCj4gPg0KPiA+ICAgCS8qIFNvdXJjZSBWU0kgZm9yIExPT0tVUF9U WCBvciBzb3VyY2UgcG9ydCBmb3IgTE9PS1VQX1JYICovDQo+ID4gICAJdTE2IHNyYzsNCj4gPiBA QCAtMTQ1LDEwICsxNDUsNiBAQCBzdHJ1Y3QgaWNlX3N3X2FjdF9jdHJsIHsNCj4gPiAgIAkvKiBT b3VyY2UgVlNJIGZvciBMT09LVVBfVFggb3Igc291cmNlIHBvcnQgZm9yIExPT0tVUF9SWCAqLw0K PiA+ICAgCXUxNiBzcmM7DQo+ID4gICAJdTE2IGZsYWc7DQo+ID4gLSNkZWZpbmUgSUNFX0ZMVFJf UlggICAgICAgICAgICAgQklUKDApDQo+ID4gLSNkZWZpbmUgSUNFX0ZMVFJfVFggICAgICAgICAg ICAgQklUKDEpDQo+ID4gLSNkZWZpbmUgSUNFX0ZMVFJfVFhfUlggKElDRV9GTFRSX1JYIHwgSUNF X0ZMVFJfVFgpDQo+ID4gLQ0KPiA+ICAgCWVudW0gaWNlX3N3X2Z3ZF9hY3RfdHlwZSBmbHRyX2Fj dDsNCj4gPiAgIAkvKiBEZXBlbmRpbmcgb24gZmlsdGVyIGFjdGlvbiAqLw0KPiA+ICAgCXVuaW9u IHsNCj4gPiBAQCAtMzY4LDYgKzM2NCw4IEBAIGljZV9hcV9nZXRfcmVzX2Rlc2NzKHN0cnVjdCBp Y2VfaHcgKmh3LCB1MTYgbnVtX2VudHJpZXMsDQo+ID4gICAJCSAgICAgc3RydWN0IGljZV9zcV9j ZCAqY2QpOw0KPiA+ICAgZW51bSBpY2Vfc3RhdHVzDQo+ID4gICBpY2VfYWRkX3ZsYW4oc3RydWN0 IGljZV9odyAqaHcsIHN0cnVjdCBMSVNUX0hFQURfVFlQRSAqbV9saXN0KTsNCj4gPiArZW51bSBp Y2Vfc3RhdHVzDQo+ID4gK2ljZV9yZW1vdmVfdmxhbihzdHJ1Y3QgaWNlX2h3ICpodywgc3RydWN0 IExJU1RfSEVBRF9UWVBFICp2X2xpc3QpOw0KPiA+ICAgdm9pZCBpY2VfcmVtX2FsbF9zd19ydWxl c19pbmZvKHN0cnVjdCBpY2VfaHcgKmh3KTsNCj4gPiAgIGVudW0gaWNlX3N0YXR1cyBpY2VfYWRk X21hYyhzdHJ1Y3QgaWNlX2h3ICpodywgc3RydWN0IExJU1RfSEVBRF9UWVBFICptX2xzdCk7DQo+ ID4gICBlbnVtIGljZV9zdGF0dXMgaWNlX3JlbW92ZV9tYWMoc3RydWN0IGljZV9odyAqaHcsIHN0 cnVjdA0KPiA+IExJU1RfSEVBRF9UWVBFICptX2xzdCk7IEBAIC0zNzUsOCArMzczLDYgQEAgZW51 bSBpY2Vfc3RhdHVzDQo+ID4gICBpY2VfYWRkX2V0aF9tYWMoc3RydWN0IGljZV9odyAqaHcsIHN0 cnVjdCBMSVNUX0hFQURfVFlQRSAqZW1fbGlzdCk7DQo+ID4gICBlbnVtIGljZV9zdGF0dXMNCj4g PiAgIGljZV9yZW1vdmVfZXRoX21hYyhzdHJ1Y3QgaWNlX2h3ICpodywgc3RydWN0IExJU1RfSEVB RF9UWVBFDQo+ID4gKmVtX2xpc3QpOyAtZW51bSBpY2Vfc3RhdHVzIC1pY2VfcmVtb3ZlX3ZsYW4o c3RydWN0IGljZV9odyAqaHcsIHN0cnVjdA0KPiA+IExJU1RfSEVBRF9UWVBFICp2X2xpc3QpOw0K PiA+ICAgI2lmbmRlZiBOT19NQUNWTEFOX1NVUFBPUlQNCj4gPiAgIGVudW0gaWNlX3N0YXR1cw0K PiA+ICAgaWNlX2FkZF9tYWNfdmxhbihzdHJ1Y3QgaWNlX2h3ICpodywgc3RydWN0IExJU1RfSEVB RF9UWVBFICptX2xpc3QpOw0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9pY2UvYmFzZS9p Y2VfdHlwZS5oDQo+ID4gYi9kcml2ZXJzL25ldC9pY2UvYmFzZS9pY2VfdHlwZS5oIGluZGV4IDkx OWNhN2ZhOC4uZjRlMTUxYzU1IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvbmV0L2ljZS9iYXNl L2ljZV90eXBlLmgNCj4gPiArKysgYi9kcml2ZXJzL25ldC9pY2UvYmFzZS9pY2VfdHlwZS5oDQo+ ID4gQEAgLTE0LDYgKzE0LDEwIEBADQo+ID4NCj4gPiAgICNkZWZpbmUgQklUU19QRVJfQllURQk4 DQo+ID4NCj4gPiArI2lmbmRlZiBfRk9SQ0VfDQo+ID4gKyNkZWZpbmUgX0ZPUkNFXw0KPiA+ICsj ZW5kaWYNCj4gPiArDQo+ID4gICAjZGVmaW5lIElDRV9CWVRFU19QRVJfV09SRAkyDQo+ID4gICAj ZGVmaW5lIElDRV9CWVRFU19QRVJfRFdPUkQJNA0KPiA+ICAgI2RlZmluZSBJQ0VfTUFYX1RSQUZG SUNfQ0xBU1MJOA0KPiA+IEBAIC0zNSw3ICszOSw3IEBADQo+ID4gICAjZW5kaWYNCj4gPg0KPiA+ ICAgI2lmbmRlZiBJU19BU0NJSQ0KPiA+IC0jZGVmaW5lIElTX0FTQ0lJKF9jaCkgICgoX2NoKSA8 IDB4ODApDQo+ID4gKyNkZWZpbmUgSVNfQVNDSUkoX2NoKQkoKF9jaCkgPCAweDgwKQ0KPiA+ICAg I2VuZGlmDQo+ID4NCj4gPiAgICNpbmNsdWRlICJpY2Vfc3RhdHVzLmgiDQo+ID4gQEAgLTgwLDYg Kzg0LDcgQEAgc3RhdGljIGlubGluZSB1MzIgaWNlX3JvdW5kX3RvX251bSh1MzIgTiwgdTMyIFIp DQo+ID4gICAjZGVmaW5lIElDRV9ISV9XT1JEKHgpCQkoKHUxNikoKCh4KSA+PiAxNikgJiAweEZG RkYpKQ0KPiA+DQo+ID4gICAvKiBkZWJ1ZyBtYXNrcyAtIHNldCB0aGVzZSBiaXRzIGluIGh3LT5k ZWJ1Z19tYXNrIHRvIGNvbnRyb2wgb3V0cHV0DQo+ID4gKi8NCj4gPiArI2RlZmluZSBJQ0VfREJH X1RSQUNFCQlCSVRfVUxMKDApIC8qIGZvciBmdW5jdGlvbi10cmFjZSBvbmx5ICovDQo+ID4gICAj ZGVmaW5lIElDRV9EQkdfSU5JVAkJQklUX1VMTCgxKQ0KPiA+ICAgI2RlZmluZSBJQ0VfREJHX1JF TEVBU0UJCUJJVF9VTEwoMikNCj4gPiAgICNkZWZpbmUgSUNFX0RCR19GV19MT0cJCUJJVF9VTEwo MykNCj4gPiBAQCAtMTk5LDYgKzIwNCw3IEBAIGVudW0gaWNlX3ZzaV90eXBlIHsNCj4gPiAgICNp ZmRlZiBBRFFfU1VQUE9SVA0KPiA+ICAgCUlDRV9WU0lfQ0hOTCA9IDQsDQo+ID4gICAjZW5kaWYg LyogQURRX1NVUFBPUlQgKi8NCj4gPiArCUlDRV9WU0lfTEIgPSA2LA0KPiA+ICAgfTsNCj4gPg0K PiA+ICAgc3RydWN0IGljZV9saW5rX3N0YXR1cyB7DQo+ID4gQEAgLTcxOCw2ICs3MjQsOCBAQCBz dHJ1Y3QgaWNlX2Z3X2xvZ19jZmcgew0KPiA+ICAgI2RlZmluZSBJQ0VfRldfTE9HX0VWTlRfSU5J VAkoSUNFX0FRQ19GV19MT0dfSU5JVF9FTiA+PiBJQ0VfQVFDX0ZXX0xPR19FTl9TKQ0KPiA+ICAg I2RlZmluZSBJQ0VfRldfTE9HX0VWTlRfRkxPVwkoSUNFX0FRQ19GV19MT0dfRkxPV19FTiA+PiBJ Q0VfQVFDX0ZXX0xPR19FTl9TKQ0KPiA+ICAgI2RlZmluZSBJQ0VfRldfTE9HX0VWTlRfRVJSCShJ Q0VfQVFDX0ZXX0xPR19FUlJfRU4gPj4gSUNFX0FRQ19GV19MT0dfRU5fUykNCj4gPiArI2RlZmlu ZSBJQ0VfRldfTE9HX0VWTlRfQUxMCShJQ0VfRldfTE9HX0VWTlRfSU5GTyB8IElDRV9GV19MT0df RVZOVF9JTklUIHwgXA0KPiA+ICsJCQkJIElDRV9GV19MT0dfRVZOVF9GTE9XIHwgSUNFX0ZXX0xP R19FVk5UX0VSUikNCj4gPiAgIAlzdHJ1Y3QgaWNlX2Z3X2xvZ19ldm50IGV2bnRzW0lDRV9BUUNf RldfTE9HX0lEX01BWF07DQo+ID4gICB9Ow0KPiA+DQo+ID4gQEAgLTc0NSw2ICs3NTMsNyBAQCBz dHJ1Y3QgaWNlX2h3IHsNCj4gPiAgIAl1OCBwZl9pZDsJCS8qIGRldmljZSBwcm9maWxlIGluZm8g Ki8NCj4gPg0KPiA+ICAgCXUxNiBtYXhfYnVyc3Rfc2l6ZTsJLyogZHJpdmVyIHNldHMgdGhpcyB2 YWx1ZSAqLw0KPiA+ICsNCj4gPiAgIAkvKiBUeCBTY2hlZHVsZXIgdmFsdWVzICovDQo+ID4gICAJ dTE2IG51bV90eF9zY2hlZF9sYXllcnM7DQo+ID4gICAJdTE2IG51bV90eF9zY2hlZF9waHlzX2xh eWVyczsNCj4gPiBAQCAtOTQ4LDcgKzk1Nyw2IEBAIGVudW0gaWNlX3N3X2Z3ZF9hY3RfdHlwZSB7 DQo+ID4gICAjZGVmaW5lIElDRV9TUl9DU1JfUFJPVEVDVEVEX0xJU1RfUFRSCQkweDBEDQo+ID4g ICAjZGVmaW5lIElDRV9TUl9NTkdfQ0ZHX1BUUgkJCTB4MEUNCj4gPiAgICNkZWZpbmUgSUNFX1NS X0VNUF9NT0RVTEVfUFRSCQkJMHgwRg0KPiA+IC0jZGVmaW5lIElDRV9TUl9QQkFfRkxBR1MJCQkw eDE1DQo+ID4gICAjZGVmaW5lIElDRV9TUl9QQkFfQkxPQ0tfUFRSCQkJMHgxNg0KPiA+ICAgI2Rl ZmluZSBJQ0VfU1JfQk9PVF9DRkdfUFRSCQkJMHgxNw0KPiA+ICAgI2RlZmluZSBJQ0VfU1JfTlZN X1dPTF9DRkcJCQkweDE5DQo+ID4gQEAgLTk5NCw2ICsxMDAyLDcgQEAgZW51bSBpY2Vfc3dfZndk X2FjdF90eXBlIHsNCj4gPiAgICNkZWZpbmUgSUNFX1NSX0VNUF9TUl9TRVRUSU5HU19QVFIJCTB4 NDgNCj4gPiAgICNkZWZpbmUgSUNFX1NSX0NPTkZJR1VSQVRJT05fTUVUQURBVEFfUFRSCTB4NEQN Cj4gPiAgICNkZWZpbmUgSUNFX1NSX0lNTUVESUFURV9WQUxVRVNfUFRSCQkweDRFDQo+ID4gKyNk ZWZpbmUgSUNFX1NSX1BPUl9SRUdJU1RFUlNfQVVUT0xPQURfUFRSCTB4MTE4DQo+ID4NCj4gPiAg IC8qIEF1eGlsaWFyeSBmaWVsZCwgbWFzayBhbmQgc2hpZnQgZGVmaW5pdGlvbiBmb3IgU2hhZG93 IFJBTSBhbmQgTlZNIEZsYXNoICovDQo+ID4gICAjZGVmaW5lIElDRV9TUl9WUERfU0laRV9XT1JE UwkJNTEyDQo+ID4NCg==