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 1A90BC98302 for ; Tue, 22 Sep 2026 11:30:02 +0000 (UTC) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1390C402B6; Tue, 22 Sep 2026 13:30:02 +0200 (CEST) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 697CE402B0 for ; Tue, 22 Sep 2026 13:30:01 +0200 (CEST) dkim-signature: v=1; a=rsa-sha256; d=huawei.com; s=dkim; c=relaxed/relaxed; q=dns/txt; h=From; bh=rosQPaJPhEnR28VXHv2RTr2pVsuP84+VeQ9fCXYIL+M=; b=uaQKM1PeXdIteuKQ4NnTqj426toqh9hJVbBAA5rwViRVCSwoZN7/swVNpDq8ihM1e5qUsAdT2 38Xg/nhk/d4n167pzxwPxAOSA0bht5QDDRb/OLom2iXCrqR9/QWSkZeqdRDXAYeEV43yQ9tzJvW 3ckULAkwt6Mpu30b3xu/r+0= Received: from mail.maildlp.com (unknown [172.18.224.83]) by frasgout.his.huawei.com (SkyGuard) with ESMTPS id 4hpyYx2Dl1zJ46Y6; Tue, 22 Sep 2026 19:29:57 +0800 (CST) Received: from dubpeml500002.china.huawei.com (unknown [7.214.145.83]) by mail.maildlp.com (Postfix) with ESMTPS id 5408E40569; Tue, 22 Sep 2026 19:30:00 +0800 (CST) Received: from dubpeml500001.china.huawei.com (7.214.147.241) by dubpeml500002.china.huawei.com (7.214.145.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.46; Tue, 22 Sep 2026 12:29:59 +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; Tue, 22 Sep 2026 12:29:59 +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/7zIbbUT1vAgAAodBCAACZywIABE0KggATV56A= Date: Tue, 22 Sep 2026 11:29:59 +0000 Message-ID: <9a7e5c2fa9094829b555d0536da64241@huawei.com> References: <20260910103613.808038-1-mb@smartsharesystems.com> <20260910103613.808038-7-mb@smartsharesystems.com> <98CBD80474FA8B44BF855DF32C47DC35F65A55@smartserver.smartshare.dk> <47b4d1bbc1644820aec4e9844dbfb96a@huawei.com> <98CBD80474FA8B44BF855DF32C47DC35F65A56@smartserver.smartshare.dk> In-Reply-To: <98CBD80474FA8B44BF855DF32C47DC35F65A56@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.126.170.71] 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+ID4gPiBkaWZmIC0tZ2l0IGEvbGliL21lbXBvb2wvcnRlX21lbXBvb2wuaA0KPiA+ IGIvbGliL21lbXBvb2wvcnRlX21lbXBvb2wuaA0KPiA+ID4gPiA+IGluZGV4IDVhODFlNTNhOWYu LjVmYzdjZGI3OWMgMTAwNjQ0DQo+ID4gPiA+ID4gLS0tIGEvbGliL21lbXBvb2wvcnRlX21lbXBv b2wuaA0KPiA+ID4gPiA+ICsrKyBiL2xpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmgNCj4gPiA+ID4g PiBAQCAtMTA1LDggKzEwNSw3IEBAIHN0cnVjdCBfX3J0ZV9jYWNoZV9hbGlnbmVkIHJ0ZV9tZW1w b29sX2NhY2hlDQo+ID4gew0KPiA+ID4gPiA+ICAJfSBzdGF0czsgICAgICAgICAgICAgICAgICAg ICAgICAvKio8IFN0YXRpc3RpY3MgKi8NCj4gPiA+ID4gPiAgI2VuZGlmDQo+ID4gPiA+ID4gIAkv KiogQ2FjaGUgb2JqZWN0cyAqLw0KPiA+ID4gPiA+IC0JYWxpZ25hcyhSVEVfQ0FDSEVfTElORV9T SVpFKSB2b2lkDQo+ID4gPiA+ID4gKm9ianNbUlRFX01FTVBPT0xfQ0FDSEVfTUFYX1NJWkVdOw0K PiA+ID4gPiA+IC0JUlRFX0NBQ0hFX0dVQVJEOw0KPiA+ID4gPiA+ICsJYWxpZ25hcyhSVEVfQ0FD SEVfTElORV9TSVpFKSB2b2lkICpvYmpzW107DQo+ID4gPiA+DQo+ID4gPiA+IExHVE0gdG8gbWUg aW4gZ2VuZXJhbC4NCj4gPiA+ID4gQWdhaW4sIGp1c3QgYXMgYSB0aG91Z2h0Og0KPiA+ID4gPiBX b3VsZCBpdCBiZSBwbGF1c2libGUgdG8gaGF2ZSBhIHBvaW50ZXIgcGVyIGxjb3JlIGluc3RlYWQ/ DQo+ID4gPiA+IGkuZS46DQo+ID4gPiA+IGFsaWduYXMoUlRFX0NBQ0hFX0xJTkVfU0laRSkgdm9p ZCAqb2Jqc1tSVEVfTUFYX0xDT1JFXTsNCj4gPiA+ID4gVGhhdCB3YXkgd2UgY2FuIGF2b2lkIG11 bHRpcGx5IG9wIGluIHJ0ZV9tZW1wb29sX2RlZmF1bHRfY2FjaGUoKSwNCj4gPiA+ID4gYWxzbyBp dCB3aWxsIGFsbG93IHVzIHRvIGFsbG9jYXRlIGxjb3JlIGNhY2hlIG9uIGRlbWFuZCAob25seSBm b3INCj4gPiA+ID4gZW5hYmxlZCBsY29yZXMpLg0KPiA+ID4gPiBBcyBhIGRvd25zaWRlIC0gc2l6 ZW9mKHJ0ZV9tZW1wb29sX2NhY2hlKSB3aWxsIGdyb3cgYnkNCj4gPiA+ID4gKFJURV9NQVhfTENP UkUgLSAxKSAqIHNpemVvZih1aW50cHRyX3QpLCBidXQgdGhhdCdzIHByb2JhYmx5IG5vdCBhDQo+ ID4gYmlnDQo+ID4gPiA+IGRlYWwuDQo+ID4gPg0KPiA+ID4gVGhlIG11bHRpcGx5IG9wIGlzIG5v dCBleHBlbnNpdmUuDQo+ID4gPg0KPiA+ID4gVGhpcyBwYXRjaCBoYXM6DQo+ID4gPiBzdHJ1Y3Qg cnRlX21lbXBvb2xfY2FjaGUgKmNhY2hlID0NCj4gPiA+IAkoc3RydWN0IHJ0ZV9tZW1wb29sX2Nh Y2hlICopDQo+ID4gPiAJUlRFX1BUUl9BREQoDQo+ID4gPiAJbXAtPmxvY2FsX2NhY2hlLA0KPiA+ ID4gCWxjb3JlX2lkICogKHNpemVfdCltcC0+c2l6ZW9mX2NhY2hlX3Blcl9sY29yZSk7DQo+ID4g Pg0KPiA+ID4gV2hpY2ggY29tcGlsZXMgdG8gc29tZXRoaW5nIGxpa2U6DQo+ID4gPiBwdHIgPSBM T0FEKG1wICsgb2Zmc2V0b2YoY2FjaGVfcHRyKSk7DQo+ID4gPiBvZmYgPSBMT0FEKG1wICsgb2Zm c2V0b2Yoc2l6ZW9mX2NhY2hlX3Blcl9sY29yZSkpOw0KPiA+ID4gb2ZmICo9IGxjb3JlX2lkOw0K PiA+ID4gcHRyICs9IG9mZjsNCj4gPiA+DQo+ID4gPg0KPiA+ID4gWWVzLCBoYXZpbmcgYW4gYXJy YXkgb2YgcG9pbnRlcnMgdG8gdGhlIGNhY2hlcyBpbiB0aGUgbWVtcG9vbCB3b3VsZA0KPiA+IGJl IGEgZ29vZA0KPiA+ID4gYWx0ZXJuYXRpdmU6DQo+ID4gPg0KPiA+ID4gc3RydWN0IF9fcnRlX2Nh Y2hlX2FsaWduZWQgcnRlX21lbXBvb2wgew0KPiA+ID4gLQlzdHJ1Y3QgcnRlX21lbXBvb2xfY2Fj aGUgKmxvY2FsX2NhY2hlOyAvKio8IFBlci1sY29yZSBsb2NhbCBjYWNoZQ0KPiA+ICovDQo+ID4g Pg0KPiA+ID4gWy4uLl0NCj4gPiA+IAlzdHJ1Y3QgcnRlX21lbXBvb2xfZGVidWdfc3RhdHMgc3Rh dHNbUlRFX01BWF9MQ09SRSArIDFdOw0KPiA+ID4gI2VuZGlmDQo+ID4gPiArCS8qKiBQZXItbGNv cmUgbG9jYWwgY2FjaGUgKi8NCj4gPiA+ICsJc3RydWN0IHJ0ZV9tZW1wb29sX2NhY2hlICpsb2Nh bF9jYWNoZVtSVEVfTUFYX0xDT1JFXTsNCj4gPiA+IH07DQo+ID4NCj4gPiBZZXMsIHlvdSByaWdo dCwgb2ZmLWNvdXJzZSBpdCBoYXMgdG8gYmUgdGhhdCB3YXkuDQo+ID4NCj4gPiA+DQo+ID4gPg0K PiA+ID4gTG9va3VwIGZvciB0aGF0IHdvdWxkIGJlY29tZSBzaW1wbGU6DQo+ID4gPiBzdHJ1Y3Qg cnRlX21lbXBvb2xfY2FjaGUgKmNhY2hlID0NCj4gPiA+IAltcC0+bG9jYWxfY2FjaGVbbGNvcmVf aWRdOw0KPiA+ID4NCj4gPiA+IFdoaWNoIGNvbXBpbGVzIHRvIHNvbWV0aGluZyBsaWtlOg0KPiA+ ID4gb2ZmID0gbGNvcmVfaWQgKiBzaXplb2Yodm9pZCopOyAvLyBTaGlmdCBvcGVyYXRpb24NCj4g PiA+IG9mZiArPSBvZmZzZXRvZihjYWNoZV9wdHJfYXJyYXkpOw0KPiA+ID4gcHRyID0gTE9BRCht cCArIG9mZik7DQo+ID4gPg0KPiA+ID4gWWVzLCBJIHN1cHBvc2UgdGhhdCB3b3VsZCBiZSBmYXN0 ZXIuDQo+ID4gPiBJJ2xsIHRha2UgYSBzdGFiIGF0IGl0Lg0KPiANCj4gSSB0cmllZCBpdCwgYnV0 IHRoZSBtZW1wb29sIHBlcmYgdGVzdCB5aWVsZHMgc2ltaWxhciByZXN1bHRzIG9uIG91ciBidWls ZCBzZXJ2ZXIgKGENCj4gdmlydHVhbCBtYWNoaW5lKS4NCj4gDQo+IFRoZXJlIGFyZSBhbHNvIGEg Y291cGxlIG9mIGRpc2FkdmFudGFnZXM6DQo+IDEuIFRoZSB0YWJsZSBoYXMgYSBsYXJnZXIgbWVt b3J5IChhbmQgY2FjaGUpIGZvb3RwcmludCB0aGFuIHRoZSBzb2x1dGlvbiB3aXRoIHRoZQ0KPiBi YXNlIHBvaW50ZXIgYW5kIG11bHRpcGxpZXIuIFdlIGtuZXcgdGhhdCwgYW5kIGNvbnNpZGVyIGl0 IGluc2lnbmlmaWNhbnQuDQo+IDIuIElmIHRoZSBtZW1wb29sIGNhY2hlIG1pc3NlcywgdGhlIGJh Y2tlbmQgbXVzdCBiZSBpbnZvbHZlZCwgYW5kIHRoaXMgbmVlZHMgdG8NCj4gbG9hZCBtcC0+b3Bz X2luZGV4LiBXaXRoIHRoZSBiYXNlL211bHRpcGxpZXIgdmFyaWFudCwgb3BzX2luZGV4IGlzIGlu IHRoZSBzYW1lDQo+IGNhY2hlIGxpbmUgYXMgdGhlIGxvY2FsX2NhY2hlIHBvaW50ZXIsIGFuZCB0 aHVzIGFscmVhZHkgaG90IGluIHRoZSBjYWNoZS4gV2l0aCB0aGUNCj4gbGNvcmVfaWQgaW5kZXhl ZCBsb2NhbF9jYWNoZSBwb2ludGVyIGFycmF5LCBvcHNfaW5kZXggaXMgbm90IGhvdCBpbiB0aGUg Y2FjaGUuDQo+IE9idmlvdXNseSwgd2Ugd2FudCB0byBvcHRpbWl6ZSBmb3IgbWVtcG9vbCBjYWNo ZSBoaXRzLCBzbyB0aGlzIHNob3VsZCBiZQ0KPiBjb25zaWRlcmVkIGluc2lnbmlmaWNhbnQ7IEkg b25seSBtZW50aW9uIGl0IGZvciBjb21wbGV0ZW5lc3MuDQo+IA0KPiBJIHRoaW5rIHdlIHNob3Vs ZCBzdGljayB3aXRoIHRoZSBwYXRjaCBzZXJpZXMgYXMgaXMuDQoNCk9rLCB0aGFua3MgZm9yIHRy eWluZy4NCk92ZXJhbGwgdGhlIHNlcmllcyBsb29rcyBnb29kIHRvIG1lLCBzbzoNClNlcmllcy1B Y2tlZC1ieTogS29uc3RhbnRpbiBBbmFueWV2IDxrb25zdGFudGluLmFuYW55ZXZAaHVhd2VpLmNv bT4NCg0KPiANCj4gSWYgeW91IHdhbnQgdG8gcGxheSBhcm91bmQgd2l0aCB0aGUgbGNvcmVfaWQg aW5kZXhlZCBsb2NhbF9jYWNoZSBwb2ludGVyIGFycmF5LCBhDQo+IHBhdGNoIGlzIHByb3ZpZGVk IGF0IHRoZSBib3R0b20gb2YgdGhpcyBlbWFpbC4NCg0KSWYgSSdsbCBoYXZlIHRpbWUsIEkgd2ls bCBydW4gYm90aCB2ZXJzaW9ucyBvbiBvdXIgYm94ZXMsIHRob3VnaCBubyBoYXJkIHByb21pc2Vz LiANCiANCj4gPiA+DQo+ID4gPiBDYWNoZXMgZm9yIGFsbCBsY29yZXMgbXVzdCBiZSBhbGxvY2F0 ZWQgYXQgbWVtcG9vbCBjcmVhdGlvbi4gT3Igd2UNCj4gPiB3b3VsZCBuZWVkDQo+ID4gPiBzcGVj aWFsIGhhbmRsaW5nIHRvIGFsbG9jYXRlL2ZyZWUgdGhlIHJlbGV2YW50IHBlci1sY29yZSBjYWNo ZSBmb3INCj4gPiBhbGwgcmVnaXN0ZXJlZA0KPiA+ID4gbWVtcG9vbHMgd2hlbmV2ZXIgYSBuZXcg bGNvcmUgaXMgcmVnaXN0ZXJlZCBmb3IgdXNlIGF0IHJ1bnRpbWUsIGUuZy4NCj4gPiBieQ0KPiA+ ID4gcnRlX3RocmVhZF9yZWdpc3RlcigpL3VucmVnaXN0ZXIoKS4NCj4gPg0KPiA+IE15IGluaXRp YWwgdGhvdWdodCB3YXM6DQo+ID4gd2UgY2FuIGFsbG9jYXRlIGNhY2hlcyBmb3IgYWxsIGxjb3Jl cyB0aGF0IGFyZSBhbHJlYWR5IGVuYWJsZWQgYXQNCj4gPiBtZW1wb29sX2luaXQgdGltZS4NCj4g PiBJZiBsYXRlciwgc3VjaCBjb3JlIHdpbGwgYmUgZGlzYWJsZWQgLSB0aGF0J3MgcHJvYmFibHkg bm90IGEgYmlnIGRlYWwsDQo+ID4gd2UgY2FuIHNpbXBseSBsZWZ0IHRoZSBjYWNoZSBmb3IgaXQN Cj4gPiBoYW5naW5nIGFyb3VuZCB1bnVzZWQgdW50aWwgbWVtcG9vbCB3aWxsIGJlIGRlc3Ryb3ll ZC4NCj4gPiBGb3IgbGNvcmVzIHRoYXQgd2lsbCBiZSBlbmFibGVkIGFmdGVyIG1lbXBvb2xfaW5p dCgpIHdlIGNhbiB1c2UgbGF6eQ0KPiA+IGFsbG9jYXRpb24gKGF0IGZpcnN0IGFjY2VzcyB0byBp dCkuDQo+ID4gQnV0IGFmdGVyIGFub3RoZXIgdGhvdWdodCAtIHRoYXQncyBwcm9iYWJseSBub3Qg c3VjaCBnb29kIGlkZWEsIGFzIGluDQo+ID4gcHJpbmNpcGxlIHJ0ZV9tYWxsb2MoKSBoZXJlIGNh biBmYWlsLg0KPiA+DQo+ID4gPiA+DQo+ID4gPiA+ID4gIH07DQo+ID4gPiA+ID4NCj4gPiA+ID4g PiAgLyoqDQo+ID4gPiA+ID4gQEAgLTI2NSw2ICsyNjQsNyBAQCBzdHJ1Y3QgX19ydGVfY2FjaGVf YWxpZ25lZCBydGVfbWVtcG9vbCB7DQo+ID4gPiA+ID4gIAlpbnQzMl90IG9wc19pbmRleDsNCj4g PiA+ID4gPg0KPiA+ID4gPiA+ICAJc3RydWN0IHJ0ZV9tZW1wb29sX2NhY2hlICpsb2NhbF9jYWNo ZTsgLyoqPCBQZXItbGNvcmUgbG9jYWwNCj4gPiBjYWNoZQ0KPiA+ID4gPiAqLw0KPiA+ID4gPiA+ ICsJdWludDMyX3Qgc2l6ZW9mX2NhY2hlX3Blcl9sY29yZTsgLyoqPCBNdWx0aXBsaWVyIGZvcg0K PiA+IGluZGV4aW5nDQo+ID4gPiA+IGludG8gdGhlDQo+ID4gPiA+ID4gbG9jYWwgY2FjaGUuICov DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgCXVpbnQzMl90IHBvcHVsYXRlZF9zaXplOyAgICAgICAg IC8qKjwgTnVtYmVyIG9mIHBvcHVsYXRlZA0KPiA+ID4gPiBvYmplY3RzLiAqLw0KPiA+ID4gPiA+ ICAJc3RydWN0IHJ0ZV9tZW1wb29sX29iamhkcl9saXN0IGVsdF9saXN0OyAvKio8IExpc3Qgb2YN Cj4gPiBvYmplY3RzIGluDQo+ID4gPiA+IHBvb2wgKi8NCj4gPiA+ID4gPiBAQCAtMTA1MCw4ICsx MDUwLDcgQEAgcnRlX21lbXBvb2xfZnJlZShzdHJ1Y3QgcnRlX21lbXBvb2wgKm1wKTsNCj4gPiA+ ID4gPiAgICogQHBhcmFtIGNhY2hlX3NpemUNCj4gPiA+ID4gPiAgICogICBJZiBjYWNoZV9zaXpl IGlzIG5vbi16ZXJvLCB0aGUgcnRlX21lbXBvb2wgbGlicmFyeSB3aWxsIHRyeQ0KPiA+IHRvDQo+ ID4gPiA+ID4gICAqICAgbGltaXQgdGhlIGFjY2Vzc2VzIHRvIHRoZSBjb21tb24gbG9ja2xlc3Mg cG9vbCwgYnkNCj4gPiBtYWludGFpbmluZw0KPiA+ID4gPiBhDQo+ID4gPiA+ID4gLSAqICAgcGVy LWxjb3JlIG9iamVjdCBjYWNoZS4gVGhpcyBhcmd1bWVudCBtdXN0IGJlIGxvd2VyIG9yDQo+ID4g ZXF1YWwgdG8NCj4gPiA+ID4gPiAtICogICBSVEVfTUVNUE9PTF9DQUNIRV9NQVhfU0laRSBhbmQg bi4NCj4gPiA+ID4gPiArICogICBwZXItbGNvcmUgb2JqZWN0IGNhY2hlLiBUaGlzIGFyZ3VtZW50 IG11c3QgYmUgbG93ZXIgb3INCj4gPiBlcXVhbCB0bw0KPiA+ID4gPiBuLg0KPiA+ID4gPiA+ICAg KiAgIFRoZSBhY2Nlc3MgdG8gdGhlIHBlci1sY29yZSB0YWJsZSBpcyBvZiBjb3Vyc2UNCj4gPiA+ ID4gPiAgICogICBmYXN0ZXIgdGhhbiB0aGUgbXVsdGktcHJvZHVjZXIvY29uc3VtZXIgcG9vbC4g VGhlIGNhY2hlIGNhbg0KPiA+IGJlDQo+ID4gPiA+ID4gICAqICAgZGlzYWJsZWQgaWYgdGhlIGNh Y2hlX3NpemUgYXJndW1lbnQgaXMgc2V0IHRvIDA7IGl0IGNhbiBiZQ0KPiA+ID4gPiB1c2VmdWwg dG8NCj4gPiA+ID4gPiBAQCAtMTM3MSwxNSArMTM3MCwxNyBAQCBydGVfbWVtcG9vbF9jYWNoZV9j cmVhdGUodWludDMyX3Qgc2l6ZSwNCj4gPiBpbnQNCj4gPiA+ID4gPiBzb2NrZXRfaWQpDQo+ID4g PiA+ID4gIHN0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHN0cnVjdCBydGVfbWVtcG9vbF9jYWNo ZSAqDQo+ID4gPiA+ID4gIHJ0ZV9tZW1wb29sX2RlZmF1bHRfY2FjaGUoc3RydWN0IHJ0ZV9tZW1w b29sICptcCwgdW5zaWduZWQNCj4gPiBsY29yZV9pZCkNCj4gPiA+ID4gPiAgew0KPiA+ID4gPiA+ IC0JaWYgKHVubGlrZWx5KG1wLT5jYWNoZV9zaXplID09IDApKQ0KPiA+ID4gPiA+ICsJaWYgKHVu bGlrZWx5KG1wLT5sb2NhbF9jYWNoZSA9PSBOVUxMKSkNCj4gPiA+ID4gPiAgCQlyZXR1cm4gTlVM TDsNCj4gPiA+ID4gPg0KPiA+ID4gPiA+ICAJaWYgKHVubGlrZWx5KGxjb3JlX2lkID09IExDT1JF X0lEX0FOWSkpDQo+ID4gPiA+ID4gIAkJcmV0dXJuIE5VTEw7DQo+ID4gPiA+ID4NCj4gPiA+ID4g PiAtCXJ0ZV9tZW1wb29sX3RyYWNlX2RlZmF1bHRfY2FjaGUobXAsIGxjb3JlX2lkLA0KPiA+ID4g PiA+IC0JCSZtcC0+bG9jYWxfY2FjaGVbbGNvcmVfaWRdKTsNCj4gPiA+ID4gPiAtCXJldHVybiAm bXAtPmxvY2FsX2NhY2hlW2xjb3JlX2lkXTsNCj4gPiA+ID4gPiArCXN0cnVjdCBydGVfbWVtcG9v bF9jYWNoZSAqY2FjaGUgPSAoc3RydWN0IHJ0ZV9tZW1wb29sX2NhY2hlDQo+ID4gPiA+ID4gKilS VEVfUFRSX0FERChtcC0+bG9jYWxfY2FjaGUsDQo+ID4gPiA+ID4gKwkJCWxjb3JlX2lkICogKHNp emVfdCltcC0+c2l6ZW9mX2NhY2hlX3Blcl9sY29yZSk7DQo+ID4gPiA+ID4gKwlydGVfbWVtcG9v bF90cmFjZV9kZWZhdWx0X2NhY2hlKG1wLCBsY29yZV9pZCwgY2FjaGUpOw0KPiA+ID4gPiA+ICsJ X19ydGVfYXNzdW1lKGNhY2hlICE9IE5VTEwpOw0KPiA+ID4gPiA+ICsJcmV0dXJuIGNhY2hlOw0K PiA+ID4gPiA+ICB9DQo+ID4gPiA+ID4NCj4gPiA+ID4gPiAgLyoqDQo+ID4gPiA+ID4gLS0NCj4g PiA+ID4gPiAyLjQzLjANCj4gDQo+IGRpZmYgLS1naXQgYS9kb2MvZ3VpZGVzL3JlbF9ub3Rlcy9y ZWxlYXNlXzI2XzExLnJzdA0KPiBiL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjZfMTEu cnN0DQo+IGluZGV4IDY0ZjY4MDJlNTguLjQyZmM1ZDJhZDIgMTAwNjQ0DQo+IC0tLSBhL2RvYy9n dWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMjZfMTEucnN0DQo+ICsrKyBiL2RvYy9ndWlkZXMvcmVs X25vdGVzL3JlbGVhc2VfMjZfMTEucnN0DQo+IEBAIC0xMDUsNyArMTA1LDcgQEAgQVBJIENoYW5n ZXMNCj4gICAgYXMgaXQgaXMgb2Z0ZW4gdXNlZCBmb3IgdGhlIGBgY2FjaGVfc2l6ZWBgIHBhcmFt ZXRlciB3aGVuIGNyZWF0aW5nIG1lbXBvb2xzLg0KPiANCj4gICogbWVtcG9vbDogVXBkYXRlZCB0 aGUgYGBydGVfbWVtcG9vbGBgIHN0cnVjdHVyZSBhcyBmb2xsb3dzOg0KPiAtICAtIEFkZGVkIHRo ZSBgYHNpemVvZl9jYWNoZV9wZXJfbGNvcmVgYCBmaWVsZCwgZm9yIGluZGV4aW5nIGludG8gdGhl IHBlci1sY29yZQ0KPiBsb2NhbCBjYWNoZS4NCj4gKyAgLSBDaGFuZ2VkIHRoZSBgYGxvY2FsX2Nh Y2hlYGAgZmllbGQgdG8gYXJyYXkgb2YgcG9pbnRlcnMgdG8gcGVyLWxjb3JlIGxvY2FsIGNhY2hl LA0KPiBmb3IgaW1wcm92ZWQgbG9va3VwIHBlcmZvcm1hbmNlLg0KPiANCj4gICogbWVtcG9vbDog VXBkYXRlZCB0aGUgYGBydGVfbWVtcG9vbF9jYWNoZWBgIHN0cnVjdHVyZSBhcyBmb2xsb3dzOg0K PiAgICAtIFJlbW92ZWQgdGhlIGRlcHJlY2F0ZWQgYW5kIG9ic29sZXRlIGBgZmx1c2h0aHJlc2hg YCBmaWVsZC4NCj4gZGlmZiAtLWdpdCBhL2xpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmMgYi9saWIv bWVtcG9vbC9ydGVfbWVtcG9vbC5jDQo+IGluZGV4IDA2OWFhYmFhNzAuLjU1NmVjZmUxNTAgMTAw NjQ0DQo+IC0tLSBhL2xpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmMNCj4gKysrIGIvbGliL21lbXBv b2wvcnRlX21lbXBvb2wuYw0KPiBAQCAtNzU5LDcgKzc1OSw3IEBAIG1lbXBvb2xfY2FjaGVfaW5p dChzdHJ1Y3QgcnRlX21lbXBvb2xfY2FjaGUNCj4gKmNhY2hlLCB1aW50MzJfdCBzaXplKQ0KPiAg LyoNCj4gICAqIENyZWF0ZSBhbmQgaW5pdGlhbGl6ZSBhIGNhY2hlIGZvciBvYmplY3RzIHRoYXQg YXJlIHJldHJpZXZlZCBmcm9tIGFuZA0KPiAgICogcmV0dXJuZWQgdG8gYW4gdW5kZXJseWluZyBt ZW1wb29sLiBUaGlzIHN0cnVjdHVyZSBpcyBpZGVudGljYWwgdG8gdGhlDQo+IC0gKiBsb2NhbF9j YWNoZSBlbnRyeSBwb2ludGVkIHRvIGJ5IHRoZSBtZW1wb29sIHN0cnVjdHVyZS4NCj4gKyAqIGxv Y2FsX2NhY2hlW2xjb3JlX2lkXSBwb2ludGVkIHRvIGJ5IHRoZSBtZW1wb29sIHN0cnVjdHVyZS4N Cj4gICAqLw0KPiAgUlRFX0VYUE9SVF9TWU1CT0wocnRlX21lbXBvb2xfY2FjaGVfY3JlYXRlKQ0K PiAgc3RydWN0IHJ0ZV9tZW1wb29sX2NhY2hlICoNCj4gQEAgLTkzMCw2ICs5MzAsNyBAQCBydGVf bWVtcG9vbF9jcmVhdGVfZW1wdHkoY29uc3QgY2hhciAqbmFtZSwNCj4gdW5zaWduZWQgbiwgdW5z aWduZWQgZWx0X3NpemUsDQo+ICAgICAgICAgbXAtPmVsdF9zaXplID0gb2Jqc3ouZWx0X3NpemU7 DQo+ICAgICAgICAgbXAtPmhlYWRlcl9zaXplID0gb2Jqc3ouaGVhZGVyX3NpemU7DQo+ICAgICAg ICAgbXAtPnRyYWlsZXJfc2l6ZSA9IG9ianN6LnRyYWlsZXJfc2l6ZTsNCj4gKyAgICAgICAvKiBT aXplIG9mIGRlZmF1bHQgY2FjaGVzLCB6ZXJvIG1lYW5zIGRpc2FibGVkLiAqLw0KPiAgICAgICAg IG1wLT5jYWNoZV9zaXplID0gY2FjaGVfc2l6ZTsNCj4gICAgICAgICBtcC0+cHJpdmF0ZV9kYXRh X3NpemUgPSBwcml2YXRlX2RhdGFfc2l6ZTsNCj4gICAgICAgICBTVEFJTFFfSU5JVCgmbXAtPmVs dF9saXN0KTsNCj4gQEAgLTk1MywxNyArOTU0LDE2IEBAIHJ0ZV9tZW1wb29sX2NyZWF0ZV9lbXB0 eShjb25zdCBjaGFyICpuYW1lLA0KPiB1bnNpZ25lZCBuLCB1bnNpZ25lZCBlbHRfc2l6ZSwNCj4g ICAgICAgICAgICAgICAgIGdvdG8gZXhpdF91bmxvY2s7DQo+ICAgICAgICAgfQ0KPiANCj4gLSAg ICAgICAvKiBsb2NhbF9jYWNoZSBwb2ludGVyIGlzIG9ubHkgc2V0IGlmIHBlci1sY29yZSBsb2Nh bCBjYWNoZSBpcyBwcmVzZW50ICovDQo+ICsgICAgICAgLyogbG9jYWxfY2FjaGUgcG9pbnRlcnMg YXJlIG9ubHkgc2V0IGlmIHBlci1sY29yZSBsb2NhbCBjYWNoZSBpcyBwcmVzZW50ICovDQo+ICAg ICAgICAgaWYgKGNhY2hlX3NpemUgIT0gMCkgew0KPiAtICAgICAgICAgICAgICAgbXAtPmxvY2Fs X2NhY2hlID0gKHN0cnVjdCBydGVfbWVtcG9vbF9jYWNoZSAqKQ0KPiAtICAgICAgICAgICAgICAg ICAgICAgICBSVEVfUFRSX0FERChtcCwgc2l6ZW9mKHN0cnVjdCBydGVfbWVtcG9vbCkgKw0KPiBw cml2YXRlX2RhdGFfc2l6ZSk7DQo+IC0gICAgICAgICAgICAgICBtcC0+c2l6ZW9mX2NhY2hlX3Bl cl9sY29yZSA9IHNpemVvZl9jYWNoZV9wZXJfbGNvcmU7DQo+IC0NCj4gICAgICAgICAgICAgICAg IC8qIEluaXQgYWxsIGRlZmF1bHQgY2FjaGVzLiAqLw0KPiAtICAgICAgICAgICAgICAgc3RydWN0 IHJ0ZV9tZW1wb29sX2NhY2hlICpjYWNoZSA9IG1wLT5sb2NhbF9jYWNoZTsNCj4gKyAgICAgICAg ICAgICAgIHN0cnVjdCBydGVfbWVtcG9vbF9jYWNoZSAqY2FjaGUgPSAoc3RydWN0IHJ0ZV9tZW1w b29sX2NhY2hlICopDQo+ICsgICAgICAgICAgICAgICAgICAgICAgIFJURV9QVFJfQUREKG1wLCBz aXplb2Yoc3RydWN0IHJ0ZV9tZW1wb29sKSArDQo+IHByaXZhdGVfZGF0YV9zaXplKTsNCj4gICAg ICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaW50IGxjb3JlX2lkID0gMDsgbGNvcmVfaWQgPCBS VEVfTUFYX0xDT1JFOw0KPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxjb3JlX2lk KyssIGNhY2hlID0gUlRFX1BUUl9BREQoY2FjaGUsDQo+IHNpemVvZl9jYWNoZV9wZXJfbGNvcmUp KQ0KPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxjb3JlX2lkKyssIGNhY2hlID0g UlRFX1BUUl9BREQoY2FjaGUsDQo+IHNpemVvZl9jYWNoZV9wZXJfbGNvcmUpKSB7DQo+ICsgICAg ICAgICAgICAgICAgICAgICAgIG1wLT5sb2NhbF9jYWNoZVtsY29yZV9pZF0gPSBjYWNoZTsNCj4g ICAgICAgICAgICAgICAgICAgICAgICAgbWVtcG9vbF9jYWNoZV9pbml0KGNhY2hlLCBjYWNoZV9z aXplKTsNCj4gKyAgICAgICAgICAgICAgIH0NCj4gICAgICAgICB9DQo+IA0KPiAgICAgICAgIHRl LT5kYXRhID0gbXA7DQo+IEBAIC0xMDI2LDE3ICsxMDI2LDE2IEBAIFJURV9FWFBPUlRfU1lNQk9M KHJ0ZV9tZW1wb29sX2F2YWlsX2NvdW50KQ0KPiAgdW5zaWduZWQgaW50DQo+ICBydGVfbWVtcG9v bF9hdmFpbF9jb3VudChjb25zdCBzdHJ1Y3QgcnRlX21lbXBvb2wgKm1wKQ0KPiAgew0KPiAtICAg ICAgIHVuc2lnbmVkIGludCBjb3VudDsNCj4gKyAgICAgICB1bnNpZ25lZCBjb3VudDsNCj4gKyAg ICAgICB1bnNpZ25lZCBsY29yZV9pZDsNCj4gDQo+ICAgICAgICAgY291bnQgPSBydGVfbWVtcG9v bF9vcHNfZ2V0X2NvdW50KG1wKTsNCj4gDQo+IC0gICAgICAgaWYgKG1wLT5sb2NhbF9jYWNoZSA9 PSBOVUxMKQ0KPiArICAgICAgIGlmIChtcC0+Y2FjaGVfc2l6ZSA9PSAwKQ0KPiAgICAgICAgICAg ICAgICAgcmV0dXJuIGNvdW50Ow0KPiANCj4gLSAgICAgICBjb25zdCBzdHJ1Y3QgcnRlX21lbXBv b2xfY2FjaGUgKmNhY2hlID0gbXAtPmxvY2FsX2NhY2hlOw0KPiAtICAgICAgIGZvciAodW5zaWdu ZWQgaW50IGxjb3JlX2lkID0gMDsgbGNvcmVfaWQgPCBSVEVfTUFYX0xDT1JFOw0KPiAtICAgICAg ICAgICAgICAgICAgICAgICBsY29yZV9pZCsrLCBjYWNoZSA9IFJURV9QVFJfQUREKGNhY2hlLCBt cC0NCj4gPnNpemVvZl9jYWNoZV9wZXJfbGNvcmUpKQ0KPiAtICAgICAgICAgICAgICAgY291bnQg Kz0gY2FjaGUtPmxlbjsNCj4gKyAgICAgICBmb3IgKGxjb3JlX2lkID0gMDsgbGNvcmVfaWQgPCBS VEVfTUFYX0xDT1JFOyBsY29yZV9pZCsrKQ0KPiArICAgICAgICAgICAgICAgY291bnQgKz0gbXAt PmxvY2FsX2NhY2hlW2xjb3JlX2lkXS0+bGVuOw0KPiANCj4gICAgICAgICAvKg0KPiAgICAgICAg ICAqIGR1ZSB0byByYWNlIGNvbmRpdGlvbiAoYWNjZXNzIHRvIGxlbiBpcyBub3QgbG9ja2VkKSwg dGhlDQo+IEBAIC0xMDY0LDExICsxMDYzLDExIEBAIHJ0ZV9tZW1wb29sX3N0YXRzX3Jlc2V0KHN0 cnVjdCBydGVfbWVtcG9vbA0KPiAqbXApDQo+IA0KPiAgI2lmZGVmIFJURV9MSUJSVEVfTUVNUE9P TF9TVEFUUw0KPiAgICAgICAgIG1lbXNldCgmbXAtPnN0YXRzLCAwLCBzaXplb2YobXAtPnN0YXRz KSk7DQo+IC0gICAgICAgaWYgKG1wLT5sb2NhbF9jYWNoZSAhPSBOVUxMKSB7DQo+IC0gICAgICAg ICAgICAgICBzdHJ1Y3QgcnRlX21lbXBvb2xfY2FjaGUgKmNhY2hlID0gbXAtPmxvY2FsX2NhY2hl Ow0KPiAtICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpbnQgbGNvcmVfaWQgPSAwOyBsY29y ZV9pZCA8IFJURV9NQVhfTENPUkU7DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGNvcmVfaWQrKywgY2FjaGUgPSBSVEVfUFRSX0FERChjYWNoZSwgbXAtDQo+ID5zaXplb2ZfY2Fj aGVfcGVyX2xjb3JlKSkNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgbWVtc2V0KCZjYWNoZS0+ c3RhdHMsIDAsIHNpemVvZihjYWNoZS0+c3RhdHMpKTsNCj4gKy0gICAgICBpZiAobXAtPmNhY2hl X3NpemUgIT0gMCkgew0KPiArLSAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpbnQgbGNvcmVf aWQgPSAwOyBsY29yZV9pZCA8IFJURV9NQVhfTENPUkU7IGxjb3JlX2lkKyspIHsNCj4gKy0gICAg ICAgICAgICAgICAgICAgICAgbWVtc2V0KCZtcC0+bG9jYWxfY2FjaGVbbGNvcmVfaWRdLT5zdGF0 cywgMCwNCj4gKy0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZiht cC0+bG9jYWxfY2FjaGVbbGNvcmVfaWRdLT5zdGF0cykpOw0KPiArLSAgICAgICAgICAgICAgfQ0K PiAgICAgICAgIH0NCj4gDQo+ICAgICAgICAgUlRFX01FTVBPT0xfTE9HKERFQlVHLCAiPCVzPkAl cDogc3RhdGlzdGljcyByZXNldCIsIG1wLT5uYW1lLCBtcCk7DQo+IEBAIC0xMDgyLDE4ICsxMDgx LDE4IEBAIHJ0ZV9tZW1wb29sX3N0YXRzX3Jlc2V0KHN0cnVjdCBydGVfbWVtcG9vbA0KPiAqbXAp DQo+ICBzdGF0aWMgdW5zaWduZWQNCj4gIHJ0ZV9tZW1wb29sX2R1bXBfY2FjaGUoRklMRSAqZiwg Y29uc3Qgc3RydWN0IHJ0ZV9tZW1wb29sICptcCkNCj4gIHsNCj4gLSAgICAgICB1bnNpZ25lZCBp bnQgY291bnQgPSAwOw0KPiArICAgICAgIHVuc2lnbmVkIGxjb3JlX2lkOw0KPiArICAgICAgIHVu c2lnbmVkIGNvdW50ID0gMDsNCj4gKyAgICAgICB1bnNpZ25lZCBjYWNoZV9jb3VudDsNCj4gDQo+ ICAgICAgICAgZnByaW50ZihmLCAiICBpbnRlcm5hbCBjYWNoZSBpbmZvcyAoaGlkZSB6ZXJvIHZh bHVlIGl0ZW1zKTpcbiIpOw0KPiAgICAgICAgIGZwcmludGYoZiwgIiAgICBjYWNoZV9zaXplPSUi UFJJdTMyIlxuIiwgbXAtPmNhY2hlX3NpemUpOw0KPiANCj4gLSAgICAgICBpZiAobXAtPmxvY2Fs X2NhY2hlID09IE5VTEwpDQo+ICsgICAgICAgaWYgKG1wLT5jYWNoZV9zaXplID09IDApDQo+ICAg ICAgICAgICAgICAgICByZXR1cm4gY291bnQ7DQo+IA0KPiAtICAgICAgIGNvbnN0IHN0cnVjdCBy dGVfbWVtcG9vbF9jYWNoZSAqY2FjaGUgPSBtcC0+bG9jYWxfY2FjaGU7DQo+IC0gICAgICAgZm9y ICh1bnNpZ25lZCBpbnQgbGNvcmVfaWQgPSAwOyBsY29yZV9pZCA8IFJURV9NQVhfTENPUkU7DQo+ IC0gICAgICAgICAgICAgICAgICAgICAgIGxjb3JlX2lkKyssIGNhY2hlID0gUlRFX1BUUl9BREQo Y2FjaGUsIG1wLQ0KPiA+c2l6ZW9mX2NhY2hlX3Blcl9sY29yZSkpIHsNCj4gLSAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCBjYWNoZV9jb3VudCA9IGNhY2hlLT5sZW47DQo+ICsgICAgICAgZm9y IChsY29yZV9pZCA9IDA7IGxjb3JlX2lkIDwgUlRFX01BWF9MQ09SRTsgbGNvcmVfaWQrKykgew0K PiArICAgICAgICAgICAgICAgY2FjaGVfY291bnQgPSBtcC0+bG9jYWxfY2FjaGVbbGNvcmVfaWRd LT5sZW47DQo+ICAgICAgICAgICAgICAgICBpZiAoY2FjaGVfY291bnQgPT0gMCkNCj4gICAgICAg ICAgICAgICAgICAgICAgICAgY29udGludWU7DQo+ICAgICAgICAgICAgICAgICBmcHJpbnRmKGYs ICIgICAgY2FjaGVfY291bnRbJXVdPSUiUFJJdTMyIlxuIiwNCj4gQEAgLTEyMzQsMTIgKzEyMzMs MTQgQEAgbWVtcG9vbF9hdWRpdF9jb29raWVzKHN0cnVjdCBydGVfbWVtcG9vbCAqbXApDQo+ICBz dGF0aWMgdm9pZA0KPiAgbWVtcG9vbF9hdWRpdF9jYWNoZShjb25zdCBzdHJ1Y3QgcnRlX21lbXBv b2wgKm1wKQ0KPiAgew0KPiAtICAgICAgIGlmIChtcC0+bG9jYWxfY2FjaGUgPT0gTlVMTCkNCj4g KyAgICAgICB1bnNpZ25lZCBsY29yZV9pZDsNCj4gKw0KPiArICAgICAgIGlmIChtcC0+Y2FjaGVf c2l6ZSA9PSAwKQ0KPiAgICAgICAgICAgICAgICAgcmV0dXJuOw0KPiANCj4gLSAgICAgICBjb25z dCBzdHJ1Y3QgcnRlX21lbXBvb2xfY2FjaGUgKmNhY2hlID0gbXAtPmxvY2FsX2NhY2hlOw0KPiAt ICAgICAgIGZvciAodW5zaWduZWQgaW50IGxjb3JlX2lkID0gMDsgbGNvcmVfaWQgPCBSVEVfTUFY X0xDT1JFOw0KPiAtICAgICAgICAgICAgICAgICAgICAgICBsY29yZV9pZCsrLCBjYWNoZSA9IFJU RV9QVFJfQUREKGNhY2hlLCBtcC0NCj4gPnNpemVvZl9jYWNoZV9wZXJfbGNvcmUpKSB7DQo+ICsg ICAgICAgZm9yIChsY29yZV9pZCA9IDA7IGxjb3JlX2lkIDwgUlRFX01BWF9MQ09SRTsgbGNvcmVf aWQrKykgew0KPiArICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHJ0ZV9tZW1wb29sX2NhY2hl ICpjYWNoZTsNCj4gKyAgICAgICAgICAgICAgIGNhY2hlID0gbXAtPmxvY2FsX2NhY2hlW2xjb3Jl X2lkXTsNCj4gICAgICAgICAgICAgICAgIGlmIChjYWNoZS0+c2l6ZSA+IG1wLT5zaXplKSB7DQo+ ICAgICAgICAgICAgICAgICAgICAgICAgIFJURV9NRU1QT09MX0xPRyhDUklULCAiYmFkbmVzcyBv biBjYWNoZVsldV0gc2l6ZSIsIGxjb3JlX2lkKTsNCj4gICAgICAgICAgICAgICAgICAgICAgICAg cnRlX3BhbmljKCJNRU1QT09MOiBpbnZhbGlkIGNhY2hlWyV1XSBzaXplXG4iLCBsY29yZV9pZCk7 DQo+IEBAIC0xMzMzLDE1ICsxMzM0LDEzIEBAIHJ0ZV9tZW1wb29sX2R1bXAoRklMRSAqZiwgc3Ry dWN0IHJ0ZV9tZW1wb29sDQo+ICptcCkNCj4gICAgICAgICAgICAgICAgIHN1bS5nZXRfc3VjY2Vz c19ibGtzICs9IG1wLT5zdGF0c1tsY29yZV9pZF0uZ2V0X3N1Y2Nlc3NfYmxrczsNCj4gICAgICAg ICAgICAgICAgIHN1bS5nZXRfZmFpbF9ibGtzICs9IG1wLT5zdGF0c1tsY29yZV9pZF0uZ2V0X2Zh aWxfYmxrczsNCj4gICAgICAgICB9DQo+IC0gICAgICAgaWYgKG1wLT5sb2NhbF9jYWNoZSAhPSBO VUxMKSB7DQo+ICsgICAgICAgaWYgKG1wLT5jYWNoZV9zaXplICE9IDApIHsNCj4gICAgICAgICAg ICAgICAgIC8qIEFkZCB0aGUgc3RhdGlzdGljcyBzdG9yZWQgaW4gdGhlIG1lbXBvb2wgY2FjaGVz LiAqLw0KPiAtICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHJ0ZV9tZW1wb29sX2NhY2hlICpj YWNoZSA9IG1wLT5sb2NhbF9jYWNoZTsNCj4gLSAgICAgICAgICAgICAgIGZvciAobGNvcmVfaWQg PSAwOyBsY29yZV9pZCA8IFJURV9NQVhfTENPUkU7DQo+IC0gICAgICAgICAgICAgICAgICAgICAg IGxjb3JlX2lkKyssIGNhY2hlID0gUlRFX1BUUl9BREQoY2FjaGUsIG1wLQ0KPiA+c2l6ZW9mX2Nh Y2hlX3Blcl9sY29yZSkpIHsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgc3VtLnB1dF9idWxr ICs9IGNhY2hlLT5zdGF0cy5wdXRfYnVsazsNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgc3Vt LnB1dF9vYmpzICs9IGNhY2hlLT5zdGF0cy5wdXRfb2JqczsNCj4gLSAgICAgICAgICAgICAgICAg ICAgICAgc3VtLmdldF9zdWNjZXNzX2J1bGsgKz0gY2FjaGUtPnN0YXRzLmdldF9zdWNjZXNzX2J1 bGs7DQo+IC0gICAgICAgICAgICAgICAgICAgICAgIHN1bS5nZXRfc3VjY2Vzc19vYmpzICs9IGNh Y2hlLT5zdGF0cy5nZXRfc3VjY2Vzc19vYmpzOw0KPiArICAgICAgICAgICAgICAgZm9yIChsY29y ZV9pZCA9IDA7IGxjb3JlX2lkIDwgUlRFX01BWF9MQ09SRTsgbGNvcmVfaWQrKykgew0KPiArICAg ICAgICAgICAgICAgICAgICAgICBzdW0ucHV0X2J1bGsgKz0gbXAtPmxvY2FsX2NhY2hlW2xjb3Jl X2lkXS0+c3RhdHMucHV0X2J1bGs7DQo+ICsgICAgICAgICAgICAgICAgICAgICAgIHN1bS5wdXRf b2JqcyArPSBtcC0+bG9jYWxfY2FjaGVbbGNvcmVfaWRdLT5zdGF0cy5wdXRfb2JqczsNCj4gKyAg ICAgICAgICAgICAgICAgICAgICAgc3VtLmdldF9zdWNjZXNzX2J1bGsgKz0gbXAtPmxvY2FsX2Nh Y2hlW2xjb3JlX2lkXS0NCj4gPnN0YXRzLmdldF9zdWNjZXNzX2J1bGs7DQo+ICsgICAgICAgICAg ICAgICAgICAgICAgIHN1bS5nZXRfc3VjY2Vzc19vYmpzICs9IG1wLT5sb2NhbF9jYWNoZVtsY29y ZV9pZF0tDQo+ID5zdGF0cy5nZXRfc3VjY2Vzc19vYmpzOw0KPiAgICAgICAgICAgICAgICAgfQ0K PiAgICAgICAgIH0NCj4gICAgICAgICBmcHJpbnRmKGYsICIgIHN0YXRzOlxuIik7DQo+IEBAIC0x NjM4LDExICsxNjM3LDEwIEBAIG1lbXBvb2xfaW5mb19jYihzdHJ1Y3QgcnRlX21lbXBvb2wgKm1w LCB2b2lkDQo+ICphcmcpDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtcC0+ cG9wdWxhdGVkX3NpemUpOw0KPiANCj4gICAgICAgICBjYWNoZV9jb3VudCA9IDA7DQo+IC0gICAg ICAgaWYgKG1wLT5sb2NhbF9jYWNoZSAhPSBOVUxMKSB7DQo+IC0gICAgICAgICAgICAgICBjb25z dCBzdHJ1Y3QgcnRlX21lbXBvb2xfY2FjaGUgKmNhY2hlID0gbXAtPmxvY2FsX2NhY2hlOw0KPiAt ICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpbnQgbGNvcmVfaWQgPSAwOyBsY29yZV9pZCA8 IFJURV9NQVhfTENPUkU7DQo+IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGNvcmVf aWQrKywgY2FjaGUgPSBSVEVfUFRSX0FERChjYWNoZSwgbXAtDQo+ID5zaXplb2ZfY2FjaGVfcGVy X2xjb3JlKSkNCj4gLSAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVfY291bnQgKz0gY2FjaGUt PmxlbjsNCj4gKyAgICAgICBpZiAobXAtPmNhY2hlX3NpemUgPiAwKSB7DQo+ICsgICAgICAgICAg ICAgICBpbnQgbGNvcmVfaWQ7DQo+ICsgICAgICAgICAgICAgICBmb3IgKGxjb3JlX2lkID0gMDsg bGNvcmVfaWQgPCBSVEVfTUFYX0xDT1JFOyBsY29yZV9pZCsrKQ0KPiArICAgICAgICAgICAgICAg ICAgICAgICBjYWNoZV9jb3VudCArPSBtcC0+bG9jYWxfY2FjaGVbbGNvcmVfaWRdLT5sZW47DQo+ ICAgICAgICAgfQ0KPiAgICAgICAgIHJ0ZV90ZWxfZGF0YV9hZGRfZGljdF91aW50KGluZm8tPmQs ICJ0b3RhbF9jYWNoZV9jb3VudCIsIGNhY2hlX2NvdW50KTsNCj4gICAgICAgICBjb21tb25fY291 bnQgPSBydGVfbWVtcG9vbF9vcHNfZ2V0X2NvdW50KG1wKTsNCj4gZGlmZiAtLWdpdCBhL2xpYi9t ZW1wb29sL3J0ZV9tZW1wb29sLmggYi9saWIvbWVtcG9vbC9ydGVfbWVtcG9vbC5oDQo+IGluZGV4 IDVmYzdjZGI3OWMuLmNjMjU1MDYzZjUgMTAwNjQ0DQo+IC0tLSBhL2xpYi9tZW1wb29sL3J0ZV9t ZW1wb29sLmgNCj4gKysrIGIvbGliL21lbXBvb2wvcnRlX21lbXBvb2wuaA0KPiBAQCAtMjYzLDE0 ICsyNjMsMTggQEAgc3RydWN0IF9fcnRlX2NhY2hlX2FsaWduZWQgcnRlX21lbXBvb2wgew0KPiAg ICAgICAgICAqLw0KPiAgICAgICAgIGludDMyX3Qgb3BzX2luZGV4Ow0KPiANCj4gLSAgICAgICBz dHJ1Y3QgcnRlX21lbXBvb2xfY2FjaGUgKmxvY2FsX2NhY2hlOyAvKio8IFBlci1sY29yZSBsb2Nh bCBjYWNoZSAqLw0KPiAtICAgICAgIHVpbnQzMl90IHNpemVvZl9jYWNoZV9wZXJfbGNvcmU7IC8q KjwgTXVsdGlwbGllciBmb3IgaW5kZXhpbmcgaW50byB0aGUgbG9jYWwNCj4gY2FjaGUuICovDQo+ IC0NCj4gICAgICAgICB1aW50MzJfdCBwb3B1bGF0ZWRfc2l6ZTsgICAgICAgICAvKio8IE51bWJl ciBvZiBwb3B1bGF0ZWQgb2JqZWN0cy4gKi8NCj4gICAgICAgICBzdHJ1Y3QgcnRlX21lbXBvb2xf b2JqaGRyX2xpc3QgZWx0X2xpc3Q7IC8qKjwgTGlzdCBvZiBvYmplY3RzIGluIHBvb2wgKi8NCj4g ICAgICAgICB1aW50MzJfdCBuYl9tZW1fY2h1bmtzOyAgICAgICAgICAvKio8IE51bWJlciBvZiBt ZW1vcnkgY2h1bmtzICovDQo+ICAgICAgICAgc3RydWN0IHJ0ZV9tZW1wb29sX21lbWhkcl9saXN0 IG1lbV9saXN0OyAvKio8IExpc3Qgb2YgbWVtb3J5IGNodW5rcyAqLw0KPiANCj4gKyAgICAgICAv KioNCj4gKyAgICAgICAgKiBQb2ludGVycyB0byBwZXItbGNvcmUgbG9jYWwgY2FjaGUuDQo+ICsg ICAgICAgICogTm90ZTogQ2FjaGUgbGluZSBhbGlnbmVkIGZvciBoaWdoZXIgY2FjaGUgaGl0IHJh dGUgd2hlbiBvbmx5IHVzaW5nIHRoZSBmaXJzdA0KPiBmZXcgbGNvcmVzLg0KPiArICAgICAgICAq Lw0KPiArICAgICAgIGFsaWduYXMoUlRFX0NBQ0hFX0xJTkVfU0laRSkNCj4gKyAgICAgICBzdHJ1 Y3QgcnRlX21lbXBvb2xfY2FjaGUgKmxvY2FsX2NhY2hlW1JURV9NQVhfTENPUkVdOw0KPiArDQo+ ICAjaWZkZWYgUlRFX0xJQlJURV9NRU1QT09MX1NUQVRTDQo+ICAgICAgICAgLyoqIFBlci1sY29y ZSBzdGF0aXN0aWNzLg0KPiAgICAgICAgICAqDQo+IEBAIC0xMzcwLDE3ICsxMzc0LDEyIEBAIHJ0 ZV9tZW1wb29sX2NhY2hlX2NyZWF0ZSh1aW50MzJfdCBzaXplLCBpbnQNCj4gc29ja2V0X2lkKQ0K PiAgc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgc3RydWN0IHJ0ZV9tZW1wb29sX2NhY2hlICoN Cj4gIHJ0ZV9tZW1wb29sX2RlZmF1bHRfY2FjaGUoc3RydWN0IHJ0ZV9tZW1wb29sICptcCwgdW5z aWduZWQgbGNvcmVfaWQpDQo+ICB7DQo+IC0gICAgICAgaWYgKHVubGlrZWx5KG1wLT5sb2NhbF9j YWNoZSA9PSBOVUxMKSkNCj4gLSAgICAgICAgICAgICAgIHJldHVybiBOVUxMOw0KPiAtDQo+ICAg ICAgICAgaWYgKHVubGlrZWx5KGxjb3JlX2lkID09IExDT1JFX0lEX0FOWSkpDQo+ICAgICAgICAg ICAgICAgICByZXR1cm4gTlVMTDsNCj4gDQo+IC0gICAgICAgc3RydWN0IHJ0ZV9tZW1wb29sX2Nh Y2hlICpjYWNoZSA9IChzdHJ1Y3QgcnRlX21lbXBvb2xfY2FjaGUNCj4gKilSVEVfUFRSX0FERCht cC0+bG9jYWxfY2FjaGUsDQo+IC0gICAgICAgICAgICAgICAgICAgICAgIGxjb3JlX2lkICogKHNp emVfdCltcC0+c2l6ZW9mX2NhY2hlX3Blcl9sY29yZSk7DQo+IC0gICAgICAgcnRlX21lbXBvb2xf dHJhY2VfZGVmYXVsdF9jYWNoZShtcCwgbGNvcmVfaWQsIGNhY2hlKTsNCj4gLSAgICAgICBfX3J0 ZV9hc3N1bWUoY2FjaGUgIT0gTlVMTCk7DQo+IC0gICAgICAgcmV0dXJuIGNhY2hlOw0KPiArICAg ICAgIHJ0ZV9tZW1wb29sX3RyYWNlX2RlZmF1bHRfY2FjaGUobXAsIGxjb3JlX2lkLA0KPiArICAg ICAgICAgICAgICAgbXAtPmxvY2FsX2NhY2hlW2xjb3JlX2lkXSk7DQo+ICsgICAgICAgcmV0dXJu IG1wLT5sb2NhbF9jYWNoZVtsY29yZV9pZF07DQo+ICB9DQo+IA0KPiAgLyoqDQo+IEBAIC0xNDQ5 LDggKzE0NDgsOCBAQCBydGVfbWVtcG9vbF9kb19nZW5lcmljX3B1dChzdHJ1Y3QgcnRlX21lbXBv b2wNCj4gKm1wLCB2b2lkICogY29uc3QgKm9ial90YWJsZSwNCj4gICAgICAgICAgICAgICAgICAq IGFyZSBtb3JlIGhvdCwgZnJvbSB0aGUgdXBwZXIgaGFsZiBvZiB0aGUgY2FjaGUuDQo+ICAgICAg ICAgICAgICAgICAgKi8NCj4gICAgICAgICAgICAgICAgIF9fcnRlX2Fzc3VtZShjYWNoZS0+bGVu ID4gY2FjaGUtPnNpemUgLyAyKTsNCj4gLSAgICAgICAgICAgICAgIHJ0ZV9tZW1wb29sX29wc19l bnF1ZXVlX2J1bGsobXAsICZjYWNoZS0+b2Jqc1swXSwgY2FjaGUtPnNpemUgLw0KPiAyKTsNCj4g LSAgICAgICAgICAgICAgIHJ0ZV9tZW1jcHkoJmNhY2hlLT5vYmpzWzBdLCAmY2FjaGUtPm9ianNb Y2FjaGUtPnNpemUgLyAyXSwNCj4gKyAgICAgICAgICAgICAgIHJ0ZV9tZW1wb29sX29wc19lbnF1 ZXVlX2J1bGsobXAsIGNhY2hlLT5vYmpzLCBjYWNoZS0+c2l6ZSAvIDIpOw0KPiArICAgICAgICAg ICAgICAgcnRlX21lbWNweShjYWNoZS0+b2JqcywgJmNhY2hlLT5vYmpzW2NhY2hlLT5zaXplIC8g Ml0sDQo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZW9mKHZvaWQgKikgKiAo Y2FjaGUtPmxlbiAtIGNhY2hlLT5zaXplIC8gMikpOw0KPiAgICAgICAgICAgICAgICAgY2FjaGVf b2JqcyA9ICZjYWNoZS0+b2Jqc1tjYWNoZS0+bGVuIC0gY2FjaGUtPnNpemUgLyAyXTsNCj4gICAg ICAgICAgICAgICAgIGNhY2hlLT5sZW4gPSBjYWNoZS0+bGVuIC0gY2FjaGUtPnNpemUgLyAyICsg bjsNCg==