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 5BF95C982D9 for ; Fri, 18 Sep 2026 10:56:43 +0000 (UTC) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 28A364027C; Fri, 18 Sep 2026 12:56:42 +0200 (CEST) Received: from dkmailrelay1.smartsharesystems.com (smartserver.smartsharesystems.com [77.243.40.215]) by mails.dpdk.org (Postfix) with ESMTP id 8C48740276 for ; Fri, 18 Sep 2026 12:56:40 +0200 (CEST) Received: from smartserver.smartsharesystems.com (smartserver.smartsharesys.local [192.168.4.10]) by dkmailrelay1.smartsharesystems.com (Postfix) with ESMTP id 557BF205CD; Fri, 18 Sep 2026 12:56:40 +0200 (CEST) Content-class: urn:content-classes:message MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Subject: RE: [PATCH 5/6] mempool: optimize access to private data X-MimeOLE: Produced By Microsoft Exchange V6.5 Date: Fri, 18 Sep 2026 12:56:38 +0200 Message-ID: <98CBD80474FA8B44BF855DF32C47DC35F65A54@smartserver.smartshare.dk> In-Reply-To: <6afd4a47ffa64f17802338ad1411ac46@huawei.com> X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: [PATCH 5/6] mempool: optimize access to private data Thread-Index: AQHdQRBP8mYuKng4tkWKrJfMjpkMZrbUIvVwgAAGl6A= References: <20260910103613.808038-1-mb@smartsharesystems.com> <20260910103613.808038-6-mb@smartsharesystems.com> <6afd4a47ffa64f17802338ad1411ac46@huawei.com> From: =?utf-8?B?TW9ydGVuIEJyw7hydXA=?= To: "Konstantin Ananyev" , , "Andrew Rybchenko" , "Bruce Richardson" , "Stephen Hemminger" 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 PiBGcm9tOiBLb25zdGFudGluIEFuYW55ZXYgW21haWx0bzprb25zdGFudGluLmFuYW55ZXZAaHVh d2VpLmNvbV0NCj4gU2VudDogRnJpZGF5LCAxOCBTZXB0ZW1iZXIgMjAyNiAxMi4wMg0KPiANCj4g DQo+ID4gU3dhcHBlZCB0aGUgbG9jYXRpb24gb2YgdGhlIHByaXZhdGUgZGF0YSBhbmQgdGhlIGxv Y2FsIGNhY2hlLA0KPiA+IHNvIHRoZSBwcml2YXRlIGRhdGEgaXMgbG9jYXRlZCBpbW1lZGlhdGVs eSBhZnRlciB0aGUgbWVtcG9vbCBoZWFkZXIsDQo+ID4gYW5kIHRoZSBsb2NhbCBjYWNoZSBhZnRl ciB0aGF0Lg0KPiA+IFRoaXMgd2F5LCBnZXR0aW5nIHRoZSBhZGRyZXNzIG9mIHRoZSBwcml2YXRl IGRhdGEgaXMgYXMgc2ltcGxlIGFzDQo+ID4gYWRkaW5nIGEgY29uc3RhbnQgdG8gdGhlIGFkZHJl c3Mgb2YgdGhlIG1lbXBvb2wuDQo+ID4NCj4gPiBUaGUgbG9jYWwgY2FjaGUgaXMgYWNjZXNzZWQg YnkgZGVyZWZlcmVuY2luZyBhIHBvaW50ZXIgdG8gaXQgYW55d2F5LA0KPiBzbw0KPiA+IHRoZSBw ZXJmb3JtYW5jZSBvZiBhY2Nlc3NpbmcgaXQgaXMgbm90IGFmZmVjdGVkIGJ5IG1vdmluZyBpdHMN Cj4gbG9jYXRpb24uDQo+IA0KPiBJbiB0aGVvcnksIGlmIHdlIGtlZXAgY3VycmVudCBsYXlvdXQs IHdlIGNhbiBhY2Nlc3MgbG9jYWwgY2FjaGUgYnkganVzdA0KPiBwb2ludGVyDQo+IGFyaXRobWV0 aWMsICB3aXRob3V0IGFjdHVhbCBwb2ludGVyIGRlLXJlZmVyZW5jaW5nLg0KDQpZZXMsIEkgZXhw bG9yZWQgdGhhdCBvcHRpb24gaW4gYSBwcmV2aW91cyBwYXRjaCBbMV0sIGJ1dCBzZWxmLXJlamVj dGVkIGl0Lg0KVGhlIGRvd25zaWRlIHRvIHRoYXQgb3B0aW9uIGlzIHRoYXQgbWVtb3J5IGZvciBs b2NhbCBjYWNoZSAoUlRFX01BWF9MQ09SRSAqIDUxMiBwb2ludGVycykgaXMgYWx3YXlzIGFsbG9j YXRlZCwgYWxzbyBmb3IgbWVtcG9vbHMgd2l0aG91dCBjYWNoZS4NCg0KSSBwcmVmZXIgdGhpcyBz ZXJpZXMgd2l0aCB2YXJpYWJsZSBzaXplIGNhY2hlOyB0aGUgY2FjaGUgaXMgbm8gbG9uZ2VyIGxp bWl0ZWQgdG8gNTEyIG9iamVjdHMsIGJ1dCBjYW4gYmUgYW55IHNpemUuDQpBbmQgc2luY2Ugd2Ug aGF2ZSB0byBmZXRjaCB0aGUgc2l6ZSBtdWx0aXBsaWVyIGFueXdheSwgZmV0Y2hpbmcgdGhlIHBv aW50ZXIgZG9lcyBub3QgcmVxdWlyZSBhZGRpdGlvbmFsIG1lbW9yeSBsb2FkIG9wZXJhdGlvbnMg KHRoZXkgYXJlIGluIHRoZSBzYW1lIGNhY2hlIGxpbmUpLg0KDQpBbHNvLCBtYnVmIG1lbXBvb2xz IHVzZSB0aGUgbWVtcG9vbCBwcml2YXRlIGRhdGEgZm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBt YnVmIGJ1ZmZlciBzaXplIChmZXRjaGVkIHdoZW4gcmVzZXR0aW5nIG1idWZzKSwgYW5kIGZvciBt YnVmcyB3aXRoIGV4dGVybmFsIGJ1ZmZlci4gU28gZGlyZWN0IGFjY2VzcyB0byB0aGUgbWVtcG9v bCBwcml2YXRlIGRhdGEgaXMgYmVuZWZpY2lhbCBmb3IgdGhlIG1idWYgbGlicmFyeS4NCihBbHRo b3VnaCB0aGUgYWN0dWFsIHBlcmZvcm1hbmNlIGRpZmZlcmVuY2UgaXMgcHJvYmFibHkgaW5zaWdu aWZpY2FudCBiZXR3ZWVuIHRoZSB0d28gd2F5cyBvZiBnZXR0aW5nIHRoZSBhZGRyZXNzIG9mIHRo ZSBtZW1wb29sIHByaXZhdGUgZGF0YS4pDQoNClsxXTogaHR0cHM6Ly9wYXRjaHdvcmsuZHBkay5v cmcvcHJvamVjdC9kcGRrL3BhdGNoLzIwMjYwODEyMDkwNzIzLjE3NzE2MjgtMS1tYkBzbWFydHNo YXJlc3lzdGVtcy5jb20vDQoNCj4gSSBhbSBub3Qgb3Bwb3NlIHRvIHRoYXQgY2hhbmdlIC0gaXQg ZG9lcyBtYWtlIHNlbnNlIHRvIG1lLA0KPiBhbmQgSSBkb24ndCBrbm93IHdvdWxkIGl0IG1ha2Ug YW55IHJlYWwgZGlmZmVyZW5jZSBpbiB0ZXJtcyBvZg0KPiBwZXJmb3JtYW5jZQ0KPiAobXkgZ3Vl c3MgLSBpdCB3b3VsZG4ndCkuDQo+IEp1c3QgYW5vdGhlciBvcHRpb24gdG8gY29uc2lkZXIuDQoN CkluIHRoZW9yeSBwb2ludGVyIGFyaXRobWV0aWMgc2hvdWxkIGJlIGZhc3RlciAoYXNzdW1pbmcg Zml4ZWQtc2l6ZSBjYWNoZSkuIEJ1dCB3aGVuIEkgZXhwZXJpbWVudGVkIHdpdGggYWNjZXNzaW5n IHRoZSBsb2NhbCBjYWNoZSBieSBwb2ludGVyIGFyaXRobWV0aWMgaW5zdGVhZCBvZiBwb2ludGVy IGRlcmVmZXJlbmNpbmcsIEkgZGlkbid0IG9ic2VydmUgYW55IHBlcmZvcm1hbmNlIGRpZmZlcmVu Y2UuDQpJIGd1ZXNzIHRoZSBwb2ludGVyIGlzIHN1ZmZpY2llbnRseSBob3QgaW4gdGhlIGNhY2hl LCBzbyB0aGUgY29zdCBvZiBkZXJlZmVyZW5jaW5nIGl0ICgiY2FjaGUgPSBtcC0+bG9jYWxfY2Fj aGVfcHRyIikgaXMgc2ltaWxhciB0byB0aGUgY29zdCBvZiBhZGRpbmcgdGhlIGNvbnN0YW50IG9m ZnNldCB0byB0aGUgbWVtcG9vbCBjYWNoZSAoImNhY2hlID0gJm1wLT5sb2NhbF9jYWNoZV9hcnJh eSIpLg0KU28gdGhlIHBlcmZvcm1hbmNlIGJlbmVmaXQgdHVybmVkIG91dCB0byBiZSBpbnNpZ25p ZmljYW50LCBhbmQgSSBkaWRuJ3QgZmVlbCBiYWQgYWJvdXQgYWJhbmRvbmluZyBteSAiQWNjZXNz IGxvY2FsIGNhY2hlIHdpdGhvdXQgZmlyc3QgYWNjZXNzaW5nIHRoZSBtZW1wb29sIGhlYWRlciBz dHJ1Y3QiIG9wdGltaXphdGlvbi4NCg0KPiANCj4gPg0KPiA+IE5vdGU6DQo+ID4gVGhlIG1lbXBv b2wgcHJpdmF0ZSBkYXRhIEFQSSBkZXNjcmliZXMgdGhlIHByaXZhdGUgZGF0YSBhcyBmb2xsb3dp bmcNCj4gdGhlDQo+ID4gbWVtcG9vbCBoZWFkZXI7IGJ1dCBpdCBoYXMgYmVlbiBpbXBsZW1lbnRl ZCBkaWZmZXJlbnRseSBmb3IgYSBsb25nDQo+IHRpbWUNCj4gPiB3aXRob3V0IGNhdXNpbmcgcHJv YmxlbXMsIHNvIHRoaXMgaXMgY29uc2lkZXJlZCBhbiBvcHRpbWl6YXRpb24sDQo+ID4gbm90IGEg YnVnZml4Lg0KPiA+DQo+ID4gU2lnbmVkLW9mZi1ieTogTW9ydGVuIEJyw7hydXAgPG1iQHNtYXJ0 c2hhcmVzeXN0ZW1zLmNvbT4NCj4gPiAtLS0NCj4gPiBTdXBlcnNlZGVzOiBwYXRjaC0xNjkyMzUN Cj4gPiAoIlt2Ml0gbWVtcG9vbDogbm8gY2FjaGUgc2l6ZSBsaW1pdCIpDQo+ID4gLS0tDQo+ID4g IGFwcC90ZXN0L3Rlc3RfbWVtcG9vbC5jICAgfCAgMyArLS0NCj4gPiAgbGliL21lbXBvb2wvcnRl X21lbXBvb2wuYyB8IDE3ICsrKysrKysrKysrKystLS0tDQo+ID4gIGxpYi9tZW1wb29sL3J0ZV9t ZW1wb29sLmggfCAyMCArKysrKystLS0tLS0tLS0tLS0tLQ0KPiA+ICAzIGZpbGVzIGNoYW5nZWQs IDIwIGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4gZGlmZiAtLWdpdCBh L2FwcC90ZXN0L3Rlc3RfbWVtcG9vbC5jIGIvYXBwL3Rlc3QvdGVzdF9tZW1wb29sLmMNCj4gPiBp bmRleCAwYmIwNTFjYjMxLi42ZmY4NzQ2NDc0IDEwMDY0NA0KPiA+IC0tLSBhL2FwcC90ZXN0L3Rl c3RfbWVtcG9vbC5jDQo+ID4gKysrIGIvYXBwL3Rlc3QvdGVzdF9tZW1wb29sLmMNCj4gPiBAQCAt MTEyLDggKzExMiw3IEBAIHRlc3RfbWVtcG9vbF9iYXNpYyhzdHJ1Y3QgcnRlX21lbXBvb2wgKm1w LCBpbnQNCj4gPiB1c2VfZXh0ZXJuYWxfY2FjaGUpDQo+ID4gIAkJR09UT19FUlIocmV0LCBvdXQp Ow0KPiA+DQo+ID4gIAlwcmludGYoImdldCBwcml2YXRlIGRhdGFcbiIpOw0KPiA+IC0JaWYgKHJ0 ZV9tZW1wb29sX2dldF9wcml2KG1wKSAhPSAoY2hhciAqKW1wICsNCj4gPiAtCQkJUlRFX01FTVBP T0xfSEVBREVSX1NJWkUobXAsIG1wLT5jYWNoZV9zaXplKSkNCj4gPiArCWlmIChydGVfbWVtcG9v bF9nZXRfcHJpdihtcCkgIT0gKGNoYXIgKiltcCArIHNpemVvZihzdHJ1Y3RbXQ0KPiANCj4gSSdk IHNheSAtIHJlbW92ZSB0aGF0IGNvbXBsZXRlbHkuDQo+IEZyb20gbXkgcGVyc3BlY3RpdmUgaXQg aXMgd3JvbmcgdG8gbWFrZSBhc3N1bXB0aW9ucyBvbiBpbnRlcm5hbA0KPiBzdHJ1Y3R1cmUgbGF5 b3V0Lg0KDQpBZ3JlZS4NClRoZSBzaXplIGlzIGZpeGVkIG5vdywgc28gdGhpcyB0ZXN0IGhhcyBi ZWNvbWUgc3VwZXJmbHVvdXMgYW55d2F5Lg0KQnV0IGl0J3MgaGFybWxlc3MsIHNvIEknbGwgbGVh dmUgaXQgdGhlcmUgKGZvciBub3cpLg0KDQo+IA0KPiA+IHJ0ZV9tZW1wb29sKSkNCj4gPiAgCQlH T1RPX0VSUihyZXQsIG91dCk7DQo+ID4NCj4gPiAgI2lmbmRlZiBSVEVfRVhFQ19FTlZfRlJFRUJT RCAvKiBydGVfbWVtX3ZpcnQyaW92YSgpIG5vdCBzdXBwb3J0ZWQgb24NCj4gYnNkDQo+ID4gKi8N Cj4gPiBkaWZmIC0tZ2l0IGEvbGliL21lbXBvb2wvcnRlX21lbXBvb2wuYyBiL2xpYi9tZW1wb29s L3J0ZV9tZW1wb29sLmMNCj4gPiBpbmRleCAwNDc2NmY1NWQ2Li4yMTE3NjNhY2VkIDEwMDY0NA0K PiA+IC0tLSBhL2xpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmMNCj4gPiArKysgYi9saWIvbWVtcG9v bC9ydGVfbWVtcG9vbC5jDQo+ID4gQEAgLTg3Myw2ICs4NzMsMTMgQEAgcnRlX21lbXBvb2xfY3Jl YXRlX2VtcHR5KGNvbnN0IGNoYXIgKm5hbWUsDQo+ID4gdW5zaWduZWQgbiwgdW5zaWduZWQgZWx0 X3NpemUsDQo+ID4gIAkgKiBjYWNoZS1hbGlnbmVkDQo+ID4gIAkgKi8NCj4gPiAgCXByaXZhdGVf ZGF0YV9zaXplID0gUlRFX0NBQ0hFX0xJTkVfUk9VTkRVUChwcml2YXRlX2RhdGFfc2l6ZSk7DQo+ ID4gKwkvKg0KPiA+ICsJICogSWYgYW55IHByaXZhdGUgZGF0YSwgYWRkIHBhZGRpbmcsIHRvIGd1 YXJkIGFnYWluc3QgZmFsc2UNCj4gc2hhcmluZy1saWtlDQo+ID4gKwkgKiBlZmZlY3RzIG9uIHN5 c3RlbXMgd2l0aCBhIG5leHQtTi1saW5lcyBoYXJkd2FyZSBwcmVmZXRjaGVyLA0KPiB3aGVuDQo+ ID4gKwkgKiBhY2Nlc3NpbmcgcHJpdmF0ZSBkYXRhLg0KPiA+ICsJICovDQo+ID4gKwlpZiAocHJp dmF0ZV9kYXRhX3NpemUgIT0gMCkNCj4gPiArCQlwcml2YXRlX2RhdGFfc2l6ZSArPSBSVEVfQ0FD SEVfR1VBUkRfTElORVMgKg0KPiA+IFJURV9DQUNIRV9MSU5FX1NJWkU7DQo+ID4NCj4gPiAgCS8q IHRyeSB0byBhbGxvY2F0ZSB0YWlscSBlbnRyeSAqLw0KPiA+ICAJdGUgPSBydGVfem1hbGxvYygi TUVNUE9PTF9UQUlMUV9FTlRSWSIsIHNpemVvZigqdGUpLCAwKTsNCj4gPiBAQCAtODgxLDggKzg4 OCwxMCBAQCBydGVfbWVtcG9vbF9jcmVhdGVfZW1wdHkoY29uc3QgY2hhciAqbmFtZSwNCj4gPiB1 bnNpZ25lZCBuLCB1bnNpZ25lZCBlbHRfc2l6ZSwNCj4gPiAgCQlnb3RvIGV4aXRfdW5sb2NrOw0K PiA+ICAJfQ0KPiA+DQo+ID4gLQltZW1wb29sX3NpemUgPSBSVEVfTUVNUE9PTF9IRUFERVJfU0la RShtcCwgY2FjaGVfc2l6ZSk7DQo+ID4gKwltZW1wb29sX3NpemUgPSBzaXplb2Yoc3RydWN0IHJ0 ZV9tZW1wb29sKTsNCj4gPiAgCW1lbXBvb2xfc2l6ZSArPSBwcml2YXRlX2RhdGFfc2l6ZTsNCj4g PiArCWlmIChjYWNoZV9zaXplICE9IDApDQo+ID4gKwkJbWVtcG9vbF9zaXplICs9IFJURV9NQVhf TENPUkUgKiBzaXplb2Yoc3RydWN0DQo+ID4gcnRlX21lbXBvb2xfY2FjaGUpOw0KPiA+DQo+ID4g IAlyZXQgPSBzbnByaW50Zihtel9uYW1lLCBzaXplb2YobXpfbmFtZSksDQo+ID4gUlRFX01FTVBP T0xfTVpfRk9STUFULCBuYW1lKTsNCj4gPiAgCWlmIChyZXQgPCAwIHx8IHJldCA+PSAoaW50KXNp emVvZihtel9uYW1lKSkgew0KPiA+IEBAIC04OTYsNyArOTA1LDcgQEAgcnRlX21lbXBvb2xfY3Jl YXRlX2VtcHR5KGNvbnN0IGNoYXIgKm5hbWUsDQo+ID4gdW5zaWduZWQgbiwgdW5zaWduZWQgZWx0 X3NpemUsDQo+ID4NCj4gPiAgCS8qIGluaXQgdGhlIG1lbXBvb2wgc3RydWN0dXJlICovDQo+ID4g IAltcCA9IG16LT5hZGRyOw0KPiA+IC0JbWVtc2V0KG1wLCAwLCBSVEVfTUVNUE9PTF9IRUFERVJf U0laRShtcCwgY2FjaGVfc2l6ZSkpOw0KPiA+ICsJbWVtc2V0KG1wLCAwLCBtZW1wb29sX3NpemUp Ow0KPiA+ICAJcmV0ID0gc3RybGNweShtcC0+bmFtZSwgbmFtZSwgc2l6ZW9mKG1wLT5uYW1lKSk7 DQo+ID4gIAlpZiAocmV0IDwgMCB8fCByZXQgPj0gKGludClzaXplb2YobXAtPm5hbWUpKSB7DQo+ ID4gIAkJcnRlX2Vycm5vID0gRU5BTUVUT09MT05HOw0KPiA+IEBAIC05MzUsMTAgKzk0NCwxMCBA QCBydGVfbWVtcG9vbF9jcmVhdGVfZW1wdHkoY29uc3QgY2hhciAqbmFtZSwNCj4gPiB1bnNpZ25l ZCBuLCB1bnNpZ25lZCBlbHRfc2l6ZSwNCj4gPg0KPiA+ICAJLyoNCj4gPiAgCSAqIGxvY2FsX2Nh Y2hlIHBvaW50ZXIgaXMgc2V0IGV2ZW4gaWYgY2FjaGVfc2l6ZSBpcyB6ZXJvLg0KPiA+IC0JICog VGhlIGxvY2FsX2NhY2hlIHBvaW50cyB0byBqdXN0IHBhc3QgdGhlIGVsdF9wYVtdIGFycmF5Lg0K PiA+ICsJICogVGhlIGxvY2FsX2NhY2hlIHBvaW50cyB0byBqdXN0IHBhc3QgdGhlIHByaXZhdGUg ZGF0YS4NCj4gPiAgCSAqLw0KPiA+ICAJbXAtPmxvY2FsX2NhY2hlID0gKHN0cnVjdCBydGVfbWVt cG9vbF9jYWNoZSAqKQ0KPiA+IC0JCVJURV9QVFJfQUREKG1wLCBSVEVfTUVNUE9PTF9IRUFERVJf U0laRShtcCwgMCkpOw0KPiA+ICsJCVJURV9QVFJfQUREKG1wLCBzaXplb2Yoc3RydWN0IHJ0ZV9t ZW1wb29sKSArDQo+ID4gcHJpdmF0ZV9kYXRhX3NpemUpOw0KPiA+DQo+ID4gIAkvKiBJbml0IGFs bCBkZWZhdWx0IGNhY2hlcy4gKi8NCj4gPiAgCWlmIChjYWNoZV9zaXplICE9IDApIHsNCj4gPiBk aWZmIC0tZ2l0IGEvbGliL21lbXBvb2wvcnRlX21lbXBvb2wuaCBiL2xpYi9tZW1wb29sL3J0ZV9t ZW1wb29sLmgNCj4gPiBpbmRleCA0Y2RiYjNmNzc4Li41YTgxZTUzYTlmIDEwMDY0NA0KPiA+IC0t LSBhL2xpYi9tZW1wb29sL3J0ZV9tZW1wb29sLmgNCj4gPiArKysgYi9saWIvbWVtcG9vbC9ydGVf bWVtcG9vbC5oDQo+ID4gQEAgLTI3OCw2ICsyNzgsMTEgQEAgc3RydWN0IF9fcnRlX2NhY2hlX2Fs aWduZWQgcnRlX21lbXBvb2wgew0KPiA+ICAJICovDQo+ID4gIAlzdHJ1Y3QgcnRlX21lbXBvb2xf ZGVidWdfc3RhdHMgc3RhdHNbUlRFX01BWF9MQ09SRSArIDFdOw0KPiA+ICAjZW5kaWYNCj4gPiAr DQo+ID4gKwkvKg0KPiA+ICsJICogUHJpdmF0ZSBkYXRhLCBpZiBhbnksIGlzIGxvY2F0ZWQgYWZ0 ZXIgdGhlIG1lbXBvb2wgaGVhZGVyLg0KPiA+ICsJICogUGVyLWxjb3JlIGxvY2FsIGNhY2hlLCBp ZiBhbnksIGlzIGxvY2F0ZWQgYWZ0ZXIgdGhlIHByaXZhdGUNCj4gZGF0YS4NCj4gPiArCSAqLw0K PiA+ICB9Ow0KPiA+DQo+ID4gIC8qKiBTcHJlYWRpbmcgYW1vbmcgbWVtb3J5IGNoYW5uZWxzIG5v dCByZXF1aXJlZC4gKi8NCj4gPiBAQCAtMzY5LDE4ICszNzQsNiBAQCBzdHJ1Y3QgX19ydGVfY2Fj aGVfYWxpZ25lZCBydGVfbWVtcG9vbCB7DQo+ID4gICNkZWZpbmUgUlRFX01FTVBPT0xfQ0FDSEVf U1RBVF9BREQoY2FjaGUsIG5hbWUsIG4pIGRvIHt9IHdoaWxlICgwKQ0KPiA+ICAjZW5kaWYNCj4g Pg0KPiA+IC0vKioNCj4gPiAtICogQGludGVybmFsIENhbGN1bGF0ZSB0aGUgc2l6ZSBvZiB0aGUg bWVtcG9vbCBoZWFkZXIuDQo+ID4gLSAqDQo+ID4gLSAqIEBwYXJhbSBtcA0KPiA+IC0gKiAgIFBv aW50ZXIgdG8gdGhlIG1lbW9yeSBwb29sLg0KPiA+IC0gKiBAcGFyYW0gY3MNCj4gPiAtICogICBT aXplIG9mIHRoZSBwZXItbGNvcmUgY2FjaGUuDQo+ID4gLSAqLw0KPiA+IC0jZGVmaW5lIFJURV9N RU1QT09MX0hFQURFUl9TSVpFKG1wLCBjcykgXA0KPiA+IC0JKHNpemVvZigqKG1wKSkgKyAoKChj cykgPT0gMCkgPyAwIDogXA0KPiA+IC0JKHNpemVvZihzdHJ1Y3QgcnRlX21lbXBvb2xfY2FjaGUp ICogUlRFX01BWF9MQ09SRSkpKQ0KPiA+IC0NCj4gPiAgLyogcmV0dXJuIHRoZSBoZWFkZXIgb2Yg YSBtZW1wb29sIG9iamVjdCAoaW50ZXJuYWwpICovDQo+ID4gIHN0YXRpYyBpbmxpbmUgc3RydWN0 IHJ0ZV9tZW1wb29sX29iamhkciAqDQo+ID4gIHJ0ZV9tZW1wb29sX2dldF9oZWFkZXIodm9pZCAq b2JqKQ0KPiA+IEBAIC0xOTAyLDggKzE4OTUsNyBAQCB2b2lkIHJ0ZV9tZW1wb29sX2F1ZGl0KHN0 cnVjdCBydGVfbWVtcG9vbCAqbXApOw0KPiA+ICAgKi8NCj4gPiAgc3RhdGljIGlubGluZSB2b2lk ICpydGVfbWVtcG9vbF9nZXRfcHJpdihzdHJ1Y3QgcnRlX21lbXBvb2wgKm1wKQ0KPiA+ICB7DQo+ ID4gLQlyZXR1cm4gKGNoYXIgKiltcCArDQo+ID4gLQkJUlRFX01FTVBPT0xfSEVBREVSX1NJWkUo bXAsIG1wLT5jYWNoZV9zaXplKTsNCj4gPiArCXJldHVybiAodm9pZCAqKShtcCArIDEpOw0KPiA+ ICB9DQo+ID4NCj4gPiAgLyoqDQo+ID4gLS0NCj4gPiAyLjQzLjANCg0K