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 Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9F7EEC982D7 for ; Fri, 18 Sep 2026 17:21:19 +0000 (UTC) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 744AF4279C; Fri, 18 Sep 2026 19:21:18 +0200 (CEST) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 9852D40285 for ; Fri, 18 Sep 2026 19:21:17 +0200 (CEST) dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim; c=relaxed/relaxed; q=dns/txt; h=From; bh=sjHeL57Zdr0JLLxo4K3FnmE/wn8oeHiKgOafvzc3khc=; b=EXOG0U/fjsgz4ewTcoBKLuYoshiGQZtv2K+p6hHuUOWGoX03sOsemprmWd8TuzLdZ2TztPMNh wGmBm0XGktoLtWOWdr0/oYZa0SsgC68oTdUy0GEyDoyK7dINZskFnlRwDQPyICbm1HGxJoXsF6X sw1THki02wy0Z1qKLVm/kls= Received: from mail.maildlp.com (unknown [172.18.224.107]) by frasgout.his.huawei.com (SkyGuard) with ESMTPS id 4hmfXm2z88zHnGd9; Sat, 19 Sep 2026 01:20:56 +0800 (CST) Received: from dubpeml500001.china.huawei.com (unknown [7.214.147.241]) by mail.maildlp.com (Postfix) with ESMTPS id 471C340584; Sat, 19 Sep 2026 01:21:15 +0800 (CST) Received: from dubpeml500001.china.huawei.com (7.214.147.241) by dubpeml500001.china.huawei.com (7.214.147.241) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Fri, 18 Sep 2026 18:21:14 +0100 Received: from dubpeml500001.china.huawei.com ([7.214.147.241]) by dubpeml500001.china.huawei.com ([7.214.147.241]) with mapi id 15.02.2562.046; Fri, 18 Sep 2026 18:21:14 +0100 From: Konstantin Ananyev To: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= , "dev@dpdk.org" , Andrew Rybchenko , Bruce Richardson , Stephen Hemminger Subject: RE: [PATCH 6/6] mempool: no cache size limit Thread-Topic: [PATCH 6/6] mempool: no cache size limit Thread-Index: AQHdQRBWyXIpNFvS4EakmQe4E/7zIbbUT1vAgAAodBCAACZywA== Date: Fri, 18 Sep 2026 17:21:14 +0000 Message-ID: <47b4d1bbc1644820aec4e9844dbfb96a@huawei.com> References: <20260910103613.808038-1-mb@smartsharesystems.com> <20260910103613.808038-7-mb@smartsharesystems.com> <98CBD80474FA8B44BF855DF32C47DC35F65A55@smartserver.smartshare.dk> In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35F65A55@smartserver.smartshare.dk> Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.48.152.96] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org DQoNCj4gPiA+IFJlcGxhY2VkIHRoZSBmaXhlZCBzaXplIG9iamVjdCBhcnJheSBpbiB0aGUgcGVy LWxjb3JlIGxvY2FsIGNhY2hlDQo+ID4gPiB3aXRoIGEgdmFyaWFibGUgc2l6ZSBhcnJheSwgYWxs b2NhdGVkIGF0IG1lbXBvb2wgY3JlYXRpb24uDQo+ID4gPiBGb3IgZmFzdGVyIGluZGV4aW5nIGlu dG8gdGhlIHBlci1sY29yZSBhcnJheSBvZiBjYWNoZXMsIHByZS1jYWxjdWxhdGUNCj4gPiA+IHRo ZSBzaXplIChpbiBieXRlcykgb2YgdGhlIHBlci1sY29yZSBsb2NhbCBjYWNoZS4NCj4gPiA+DQo+ ID4gPiBVc2luZyBhIHZhcmlhYmxlIHNpemUgYXJyYXkgbWFrZXMgdGhlIFJURV9NRU1QT09MX0NB Q0hFX01BWF9TSVpFDQo+ID4gYnVpbGQNCj4gPiA+IHRpbWUgY29uZmlndXJhdGlvbiBwYXJhbWV0 ZXIgc3VwZXJmbHVvdXMsDQo+ID4gPiBidXQgaXQgd2FzIGtlcHQgZm9yIGNvbXBhdGliaWxpdHkg cHVycG9zZXMsIGFzIGl0IGlzIG9mdGVuIHVzZWQgZm9yDQo+ID4gPiB0aGUgY2FjaGVfc2l6ZSBw YXJhbWV0ZXIgd2hlbiBjcmVhdGluZyBtZW1wb29scy4NCj4gPiA+DQo+ID4gPiBTaWduZWQtb2Zm LWJ5OiBNb3J0ZW4gQnLDuHJ1cCA8bWJAc21hcnRzaGFyZXN5c3RlbXMuY29tPg0KPiA+ID4gLS0t DQo+ID4gPiBTdXBlcnNlZGVzOiBwYXRjaC0xNjkyMzUNCj4gPiA+ICgiW3YyXSBtZW1wb29sOiBu byBjYWNoZSBzaXplIGxpbWl0IikNCj4gPiA+IC0tLQ0KPiA+ID4gIGFwcC90ZXN0L3Rlc3RfbWVt cG9vbC5jICAgICAgICAgICAgICAgIHwgICAyICstDQo+ID4gPiAgZG9jL2d1aWRlcy9yZWxfbm90 ZXMvcmVsZWFzZV8yNl8xMS5yc3QgfCAgMTIgKystDQo+ID4gPiAgbGliL21lbXBvb2wvcnRlX21l bXBvb2wuYyAgICAgICAgICAgICAgfCAxMTggKysrKysrKysrKysrKystLS0tLS0tLS0NCj4gPiAt LQ0KPiA+ID4gIGxpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmggICAgICAgICAgICAgIHwgIDE3ICsr LS0NCj4gPiA+ICA0IGZpbGVzIGNoYW5nZWQsIDg2IGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9u cygtKQ0KPiA+ID4NCj4gPiA+IGRpZmYgLS1naXQgYS9hcHAvdGVzdC90ZXN0X21lbXBvb2wuYyBi L2FwcC90ZXN0L3Rlc3RfbWVtcG9vbC5jDQo+ID4gPiBpbmRleCA2ZmY4NzQ2NDc0Li44YTIxYjM4 NWQ5IDEwMDY0NA0KPiA+ID4gLS0tIGEvYXBwL3Rlc3QvdGVzdF9tZW1wb29sLmMNCj4gPiA+ICsr KyBiL2FwcC90ZXN0L3Rlc3RfbWVtcG9vbC5jDQo+ID4gPiBAQCAtMTkzLDcgKzE5Myw3IEBAIHN0 YXRpYyBpbnQNCj4gPiA+IHRlc3RfbWVtcG9vbF9jcmVhdGlvbl93aXRoX2V4Y2VlZGVkX2NhY2hl X3NpemUodm9pZCkNCj4gPiA+ICAJbXBfY292ID0gcnRlX21lbXBvb2xfY3JlYXRlKCJ0ZXN0X2Nh Y2hlX3Rvb19iaWciLA0KPiA+ID4gIAkJTUVNUE9PTF9TSVpFLA0KPiA+ID4gIAkJTUVNUE9PTF9F TFRfU0laRSwNCj4gPiA+IC0JCVJURV9NRU1QT09MX0NBQ0hFX01BWF9TSVpFICsgMzIsIDAsDQo+ ID4gPiArCQlNRU1QT09MX1NJWkUgKyAzMiwgMCwNCj4gPiA+ICAJCU5VTEwsIE5VTEwsDQo+ID4g PiAgCQlteV9vYmpfaW5pdCwgTlVMTCwNCj4gPiA+ICAJCVNPQ0tFVF9JRF9BTlksIDApOw0KPiA+ ID4gZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjZfMTEucnN0DQo+ ID4gPiBiL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjZfMTEucnN0DQo+ID4gPiBpbmRl eCA1OWI4NTE0MzYwLi42NGY2ODAyZTU4IDEwMDY0NA0KPiA+ID4gLS0tIGEvZG9jL2d1aWRlcy9y ZWxfbm90ZXMvcmVsZWFzZV8yNl8xMS5yc3QNCj4gPiA+ICsrKyBiL2RvYy9ndWlkZXMvcmVsX25v dGVzL3JlbGVhc2VfMjZfMTEucnN0DQo+ID4gPiBAQCAtOTcsMTAgKzk3LDIwIEBAIEFQSSBDaGFu Z2VzDQo+ID4gPiAgICAgQWxzbywgbWFrZSBzdXJlIHRvIHN0YXJ0IHRoZSBhY3R1YWwgdGV4dCBh dCB0aGUgbWFyZ2luLg0KPiA+ID4gICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0NCj4gPiA+DQo+ID4gPiArKiBtZW1wb29sOiBXaGVuIGNy ZWF0aW5nIGEgbWVtcG9vbCwgdGhlIGNhY2hlIHNpemUgY2FuIGJlIGZyZWVseQ0KPiA+IHNwZWNp ZmllZA0KPiA+ID4gKyAgKGFsdGhvdWdoIHN0aWxsIG5vdCBleGNlZWQgdGhlIG51bWJlciBvZiBl bGVtZW50cyksDQo+ID4gPiArICBhbmQgaXMgbm8gbG9uZ2VyIGxpbWl0ZWQgYnkgdGhlIGBgUlRF X01FTVBPT0xfQ0FDSEVfTUFYX1NJWkVgYA0KPiA+IGJ1aWxkIHRpbWUNCj4gPiA+IGNvbmZpZ3Vy YXRpb24gcGFyYW1ldGVyLg0KPiA+ID4gKyAgQWx0aG91Z2ggYGBSVEVfTUVNUE9PTF9DQUNIRV9N QVhfU0laRWBgIGhhcyBsb3N0IGl0cyBvcmlnaW5hbA0KPiA+IG1lYW5pbmcsDQo+ID4gPiArICBp dCB3YXMga2VwdCBmb3IgY29tcGF0aWJpbGl0eSBwdXJwb3NlcywNCj4gPiA+ICsgIGFzIGl0IGlz IG9mdGVuIHVzZWQgZm9yIHRoZSBgYGNhY2hlX3NpemVgYCBwYXJhbWV0ZXIgd2hlbiBjcmVhdGlu Zw0KPiA+IG1lbXBvb2xzLg0KPiA+ID4gKw0KPiA+ID4gKyogbWVtcG9vbDogVXBkYXRlZCB0aGUg YGBydGVfbWVtcG9vbGBgIHN0cnVjdHVyZSBhcyBmb2xsb3dzOg0KPiA+ID4gKyAgLSBBZGRlZCB0 aGUgYGBzaXplb2ZfY2FjaGVfcGVyX2xjb3JlYGAgZmllbGQsIGZvciBpbmRleGluZyBpbnRvDQo+ ID4gdGhlIHBlci1sY29yZQ0KPiA+ID4gbG9jYWwgY2FjaGUuDQo+ID4gPiArDQo+ID4gPiAgKiBt ZW1wb29sOiBVcGRhdGVkIHRoZSBgYHJ0ZV9tZW1wb29sX2NhY2hlYGAgc3RydWN0dXJlIGFzIGZv bGxvd3M6DQo+ID4gPiAgICAtIFJlbW92ZWQgdGhlIGRlcHJlY2F0ZWQgYW5kIG9ic29sZXRlIGBg Zmx1c2h0aHJlc2hgYCBmaWVsZC4NCj4gPiA+ICAgIC0gUmVtb3ZlZCB0aGUgYGB1bnVzZWRgYCBm aWVsZC4NCj4gPiA+IC0gIC0gUmVkdWNlZCB0aGUgc2l6ZSBvZiB0aGUgYGBvYmpzYGAgYXJyYXkg ZnJvbQ0KPiA+ID4gYGBSVEVfTUVNUE9PTF9DQUNIRV9NQVhfU0laRWBgICogMiB0bw0KPiA+ID4g YGBSVEVfTUVNUE9PTF9DQUNIRV9NQVhfU0laRWBgLg0KPiA+ID4gKyAgLSBDaGFuZ2VkIHRoZSBg YG9ianNgYCBhcnJheSBmcm9tIGZpeGVkIHNpemUgdG8gdmFyaWFibGUgc2l6ZS4NCj4gPiA+DQo+ ID4gPiAgQUJJIENoYW5nZXMNCj4gPiA+ICAtLS0tLS0tLS0tLQ0KPiA+ID4gZGlmZiAtLWdpdCBh L2xpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmMgYi9saWIvbWVtcG9vbC9ydGVfbWVtcG9vbC5jDQo+ ID4gPiBpbmRleCAyMTE3NjNhY2VkLi4wNjlhYWJhYTcwIDEwMDY0NA0KPiA+ID4gLS0tIGEvbGli L21lbXBvb2wvcnRlX21lbXBvb2wuYw0KPiA+ID4gKysrIGIvbGliL21lbXBvb2wvcnRlX21lbXBv b2wuYw0KPiA+ID4gQEAgLTc1OSwyMCArNzU5LDIxIEBAIG1lbXBvb2xfY2FjaGVfaW5pdChzdHJ1 Y3QgcnRlX21lbXBvb2xfY2FjaGUNCj4gPiA+ICpjYWNoZSwgdWludDMyX3Qgc2l6ZSkNCj4gPiA+ ICAvKg0KPiA+ID4gICAqIENyZWF0ZSBhbmQgaW5pdGlhbGl6ZSBhIGNhY2hlIGZvciBvYmplY3Rz IHRoYXQgYXJlIHJldHJpZXZlZCBmcm9tDQo+ID4gYW5kDQo+ID4gPiAgICogcmV0dXJuZWQgdG8g YW4gdW5kZXJseWluZyBtZW1wb29sLiBUaGlzIHN0cnVjdHVyZSBpcyBpZGVudGljYWwgdG8NCj4g PiB0aGUNCj4gPiA+IC0gKiBsb2NhbF9jYWNoZVtsY29yZV9pZF0gcG9pbnRlZCB0byBieSB0aGUg bWVtcG9vbCBzdHJ1Y3R1cmUuDQo+ID4gPiArICogbG9jYWxfY2FjaGUgZW50cnkgcG9pbnRlZCB0 byBieSB0aGUgbWVtcG9vbCBzdHJ1Y3R1cmUuDQo+ID4gPiAgICovDQo+ID4gPiAgUlRFX0VYUE9S VF9TWU1CT0wocnRlX21lbXBvb2xfY2FjaGVfY3JlYXRlKQ0KPiA+ID4gIHN0cnVjdCBydGVfbWVt cG9vbF9jYWNoZSAqDQo+ID4gPiAgcnRlX21lbXBvb2xfY2FjaGVfY3JlYXRlKHVpbnQzMl90IHNp emUsIGludCBzb2NrZXRfaWQpDQo+ID4gPiAgew0KPiA+ID4gIAlzdHJ1Y3QgcnRlX21lbXBvb2xf Y2FjaGUgKmNhY2hlOw0KPiA+ID4gKwlzaXplX3Qgc2l6ZW9mX2NhY2hlID0gc2l6ZW9mKHN0cnVj dCBydGVfbWVtcG9vbF9jYWNoZSkgKyBzaXplICoNCj4gPiA+IHNpemVvZih2b2lkICopOw0KPiA+ ID4NCj4gPiA+IC0JaWYgKHNpemUgPT0gMCB8fCBzaXplID4gUlRFX01FTVBPT0xfQ0FDSEVfTUFY X1NJWkUpIHsNCj4gPiA+ICsJaWYgKHNpemUgPT0gMCB8fCBzaXplb2ZfY2FjaGUgPiBVSU5UMzJf TUFYKSB7DQo+ID4gPiAgCQlydGVfZXJybm8gPSBFSU5WQUw7DQo+ID4gPiAgCQlyZXR1cm4gTlVM TDsNCj4gPiA+ICAJfQ0KPiA+ID4NCj4gPiA+IC0JY2FjaGUgPSBydGVfem1hbGxvY19zb2NrZXQo Ik1FTVBPT0xfQ0FDSEUiLCBzaXplb2YoKmNhY2hlKSwNCj4gPiA+ICsJY2FjaGUgPSBydGVfem1h bGxvY19zb2NrZXQoIk1FTVBPT0xfQ0FDSEUiLCBzaXplb2ZfY2FjaGUsDQo+ID4gPiAgCQkJCSAg UlRFX0NBQ0hFX0xJTkVfU0laRSwgc29ja2V0X2lkKTsNCj4gPiA+ICAJaWYgKGNhY2hlID09IE5V TEwpIHsNCj4gPiA+ICAJCVJURV9NRU1QT09MX0xPRyhFUlIsICJDYW5ub3QgYWxsb2NhdGUgbWVt cG9vbCBjYWNoZS4iKTsNCj4gPiA+IEBAIC04MTEsMTAgKzgxMiw5IEBAIHJ0ZV9tZW1wb29sX2Ny ZWF0ZV9lbXB0eShjb25zdCBjaGFyICpuYW1lLA0KPiA+ID4gdW5zaWduZWQgbiwgdW5zaWduZWQg ZWx0X3NpemUsDQo+ID4gPiAgCXN0cnVjdCBydGVfbWVtcG9vbCAqbXAgPSBOVUxMOw0KPiA+ID4g IAlzdHJ1Y3QgcnRlX3RhaWxxX2VudHJ5ICp0ZSA9IE5VTEw7DQo+ID4gPiAgCWNvbnN0IHN0cnVj dCBydGVfbWVtem9uZSAqbXogPSBOVUxMOw0KPiA+ID4gLQlzaXplX3QgbWVtcG9vbF9zaXplOw0K PiA+ID4gKwlzaXplX3QgbWVtcG9vbF9zaXplLCBzaXplb2ZfY2FjaGVfcGVyX2xjb3JlOw0KPiA+ ID4gIAl1bnNpZ25lZCBpbnQgbXpfZmxhZ3MgPQ0KPiA+ID4gUlRFX01FTVpPTkVfMUdCfFJURV9N RU1aT05FX1NJWkVfSElOVF9PTkxZOw0KPiA+ID4gIAlzdHJ1Y3QgcnRlX21lbXBvb2xfb2Jqc3og b2Jqc3o7DQo+ID4gPiAtCXVuc2lnbmVkIGxjb3JlX2lkOw0KPiA+ID4gIAlpbnQgcmV0Ow0KPiA+ ID4NCj4gPiA+ICAJLyogY29tcGlsYXRpb24tdGltZSBjaGVja3MgKi8NCj4gPiA+IEBAIC04MjIs NiArODIyLDggQEAgcnRlX21lbXBvb2xfY3JlYXRlX2VtcHR5KGNvbnN0IGNoYXIgKm5hbWUsDQo+ ID4gPiB1bnNpZ25lZCBuLCB1bnNpZ25lZCBlbHRfc2l6ZSwNCj4gPiA+ICAJCQkgIFJURV9DQUNI RV9MSU5FX01BU0spICE9IDApOw0KPiA+ID4gIAlSVEVfQlVJTERfQlVHX09OKChzaXplb2Yoc3Ry dWN0IHJ0ZV9tZW1wb29sX2NhY2hlKSAmDQo+ID4gPiAgCQkJICBSVEVfQ0FDSEVfTElORV9NQVNL KSAhPSAwKTsNCj4gPiA+ICsJUlRFX0JVSUxEX0JVR19PTihvZmZzZXRvZihzdHJ1Y3QgcnRlX21l bXBvb2xfY2FjaGUsIG9ianMpICE9DQo+ID4gPiArCQkJICBzaXplb2Yoc3RydWN0IHJ0ZV9tZW1w b29sX2NhY2hlKSk7DQo+ID4gPiAgI2lmZGVmIFJURV9MSUJSVEVfTUVNUE9PTF9TVEFUUw0KPiA+ ID4gIAlSVEVfQlVJTERfQlVHX09OKChzaXplb2Yoc3RydWN0IHJ0ZV9tZW1wb29sX2RlYnVnX3N0 YXRzKSAmDQo+ID4gPiAgCQkJICBSVEVfQ0FDSEVfTElORV9NQVNLKSAhPSAwKTsNCj4gPiA+IEBA IC04MzgsNyArODQwLDE4IEBAIHJ0ZV9tZW1wb29sX2NyZWF0ZV9lbXB0eShjb25zdCBjaGFyICpu YW1lLA0KPiA+ID4gdW5zaWduZWQgbiwgdW5zaWduZWQgZWx0X3NpemUsDQo+ID4gPiAgCX0NCj4g PiA+DQo+ID4gPiAgCS8qIGFza2VkIGNhY2hlIHRvbyBiaWcgKi8NCj4gPiA+IC0JaWYgKGNhY2hl X3NpemUgPiBSVEVfTUVNUE9PTF9DQUNIRV9NQVhfU0laRSB8fA0KPiA+ID4gKwlzaXplb2ZfY2Fj aGVfcGVyX2xjb3JlID0gMDsNCj4gPiA+ICsJaWYgKGNhY2hlX3NpemUgIT0gMCkgew0KPiA+ID4g KwkJc2l6ZW9mX2NhY2hlX3Blcl9sY29yZSA9IHNpemVvZihzdHJ1Y3QgcnRlX21lbXBvb2xfY2Fj aGUpOw0KPiA+ID4gKwkJc2l6ZW9mX2NhY2hlX3Blcl9sY29yZSArPQ0KPiA+ID4gUlRFX0NBQ0hF X0xJTkVfUk9VTkRVUChjYWNoZV9zaXplICogc2l6ZW9mKHZvaWQgKikpOw0KPiA+ID4gKwkJLyoN Cj4gPiA+ICsJCSAqIEFkZCBwYWRkaW5nLCB0byBndWFyZCBhZ2FpbnN0IGZhbHNlIHNoYXJpbmct bGlrZSBlZmZlY3RzDQo+ID4gPiArCQkgKiBvbiBzeXN0ZW1zIHdpdGggYSBuZXh0LU4tbGluZXMg aGFyZHdhcmUgcHJlZmV0Y2hlciwgd2hlbg0KPiA+ID4gKwkJICogYWNjZXNzaW5nIG9iamVjdHMg YXQgdGhlIGVuZCBvZiB0aGUgY2FjaGUuDQo+ID4gPiArCQkgKi8NCj4gPiA+ICsJCXNpemVvZl9j YWNoZV9wZXJfbGNvcmUgKz0gUlRFX0NBQ0hFX0dVQVJEX0xJTkVTICoNCj4gPiA+IFJURV9DQUNI RV9MSU5FX1NJWkU7DQo+ID4gPiArCX0NCj4gPiA+ICsJaWYgKHNpemVvZl9jYWNoZV9wZXJfbGNv cmUgPiBVSU5UMzJfTUFYIHx8DQo+ID4gPiAgCSAgICBjYWNoZV9zaXplID4gbikgew0KPiA+ID4g IAkJcnRlX2Vycm5vID0gRUlOVkFMOw0KPiA+ID4gIAkJcmV0dXJuIE5VTEw7DQo+ID4gPiBAQCAt ODkwLDggKzkwMyw3IEBAIHJ0ZV9tZW1wb29sX2NyZWF0ZV9lbXB0eShjb25zdCBjaGFyICpuYW1l LA0KPiA+ID4gdW5zaWduZWQgbiwgdW5zaWduZWQgZWx0X3NpemUsDQo+ID4gPg0KPiA+ID4gIAlt ZW1wb29sX3NpemUgPSBzaXplb2Yoc3RydWN0IHJ0ZV9tZW1wb29sKTsNCj4gPiA+ICAJbWVtcG9v bF9zaXplICs9IHByaXZhdGVfZGF0YV9zaXplOw0KPiA+ID4gLQlpZiAoY2FjaGVfc2l6ZSAhPSAw KQ0KPiA+ID4gLQkJbWVtcG9vbF9zaXplICs9IFJURV9NQVhfTENPUkUgKiBzaXplb2Yoc3RydWN0 DQo+ID4gPiBydGVfbWVtcG9vbF9jYWNoZSk7DQo+ID4gPiArCW1lbXBvb2xfc2l6ZSArPSBSVEVf TUFYX0xDT1JFICogc2l6ZW9mX2NhY2hlX3Blcl9sY29yZTsNCj4gPiA+DQo+ID4gPiAgCXJldCA9 IHNucHJpbnRmKG16X25hbWUsIHNpemVvZihtel9uYW1lKSwNCj4gPiA+IFJURV9NRU1QT09MX01a X0ZPUk1BVCwgbmFtZSk7DQo+ID4gPiAgCWlmIChyZXQgPCAwIHx8IHJldCA+PSAoaW50KXNpemVv Zihtel9uYW1lKSkgew0KPiA+ID4gQEAgLTkxOCw3ICs5MzAsNiBAQCBydGVfbWVtcG9vbF9jcmVh dGVfZW1wdHkoY29uc3QgY2hhciAqbmFtZSwNCj4gPiA+IHVuc2lnbmVkIG4sIHVuc2lnbmVkIGVs dF9zaXplLA0KPiA+ID4gIAltcC0+ZWx0X3NpemUgPSBvYmpzei5lbHRfc2l6ZTsNCj4gPiA+ICAJ bXAtPmhlYWRlcl9zaXplID0gb2Jqc3ouaGVhZGVyX3NpemU7DQo+ID4gPiAgCW1wLT50cmFpbGVy X3NpemUgPSBvYmpzei50cmFpbGVyX3NpemU7DQo+ID4gPiAtCS8qIFNpemUgb2YgZGVmYXVsdCBj YWNoZXMsIHplcm8gbWVhbnMgZGlzYWJsZWQuICovDQo+ID4gPiAgCW1wLT5jYWNoZV9zaXplID0g Y2FjaGVfc2l6ZTsNCj4gPiA+ICAJbXAtPnByaXZhdGVfZGF0YV9zaXplID0gcHJpdmF0ZV9kYXRh X3NpemU7DQo+ID4gPiAgCVNUQUlMUV9JTklUKCZtcC0+ZWx0X2xpc3QpOw0KPiA+ID4gQEAgLTk0 MiwxOCArOTUzLDE3IEBAIHJ0ZV9tZW1wb29sX2NyZWF0ZV9lbXB0eShjb25zdCBjaGFyICpuYW1l LA0KPiA+ID4gdW5zaWduZWQgbiwgdW5zaWduZWQgZWx0X3NpemUsDQo+ID4gPiAgCQlnb3RvIGV4 aXRfdW5sb2NrOw0KPiA+ID4gIAl9DQo+ID4gPg0KPiA+ID4gLQkvKg0KPiA+ID4gLQkgKiBsb2Nh bF9jYWNoZSBwb2ludGVyIGlzIHNldCBldmVuIGlmIGNhY2hlX3NpemUgaXMgemVyby4NCj4gPiA+ IC0JICogVGhlIGxvY2FsX2NhY2hlIHBvaW50cyB0byBqdXN0IHBhc3QgdGhlIHByaXZhdGUgZGF0 YS4NCj4gPiA+IC0JICovDQo+ID4gPiAtCW1wLT5sb2NhbF9jYWNoZSA9IChzdHJ1Y3QgcnRlX21l bXBvb2xfY2FjaGUgKikNCj4gPiA+IC0JCVJURV9QVFJfQUREKG1wLCBzaXplb2Yoc3RydWN0IHJ0 ZV9tZW1wb29sKSArDQo+ID4gPiBwcml2YXRlX2RhdGFfc2l6ZSk7DQo+ID4gPiAtDQo+ID4gPiAt CS8qIEluaXQgYWxsIGRlZmF1bHQgY2FjaGVzLiAqLw0KPiA+ID4gKwkvKiBsb2NhbF9jYWNoZSBw b2ludGVyIGlzIG9ubHkgc2V0IGlmIHBlci1sY29yZSBsb2NhbCBjYWNoZSBpcw0KPiA+IHByZXNl bnQgKi8NCj4gPiA+ICAJaWYgKGNhY2hlX3NpemUgIT0gMCkgew0KPiA+ID4gLQkJZm9yIChsY29y ZV9pZCA9IDA7IGxjb3JlX2lkIDwgUlRFX01BWF9MQ09SRTsgbGNvcmVfaWQrKykNCj4gPiA+IC0J CQltZW1wb29sX2NhY2hlX2luaXQoJm1wLT5sb2NhbF9jYWNoZVtsY29yZV9pZF0sDQo+ID4gPiAt CQkJCQkgICBjYWNoZV9zaXplKTsNCj4gPiA+ICsJCW1wLT5sb2NhbF9jYWNoZSA9IChzdHJ1Y3Qg cnRlX21lbXBvb2xfY2FjaGUgKikNCj4gPiA+ICsJCQlSVEVfUFRSX0FERChtcCwgc2l6ZW9mKHN0 cnVjdCBydGVfbWVtcG9vbCkgKw0KPiA+ID4gcHJpdmF0ZV9kYXRhX3NpemUpOw0KPiA+ID4gKwkJ bXAtPnNpemVvZl9jYWNoZV9wZXJfbGNvcmUgPSBzaXplb2ZfY2FjaGVfcGVyX2xjb3JlOw0KPiA+ ID4gKw0KPiA+ID4gKwkJLyogSW5pdCBhbGwgZGVmYXVsdCBjYWNoZXMuICovDQo+ID4gPiArCQlz dHJ1Y3QgcnRlX21lbXBvb2xfY2FjaGUgKmNhY2hlID0gbXAtPmxvY2FsX2NhY2hlOw0KPiA+ID4g KwkJZm9yICh1bnNpZ25lZCBpbnQgbGNvcmVfaWQgPSAwOyBsY29yZV9pZCA8IFJURV9NQVhfTENP UkU7DQo+ID4gPiArCQkJCWxjb3JlX2lkKyssIGNhY2hlID0gUlRFX1BUUl9BREQoY2FjaGUsDQo+ ID4gPiBzaXplb2ZfY2FjaGVfcGVyX2xjb3JlKSkNCj4gPiA+ICsJCQltZW1wb29sX2NhY2hlX2lu aXQoY2FjaGUsIGNhY2hlX3NpemUpOw0KPiA+ID4gIAl9DQo+ID4gPg0KPiA+ID4gIAl0ZS0+ZGF0 YSA9IG1wOw0KPiA+ID4gQEAgLTEwMTYsMTYgKzEwMjYsMTcgQEANCj4gUlRFX0VYUE9SVF9TWU1C T0wocnRlX21lbXBvb2xfYXZhaWxfY291bnQpDQo+ID4gPiAgdW5zaWduZWQgaW50DQo+ID4gPiAg cnRlX21lbXBvb2xfYXZhaWxfY291bnQoY29uc3Qgc3RydWN0IHJ0ZV9tZW1wb29sICptcCkNCj4g PiA+ICB7DQo+ID4gPiAtCXVuc2lnbmVkIGNvdW50Ow0KPiA+ID4gLQl1bnNpZ25lZCBsY29yZV9p ZDsNCj4gPiA+ICsJdW5zaWduZWQgaW50IGNvdW50Ow0KPiA+ID4NCj4gPiA+ICAJY291bnQgPSBy dGVfbWVtcG9vbF9vcHNfZ2V0X2NvdW50KG1wKTsNCj4gPiA+DQo+ID4gPiAtCWlmIChtcC0+Y2Fj aGVfc2l6ZSA9PSAwKQ0KPiA+ID4gKwlpZiAobXAtPmxvY2FsX2NhY2hlID09IE5VTEwpDQo+ID4g PiAgCQlyZXR1cm4gY291bnQ7DQo+ID4gPg0KPiA+ID4gLQlmb3IgKGxjb3JlX2lkID0gMDsgbGNv cmVfaWQgPCBSVEVfTUFYX0xDT1JFOyBsY29yZV9pZCsrKQ0KPiA+ID4gLQkJY291bnQgKz0gbXAt PmxvY2FsX2NhY2hlW2xjb3JlX2lkXS5sZW47DQo+ID4gPiArCWNvbnN0IHN0cnVjdCBydGVfbWVt cG9vbF9jYWNoZSAqY2FjaGUgPSBtcC0+bG9jYWxfY2FjaGU7DQo+ID4gPiArCWZvciAodW5zaWdu ZWQgaW50IGxjb3JlX2lkID0gMDsgbGNvcmVfaWQgPCBSVEVfTUFYX0xDT1JFOw0KPiA+ID4gKwkJ CWxjb3JlX2lkKyssIGNhY2hlID0gUlRFX1BUUl9BREQoY2FjaGUsIG1wLQ0KPiA+ID4gPnNpemVv Zl9jYWNoZV9wZXJfbGNvcmUpKQ0KPiA+ID4gKwkJY291bnQgKz0gY2FjaGUtPmxlbjsNCj4gPiA+ DQo+ID4gPiAgCS8qDQo+ID4gPiAgCSAqIGR1ZSB0byByYWNlIGNvbmRpdGlvbiAoYWNjZXNzIHRv IGxlbiBpcyBub3QgbG9ja2VkKSwgdGhlDQo+ID4gPiBAQCAtMTA1MywxMSArMTA2NCwxMSBAQCBy dGVfbWVtcG9vbF9zdGF0c19yZXNldChzdHJ1Y3QgcnRlX21lbXBvb2wNCj4gPiA+ICptcCkNCj4g PiA+DQo+ID4gPiAgI2lmZGVmIFJURV9MSUJSVEVfTUVNUE9PTF9TVEFUUw0KPiA+ID4gIAltZW1z ZXQoJm1wLT5zdGF0cywgMCwgc2l6ZW9mKG1wLT5zdGF0cykpOw0KPiA+ID4gLQlpZiAobXAtPmNh Y2hlX3NpemUgIT0gMCkgew0KPiA+ID4gLQkJZm9yICh1bnNpZ25lZCBpbnQgbGNvcmVfaWQgPSAw OyBsY29yZV9pZCA8IFJURV9NQVhfTENPUkU7DQo+ID4gPiBsY29yZV9pZCsrKSB7DQo+ID4gPiAt CQkJbWVtc2V0KCZtcC0+bG9jYWxfY2FjaGVbbGNvcmVfaWRdLnN0YXRzLCAwLA0KPiA+ID4gLQkJ CQkJc2l6ZW9mKG1wLT5sb2NhbF9jYWNoZVtsY29yZV9pZF0uc3RhdHMpKTsNCj4gPiA+IC0JCX0N Cj4gPiA+ICsJaWYgKG1wLT5sb2NhbF9jYWNoZSAhPSBOVUxMKSB7DQo+ID4gPiArCQlzdHJ1Y3Qg cnRlX21lbXBvb2xfY2FjaGUgKmNhY2hlID0gbXAtPmxvY2FsX2NhY2hlOw0KPiA+ID4gKwkJZm9y ICh1bnNpZ25lZCBpbnQgbGNvcmVfaWQgPSAwOyBsY29yZV9pZCA8IFJURV9NQVhfTENPUkU7DQo+ ID4gPiArCQkJCWxjb3JlX2lkKyssIGNhY2hlID0gUlRFX1BUUl9BREQoY2FjaGUsIG1wLQ0KPiA+ ID4gPnNpemVvZl9jYWNoZV9wZXJfbGNvcmUpKQ0KPiA+ID4gKwkJCW1lbXNldCgmY2FjaGUtPnN0 YXRzLCAwLCBzaXplb2YoY2FjaGUtPnN0YXRzKSk7DQo+ID4gPiAgCX0NCj4gPiA+DQo+ID4gPiAg CVJURV9NRU1QT09MX0xPRyhERUJVRywgIjwlcz5AJXA6IHN0YXRpc3RpY3MgcmVzZXQiLCBtcC0+ bmFtZSwNCj4gPiA+IG1wKTsNCj4gPiA+IEBAIC0xMDcxLDE4ICsxMDgyLDE4IEBAIHJ0ZV9tZW1w b29sX3N0YXRzX3Jlc2V0KHN0cnVjdCBydGVfbWVtcG9vbA0KPiA+ID4gKm1wKQ0KPiA+ID4gIHN0 YXRpYyB1bnNpZ25lZA0KPiA+ID4gIHJ0ZV9tZW1wb29sX2R1bXBfY2FjaGUoRklMRSAqZiwgY29u c3Qgc3RydWN0IHJ0ZV9tZW1wb29sICptcCkNCj4gPiA+ICB7DQo+ID4gPiAtCXVuc2lnbmVkIGxj b3JlX2lkOw0KPiA+ID4gLQl1bnNpZ25lZCBjb3VudCA9IDA7DQo+ID4gPiAtCXVuc2lnbmVkIGNh Y2hlX2NvdW50Ow0KPiA+ID4gKwl1bnNpZ25lZCBpbnQgY291bnQgPSAwOw0KPiA+ID4NCj4gPiA+ ICAJZnByaW50ZihmLCAiICBpbnRlcm5hbCBjYWNoZSBpbmZvcyAoaGlkZSB6ZXJvIHZhbHVlIGl0 ZW1zKTpcbiIpOw0KPiA+ID4gIAlmcHJpbnRmKGYsICIgICAgY2FjaGVfc2l6ZT0lIlBSSXUzMiJc biIsIG1wLT5jYWNoZV9zaXplKTsNCj4gPiA+DQo+ID4gPiAtCWlmIChtcC0+Y2FjaGVfc2l6ZSA9 PSAwKQ0KPiA+ID4gKwlpZiAobXAtPmxvY2FsX2NhY2hlID09IE5VTEwpDQo+ID4gPiAgCQlyZXR1 cm4gY291bnQ7DQo+ID4gPg0KPiA+ID4gLQlmb3IgKGxjb3JlX2lkID0gMDsgbGNvcmVfaWQgPCBS VEVfTUFYX0xDT1JFOyBsY29yZV9pZCsrKSB7DQo+ID4gPiAtCQljYWNoZV9jb3VudCA9IG1wLT5s b2NhbF9jYWNoZVtsY29yZV9pZF0ubGVuOw0KPiA+ID4gKwljb25zdCBzdHJ1Y3QgcnRlX21lbXBv b2xfY2FjaGUgKmNhY2hlID0gbXAtPmxvY2FsX2NhY2hlOw0KPiA+ID4gKwlmb3IgKHVuc2lnbmVk IGludCBsY29yZV9pZCA9IDA7IGxjb3JlX2lkIDwgUlRFX01BWF9MQ09SRTsNCj4gPiA+ICsJCQls Y29yZV9pZCsrLCBjYWNoZSA9IFJURV9QVFJfQUREKGNhY2hlLCBtcC0NCj4gPiA+ID5zaXplb2Zf Y2FjaGVfcGVyX2xjb3JlKSkgew0KPiA+ID4gKwkJdW5zaWduZWQgaW50IGNhY2hlX2NvdW50ID0g Y2FjaGUtPmxlbjsNCj4gPiA+ICAJCWlmIChjYWNoZV9jb3VudCA9PSAwKQ0KPiA+ID4gIAkJCWNv bnRpbnVlOw0KPiA+ID4gIAkJZnByaW50ZihmLCAiICAgIGNhY2hlX2NvdW50WyV1XT0lIlBSSXUz MiJcbiIsDQo+ID4gPiBAQCAtMTIyMywxNSArMTIzNCwxMyBAQCBtZW1wb29sX2F1ZGl0X2Nvb2tp ZXMoc3RydWN0IHJ0ZV9tZW1wb29sDQo+ICptcCkNCj4gPiA+ICBzdGF0aWMgdm9pZA0KPiA+ID4g IG1lbXBvb2xfYXVkaXRfY2FjaGUoY29uc3Qgc3RydWN0IHJ0ZV9tZW1wb29sICptcCkNCj4gPiA+ ICB7DQo+ID4gPiAtCXVuc2lnbmVkIGxjb3JlX2lkOw0KPiA+ID4gLQ0KPiA+ID4gLQlpZiAobXAt PmNhY2hlX3NpemUgPT0gMCkNCj4gPiA+ICsJaWYgKG1wLT5sb2NhbF9jYWNoZSA9PSBOVUxMKQ0K PiA+ID4gIAkJcmV0dXJuOw0KPiA+ID4NCj4gPiA+IC0JZm9yIChsY29yZV9pZCA9IDA7IGxjb3Jl X2lkIDwgUlRFX01BWF9MQ09SRTsgbGNvcmVfaWQrKykgew0KPiA+ID4gLQkJY29uc3Qgc3RydWN0 IHJ0ZV9tZW1wb29sX2NhY2hlICpjYWNoZTsNCj4gPiA+IC0JCWNhY2hlID0gJm1wLT5sb2NhbF9j YWNoZVtsY29yZV9pZF07DQo+ID4gPiAtCQlpZiAoY2FjaGUtPnNpemUgPiBSVEVfRElNKGNhY2hl LT5vYmpzKSkgew0KPiA+ID4gKwljb25zdCBzdHJ1Y3QgcnRlX21lbXBvb2xfY2FjaGUgKmNhY2hl ID0gbXAtPmxvY2FsX2NhY2hlOw0KPiA+ID4gKwlmb3IgKHVuc2lnbmVkIGludCBsY29yZV9pZCA9 IDA7IGxjb3JlX2lkIDwgUlRFX01BWF9MQ09SRTsNCj4gPiA+ICsJCQlsY29yZV9pZCsrLCBjYWNo ZSA9IFJURV9QVFJfQUREKGNhY2hlLCBtcC0NCj4gPiA+ID5zaXplb2ZfY2FjaGVfcGVyX2xjb3Jl KSkgew0KPiA+ID4gKwkJaWYgKGNhY2hlLT5zaXplID4gbXAtPnNpemUpIHsNCj4gPiA+ICAJCQlS VEVfTUVNUE9PTF9MT0coQ1JJVCwgImJhZG5lc3Mgb24gY2FjaGVbJXVdIHNpemUiLA0KPiA+ID4g bGNvcmVfaWQpOw0KPiA+ID4gIAkJCXJ0ZV9wYW5pYygiTUVNUE9PTDogaW52YWxpZCBjYWNoZVsl dV0gc2l6ZVxuIiwNCj4gPiA+IGxjb3JlX2lkKTsNCj4gPiA+ICAJCX0NCj4gPiA+IEBAIC0xMzI0 LDEzICsxMzMzLDE1IEBAIHJ0ZV9tZW1wb29sX2R1bXAoRklMRSAqZiwgc3RydWN0DQo+IHJ0ZV9t ZW1wb29sDQo+ID4gPiAqbXApDQo+ID4gPiAgCQlzdW0uZ2V0X3N1Y2Nlc3NfYmxrcyArPSBtcC0N Cj4gPiA+c3RhdHNbbGNvcmVfaWRdLmdldF9zdWNjZXNzX2Jsa3M7DQo+ID4gPiAgCQlzdW0uZ2V0 X2ZhaWxfYmxrcyArPSBtcC0+c3RhdHNbbGNvcmVfaWRdLmdldF9mYWlsX2Jsa3M7DQo+ID4gPiAg CX0NCj4gPiA+IC0JaWYgKG1wLT5jYWNoZV9zaXplICE9IDApIHsNCj4gPiA+ICsJaWYgKG1wLT5s b2NhbF9jYWNoZSAhPSBOVUxMKSB7DQo+ID4gPiAgCQkvKiBBZGQgdGhlIHN0YXRpc3RpY3Mgc3Rv cmVkIGluIHRoZSBtZW1wb29sIGNhY2hlcy4gKi8NCj4gPiA+IC0JCWZvciAobGNvcmVfaWQgPSAw OyBsY29yZV9pZCA8IFJURV9NQVhfTENPUkU7IGxjb3JlX2lkKyspIHsNCj4gPiA+IC0JCQlzdW0u cHV0X2J1bGsgKz0gbXAtDQo+ID4gPiA+bG9jYWxfY2FjaGVbbGNvcmVfaWRdLnN0YXRzLnB1dF9i dWxrOw0KPiA+ID4gLQkJCXN1bS5wdXRfb2JqcyArPSBtcC0NCj4gPiA+ID5sb2NhbF9jYWNoZVts Y29yZV9pZF0uc3RhdHMucHV0X29ianM7DQo+ID4gPiAtCQkJc3VtLmdldF9zdWNjZXNzX2J1bGsg Kz0gbXAtDQo+ID4gPiA+bG9jYWxfY2FjaGVbbGNvcmVfaWRdLnN0YXRzLmdldF9zdWNjZXNzX2J1 bGs7DQo+ID4gPiAtCQkJc3VtLmdldF9zdWNjZXNzX29ianMgKz0gbXAtDQo+ID4gPiA+bG9jYWxf Y2FjaGVbbGNvcmVfaWRdLnN0YXRzLmdldF9zdWNjZXNzX29ianM7DQo+ID4gPiArCQljb25zdCBz dHJ1Y3QgcnRlX21lbXBvb2xfY2FjaGUgKmNhY2hlID0gbXAtPmxvY2FsX2NhY2hlOw0KPiA+ID4g KwkJZm9yIChsY29yZV9pZCA9IDA7IGxjb3JlX2lkIDwgUlRFX01BWF9MQ09SRTsNCj4gPiA+ICsJ CQlsY29yZV9pZCsrLCBjYWNoZSA9IFJURV9QVFJfQUREKGNhY2hlLCBtcC0NCj4gPiA+ID5zaXpl b2ZfY2FjaGVfcGVyX2xjb3JlKSkgew0KPiA+ID4gKwkJCXN1bS5wdXRfYnVsayArPSBjYWNoZS0+ c3RhdHMucHV0X2J1bGs7DQo+ID4gPiArCQkJc3VtLnB1dF9vYmpzICs9IGNhY2hlLT5zdGF0cy5w dXRfb2JqczsNCj4gPiA+ICsJCQlzdW0uZ2V0X3N1Y2Nlc3NfYnVsayArPSBjYWNoZS0NCj4gPiA+ c3RhdHMuZ2V0X3N1Y2Nlc3NfYnVsazsNCj4gPiA+ICsJCQlzdW0uZ2V0X3N1Y2Nlc3Nfb2JqcyAr PSBjYWNoZS0NCj4gPiA+c3RhdHMuZ2V0X3N1Y2Nlc3Nfb2JqczsNCj4gPiA+ICAJCX0NCj4gPiA+ ICAJfQ0KPiA+ID4gIAlmcHJpbnRmKGYsICIgIHN0YXRzOlxuIik7DQo+ID4gPiBAQCAtMTYyNywx MCArMTYzOCwxMSBAQCBtZW1wb29sX2luZm9fY2Ioc3RydWN0IHJ0ZV9tZW1wb29sICptcCwNCj4g dm9pZA0KPiA+ID4gKmFyZykNCj4gPiA+ICAJCQkJICBtcC0+cG9wdWxhdGVkX3NpemUpOw0KPiA+ ID4NCj4gPiA+ICAJY2FjaGVfY291bnQgPSAwOw0KPiA+ID4gLQlpZiAobXAtPmNhY2hlX3NpemUg PiAwKSB7DQo+ID4gPiAtCQlpbnQgbGNvcmVfaWQ7DQo+ID4gPiAtCQlmb3IgKGxjb3JlX2lkID0g MDsgbGNvcmVfaWQgPCBSVEVfTUFYX0xDT1JFOyBsY29yZV9pZCsrKQ0KPiA+ID4gLQkJCWNhY2hl X2NvdW50ICs9IG1wLT5sb2NhbF9jYWNoZVtsY29yZV9pZF0ubGVuOw0KPiA+ID4gKwlpZiAobXAt PmxvY2FsX2NhY2hlICE9IE5VTEwpIHsNCj4gPiA+ICsJCWNvbnN0IHN0cnVjdCBydGVfbWVtcG9v bF9jYWNoZSAqY2FjaGUgPSBtcC0+bG9jYWxfY2FjaGU7DQo+ID4gPiArCQlmb3IgKHVuc2lnbmVk IGludCBsY29yZV9pZCA9IDA7IGxjb3JlX2lkIDwgUlRFX01BWF9MQ09SRTsNCj4gPiA+ICsJCQkJ bGNvcmVfaWQrKywgY2FjaGUgPSBSVEVfUFRSX0FERChjYWNoZSwgbXAtDQo+ID4gPiA+c2l6ZW9m X2NhY2hlX3Blcl9sY29yZSkpDQo+ID4gPiArCQkJY2FjaGVfY291bnQgKz0gY2FjaGUtPmxlbjsN Cj4gPiA+ICAJfQ0KPiA+ID4gIAlydGVfdGVsX2RhdGFfYWRkX2RpY3RfdWludChpbmZvLT5kLCAi dG90YWxfY2FjaGVfY291bnQiLA0KPiA+IGNhY2hlX2NvdW50KTsNCj4gPiA+ICAJY29tbW9uX2Nv dW50ID0gcnRlX21lbXBvb2xfb3BzX2dldF9jb3VudChtcCk7DQo+ID4gPiBkaWZmIC0tZ2l0IGEv bGliL21lbXBvb2wvcnRlX21lbXBvb2wuaCBiL2xpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmgNCj4g PiA+IGluZGV4IDVhODFlNTNhOWYuLjVmYzdjZGI3OWMgMTAwNjQ0DQo+ID4gPiAtLS0gYS9saWIv bWVtcG9vbC9ydGVfbWVtcG9vbC5oDQo+ID4gPiArKysgYi9saWIvbWVtcG9vbC9ydGVfbWVtcG9v bC5oDQo+ID4gPiBAQCAtMTA1LDggKzEwNSw3IEBAIHN0cnVjdCBfX3J0ZV9jYWNoZV9hbGlnbmVk IHJ0ZV9tZW1wb29sX2NhY2hlIHsNCj4gPiA+ICAJfSBzdGF0czsgICAgICAgICAgICAgICAgICAg ICAgICAvKio8IFN0YXRpc3RpY3MgKi8NCj4gPiA+ICAjZW5kaWYNCj4gPiA+ICAJLyoqIENhY2hl IG9iamVjdHMgKi8NCj4gPiA+IC0JYWxpZ25hcyhSVEVfQ0FDSEVfTElORV9TSVpFKSB2b2lkDQo+ ID4gPiAqb2Jqc1tSVEVfTUVNUE9PTF9DQUNIRV9NQVhfU0laRV07DQo+ID4gPiAtCVJURV9DQUNI RV9HVUFSRDsNCj4gPiA+ICsJYWxpZ25hcyhSVEVfQ0FDSEVfTElORV9TSVpFKSB2b2lkICpvYmpz W107DQo+ID4NCj4gPiBMR1RNIHRvIG1lIGluIGdlbmVyYWwuDQo+ID4gQWdhaW4sIGp1c3QgYXMg YSB0aG91Z2h0Og0KPiA+IFdvdWxkIGl0IGJlIHBsYXVzaWJsZSB0byBoYXZlIGEgcG9pbnRlciBw ZXIgbGNvcmUgaW5zdGVhZD8NCj4gPiBpLmUuOg0KPiA+IGFsaWduYXMoUlRFX0NBQ0hFX0xJTkVf U0laRSkgdm9pZCAqb2Jqc1tSVEVfTUFYX0xDT1JFXTsNCj4gPiBUaGF0IHdheSB3ZSBjYW4gYXZv aWQgbXVsdGlwbHkgb3AgaW4gcnRlX21lbXBvb2xfZGVmYXVsdF9jYWNoZSgpLA0KPiA+IGFsc28g aXQgd2lsbCBhbGxvdyB1cyB0byBhbGxvY2F0ZSBsY29yZSBjYWNoZSBvbiBkZW1hbmQgKG9ubHkg Zm9yDQo+ID4gZW5hYmxlZCBsY29yZXMpLg0KPiA+IEFzIGEgZG93bnNpZGUgLSBzaXplb2YocnRl X21lbXBvb2xfY2FjaGUpIHdpbGwgZ3JvdyBieQ0KPiA+IChSVEVfTUFYX0xDT1JFIC0gMSkgKiBz aXplb2YodWludHB0cl90KSwgYnV0IHRoYXQncyBwcm9iYWJseSBub3QgYSBiaWcNCj4gPiBkZWFs Lg0KPiANCj4gVGhlIG11bHRpcGx5IG9wIGlzIG5vdCBleHBlbnNpdmUuDQo+IA0KPiBUaGlzIHBh dGNoIGhhczoNCj4gc3RydWN0IHJ0ZV9tZW1wb29sX2NhY2hlICpjYWNoZSA9DQo+IAkoc3RydWN0 IHJ0ZV9tZW1wb29sX2NhY2hlICopDQo+IAlSVEVfUFRSX0FERCgNCj4gCW1wLT5sb2NhbF9jYWNo ZSwNCj4gCWxjb3JlX2lkICogKHNpemVfdCltcC0+c2l6ZW9mX2NhY2hlX3Blcl9sY29yZSk7DQo+ IA0KPiBXaGljaCBjb21waWxlcyB0byBzb21ldGhpbmcgbGlrZToNCj4gcHRyID0gTE9BRChtcCAr IG9mZnNldG9mKGNhY2hlX3B0cikpOw0KPiBvZmYgPSBMT0FEKG1wICsgb2Zmc2V0b2Yoc2l6ZW9m X2NhY2hlX3Blcl9sY29yZSkpOw0KPiBvZmYgKj0gbGNvcmVfaWQ7DQo+IHB0ciArPSBvZmY7DQo+ IA0KPiANCj4gWWVzLCBoYXZpbmcgYW4gYXJyYXkgb2YgcG9pbnRlcnMgdG8gdGhlIGNhY2hlcyBp biB0aGUgbWVtcG9vbCB3b3VsZCBiZSBhIGdvb2QNCj4gYWx0ZXJuYXRpdmU6DQo+IA0KPiBzdHJ1 Y3QgX19ydGVfY2FjaGVfYWxpZ25lZCBydGVfbWVtcG9vbCB7DQo+IC0Jc3RydWN0IHJ0ZV9tZW1w b29sX2NhY2hlICpsb2NhbF9jYWNoZTsgLyoqPCBQZXItbGNvcmUgbG9jYWwgY2FjaGUgKi8NCj4g DQo+IFsuLi5dDQo+IAlzdHJ1Y3QgcnRlX21lbXBvb2xfZGVidWdfc3RhdHMgc3RhdHNbUlRFX01B WF9MQ09SRSArIDFdOw0KPiAjZW5kaWYNCj4gKwkvKiogUGVyLWxjb3JlIGxvY2FsIGNhY2hlICov DQo+ICsJc3RydWN0IHJ0ZV9tZW1wb29sX2NhY2hlICpsb2NhbF9jYWNoZVtSVEVfTUFYX0xDT1JF XTsNCj4gfTsNCg0KWWVzLCB5b3UgcmlnaHQsIG9mZi1jb3Vyc2UgaXQgaGFzIHRvIGJlIHRoYXQg d2F5Lg0KDQo+IA0KPiANCj4gTG9va3VwIGZvciB0aGF0IHdvdWxkIGJlY29tZSBzaW1wbGU6DQo+ IHN0cnVjdCBydGVfbWVtcG9vbF9jYWNoZSAqY2FjaGUgPQ0KPiAJbXAtPmxvY2FsX2NhY2hlW2xj b3JlX2lkXTsNCj4gDQo+IFdoaWNoIGNvbXBpbGVzIHRvIHNvbWV0aGluZyBsaWtlOg0KPiBvZmYg PSBsY29yZV9pZCAqIHNpemVvZih2b2lkKik7IC8vIFNoaWZ0IG9wZXJhdGlvbg0KPiBvZmYgKz0g b2Zmc2V0b2YoY2FjaGVfcHRyX2FycmF5KTsNCj4gcHRyID0gTE9BRChtcCArIG9mZik7DQo+IA0K PiBZZXMsIEkgc3VwcG9zZSB0aGF0IHdvdWxkIGJlIGZhc3Rlci4NCj4gSSdsbCB0YWtlIGEgc3Rh YiBhdCBpdC4NCj4gDQo+IENhY2hlcyBmb3IgYWxsIGxjb3JlcyBtdXN0IGJlIGFsbG9jYXRlZCBh dCBtZW1wb29sIGNyZWF0aW9uLiBPciB3ZSB3b3VsZCBuZWVkDQo+IHNwZWNpYWwgaGFuZGxpbmcg dG8gYWxsb2NhdGUvZnJlZSB0aGUgcmVsZXZhbnQgcGVyLWxjb3JlIGNhY2hlIGZvciBhbGwgcmVn aXN0ZXJlZA0KPiBtZW1wb29scyB3aGVuZXZlciBhIG5ldyBsY29yZSBpcyByZWdpc3RlcmVkIGZv ciB1c2UgYXQgcnVudGltZSwgZS5nLiBieQ0KPiBydGVfdGhyZWFkX3JlZ2lzdGVyKCkvdW5yZWdp c3RlcigpLg0KDQpNeSBpbml0aWFsIHRob3VnaHQgd2FzOiANCndlIGNhbiBhbGxvY2F0ZSBjYWNo ZXMgZm9yIGFsbCBsY29yZXMgdGhhdCBhcmUgYWxyZWFkeSBlbmFibGVkIGF0IG1lbXBvb2xfaW5p dCB0aW1lLg0KSWYgbGF0ZXIsIHN1Y2ggY29yZSB3aWxsIGJlIGRpc2FibGVkIC0gdGhhdCdzIHBy b2JhYmx5IG5vdCBhIGJpZyBkZWFsLCB3ZSBjYW4gc2ltcGx5IGxlZnQgdGhlIGNhY2hlIGZvciBp dA0KaGFuZ2luZyBhcm91bmQgdW51c2VkIHVudGlsIG1lbXBvb2wgd2lsbCBiZSBkZXN0cm95ZWQu DQpGb3IgbGNvcmVzIHRoYXQgd2lsbCBiZSBlbmFibGVkIGFmdGVyIG1lbXBvb2xfaW5pdCgpIHdl IGNhbiB1c2UgbGF6eSBhbGxvY2F0aW9uIChhdCBmaXJzdCBhY2Nlc3MgdG8gaXQpLg0KQnV0IGFm dGVyIGFub3RoZXIgdGhvdWdodCAtIHRoYXQncyBwcm9iYWJseSBub3Qgc3VjaCBnb29kIGlkZWEs IGFzIGluIHByaW5jaXBsZSBydGVfbWFsbG9jKCkgaGVyZSBjYW4gZmFpbC4NCiANCj4gPg0KPiA+ ID4gIH07DQo+ID4gPg0KPiA+ID4gIC8qKg0KPiA+ID4gQEAgLTI2NSw2ICsyNjQsNyBAQCBzdHJ1 Y3QgX19ydGVfY2FjaGVfYWxpZ25lZCBydGVfbWVtcG9vbCB7DQo+ID4gPiAgCWludDMyX3Qgb3Bz X2luZGV4Ow0KPiA+ID4NCj4gPiA+ICAJc3RydWN0IHJ0ZV9tZW1wb29sX2NhY2hlICpsb2NhbF9j YWNoZTsgLyoqPCBQZXItbGNvcmUgbG9jYWwgY2FjaGUNCj4gPiAqLw0KPiA+ID4gKwl1aW50MzJf dCBzaXplb2ZfY2FjaGVfcGVyX2xjb3JlOyAvKio8IE11bHRpcGxpZXIgZm9yIGluZGV4aW5nDQo+ ID4gaW50byB0aGUNCj4gPiA+IGxvY2FsIGNhY2hlLiAqLw0KPiA+ID4NCj4gPiA+ICAJdWludDMy X3QgcG9wdWxhdGVkX3NpemU7ICAgICAgICAgLyoqPCBOdW1iZXIgb2YgcG9wdWxhdGVkDQo+ID4g b2JqZWN0cy4gKi8NCj4gPiA+ICAJc3RydWN0IHJ0ZV9tZW1wb29sX29iamhkcl9saXN0IGVsdF9s aXN0OyAvKio8IExpc3Qgb2Ygb2JqZWN0cyBpbg0KPiA+IHBvb2wgKi8NCj4gPiA+IEBAIC0xMDUw LDggKzEwNTAsNyBAQCBydGVfbWVtcG9vbF9mcmVlKHN0cnVjdCBydGVfbWVtcG9vbCAqbXApOw0K PiA+ID4gICAqIEBwYXJhbSBjYWNoZV9zaXplDQo+ID4gPiAgICogICBJZiBjYWNoZV9zaXplIGlz IG5vbi16ZXJvLCB0aGUgcnRlX21lbXBvb2wgbGlicmFyeSB3aWxsIHRyeSB0bw0KPiA+ID4gICAq ICAgbGltaXQgdGhlIGFjY2Vzc2VzIHRvIHRoZSBjb21tb24gbG9ja2xlc3MgcG9vbCwgYnkgbWFp bnRhaW5pbmcNCj4gPiBhDQo+ID4gPiAtICogICBwZXItbGNvcmUgb2JqZWN0IGNhY2hlLiBUaGlz IGFyZ3VtZW50IG11c3QgYmUgbG93ZXIgb3IgZXF1YWwgdG8NCj4gPiA+IC0gKiAgIFJURV9NRU1Q T09MX0NBQ0hFX01BWF9TSVpFIGFuZCBuLg0KPiA+ID4gKyAqICAgcGVyLWxjb3JlIG9iamVjdCBj YWNoZS4gVGhpcyBhcmd1bWVudCBtdXN0IGJlIGxvd2VyIG9yIGVxdWFsIHRvDQo+ID4gbi4NCj4g PiA+ICAgKiAgIFRoZSBhY2Nlc3MgdG8gdGhlIHBlci1sY29yZSB0YWJsZSBpcyBvZiBjb3Vyc2UN Cj4gPiA+ICAgKiAgIGZhc3RlciB0aGFuIHRoZSBtdWx0aS1wcm9kdWNlci9jb25zdW1lciBwb29s LiBUaGUgY2FjaGUgY2FuIGJlDQo+ID4gPiAgICogICBkaXNhYmxlZCBpZiB0aGUgY2FjaGVfc2l6 ZSBhcmd1bWVudCBpcyBzZXQgdG8gMDsgaXQgY2FuIGJlDQo+ID4gdXNlZnVsIHRvDQo+ID4gPiBA QCAtMTM3MSwxNSArMTM3MCwxNyBAQCBydGVfbWVtcG9vbF9jYWNoZV9jcmVhdGUodWludDMyX3Qg c2l6ZSwgaW50DQo+ID4gPiBzb2NrZXRfaWQpDQo+ID4gPiAgc3RhdGljIF9fcnRlX2Fsd2F5c19p bmxpbmUgc3RydWN0IHJ0ZV9tZW1wb29sX2NhY2hlICoNCj4gPiA+ICBydGVfbWVtcG9vbF9kZWZh dWx0X2NhY2hlKHN0cnVjdCBydGVfbWVtcG9vbCAqbXAsIHVuc2lnbmVkIGxjb3JlX2lkKQ0KPiA+ ID4gIHsNCj4gPiA+IC0JaWYgKHVubGlrZWx5KG1wLT5jYWNoZV9zaXplID09IDApKQ0KPiA+ID4g KwlpZiAodW5saWtlbHkobXAtPmxvY2FsX2NhY2hlID09IE5VTEwpKQ0KPiA+ID4gIAkJcmV0dXJu IE5VTEw7DQo+ID4gPg0KPiA+ID4gIAlpZiAodW5saWtlbHkobGNvcmVfaWQgPT0gTENPUkVfSURf QU5ZKSkNCj4gPiA+ICAJCXJldHVybiBOVUxMOw0KPiA+ID4NCj4gPiA+IC0JcnRlX21lbXBvb2xf dHJhY2VfZGVmYXVsdF9jYWNoZShtcCwgbGNvcmVfaWQsDQo+ID4gPiAtCQkmbXAtPmxvY2FsX2Nh Y2hlW2xjb3JlX2lkXSk7DQo+ID4gPiAtCXJldHVybiAmbXAtPmxvY2FsX2NhY2hlW2xjb3JlX2lk XTsNCj4gPiA+ICsJc3RydWN0IHJ0ZV9tZW1wb29sX2NhY2hlICpjYWNoZSA9IChzdHJ1Y3QgcnRl X21lbXBvb2xfY2FjaGUNCj4gPiA+ICopUlRFX1BUUl9BREQobXAtPmxvY2FsX2NhY2hlLA0KPiA+ ID4gKwkJCWxjb3JlX2lkICogKHNpemVfdCltcC0+c2l6ZW9mX2NhY2hlX3Blcl9sY29yZSk7DQo+ ID4gPiArCXJ0ZV9tZW1wb29sX3RyYWNlX2RlZmF1bHRfY2FjaGUobXAsIGxjb3JlX2lkLCBjYWNo ZSk7DQo+ID4gPiArCV9fcnRlX2Fzc3VtZShjYWNoZSAhPSBOVUxMKTsNCj4gPiA+ICsJcmV0dXJu IGNhY2hlOw0KPiA+ID4gIH0NCj4gPiA+DQo+ID4gPiAgLyoqDQo+ID4gPiAtLQ0KPiA+ID4gMi40 My4wDQoNCg==