From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1F50042C3E; Tue, 6 Jun 2023 10:34:49 +0200 (CEST) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A2C5C40A84; Tue, 6 Jun 2023 10:34:48 +0200 (CEST) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 137BF40697 for ; Tue, 6 Jun 2023 10:34:47 +0200 (CEST) Received: from frapeml100006.china.huawei.com (unknown [172.18.147.201]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4Qb3g96YM6z67K7y; Tue, 6 Jun 2023 16:34:29 +0800 (CST) Received: from frapeml500007.china.huawei.com (7.182.85.172) by frapeml100006.china.huawei.com (7.182.85.201) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Tue, 6 Jun 2023 10:34:46 +0200 Received: from frapeml500007.china.huawei.com ([7.182.85.172]) by frapeml500007.china.huawei.com ([7.182.85.172]) with mapi id 15.01.2507.023; Tue, 6 Jun 2023 10:34:46 +0200 From: Konstantin Ananyev To: Feifei Wang , =?utf-8?B?0JrQvtC90YHRgtCw0L3RgtC40L0g0JDQvdCw0L3RjNC10LI=?= , "thomas@monjalon.net" , Ferruh Yigit , Andrew Rybchenko CC: "dev@dpdk.org" , nd , Honnappa Nagarahalli , Ruifeng Wang , nd , nd Subject: RE: [PATCH v6 1/4] ethdev: add API for mbufs recycle mode Thread-Topic: [PATCH v6 1/4] ethdev: add API for mbufs recycle mode Thread-Index: AQHZju3Ef0UoE2EPTUCvSDiUqZI8Fq98GhsAgADrUoCAAGhgsP//5KGAgAAxIsA= Date: Tue, 6 Jun 2023 08:34:46 +0000 Message-ID: <07e46ddd2d6d4e3ca7f9958ecc1fa5b7@huawei.com> References: <20211224164613.32569-1-feifei.wang2@arm.com> <20230525094541.331338-1-feifei.wang2@arm.com> <20230525094541.331338-2-feifei.wang2@arm.com> <658741685969010@mail.yandex.ru> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.81.189.224] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-CFilter-Loop: Reflected 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 DQoNCj4gDQo+IFsuLi5dDQo+ID4gPiBQcm9iYWJseSBJIGFtIG1pc3Npbmcgc29tZXRoaW5nLCBi dXQgd2h5IGl0IGlzIG5vdCBwb3NzaWJsZSB0byBkbyBzb21ldGhpbmcNCj4gPiBsaWtlIHRoYXQ6 DQo+ID4gPg0KPiA+ID4gcnRlX2V0aF9yZWN5Y2xlX21idWZzKHJ4X3BvcnRfaWQ9WCwgcnhfcXVl dWVfaWQ9WSwgdHhfcG9ydF9pZD1OLA0KPiA+ID4gdHhfcXVldWVfaWQ9TSwgLi4uKTsgLi4uLg0K PiA+ID4gcnRlX2V0aF9yZWN5Y2xlX21idWZzKHJ4X3BvcnRfaWQ9WCwgcnhfcXVldWVfaWQ9WSwg dHhfcG9ydF9pZD1OLA0KPiA+ID4gdHhfcXVldWVfaWQ9SywgLi4uKTsNCj4gPiA+DQo+ID4gPiBJ LkUuIGZlZWQgcnggcXVldWUgZnJvbSAyIHR4IHF1ZXVlcz8NCj4gPiA+DQo+ID4gPiBUd28gcHJv YmxlbXMgZm9yIHRoaXM6DQo+ID4gPiAxLiBJZiB3ZSBoYXZlIDIgdHggcXVldWVzIGZvciByeCwg dGhlIHRocmVhZCBzaG91bGQgbWFrZSB0aGUgZXh0cmENCj4gPiA+IGp1ZGdlbWVudCB0byBkZWNp ZGUgd2hpY2ggb25lIHRvIGNob29zZSBpbiB0aGUgZHJpdmVyIGxheWVyLg0KPiA+DQo+ID4gTm90 IHN1cmUsIHdoeSBvbiB0aGUgZHJpdmVyIGxheWVyPw0KPiA+IFRoZSBleGFtcGxlIEkgZ2F2ZSBh Ym92ZSAtIGRlY2lzaW9uIGlzIG1hZGUgb24gYXBwbGljYXRpb24gbGF5ZXIuDQo+ID4gTGV0cyBz YXkgZmlyc3QgY2FsbCBkaWRuJ3QgZnJlZSBlbm91Z2ggbWJ1ZnMsIHNvIGFwcCBkZWNpZGVkIHRv IHVzZSBzZWNvbmQgdHhxDQo+ID4gZm9yIHJlYXJtLg0KPiBbRmVpZmVpXSBJIHRoaW5rIGN1cnJl bnRseSBtYnVmIHJlY3ljbGUgbW9kZSBjYW4gc3VwcG9ydCB0aGlzIHVzYWdlLiBGb3IgZXhhbXBs ZXM6DQo+IG4gPSAgcnRlX2V0aF9yZWN5Y2xlX21idWZzKHJ4X3BvcnRfaWQ9WCwgcnhfcXVldWVf aWQ9WSwgdHhfcG9ydF9pZD1OLCB0eF9xdWV1ZV9pZD1NLCAuLi4pOw0KPiBpZiAobiA8IHBsYW5u ZWRfbnVtYmVyKQ0KPiBydGVfZXRoX3JlY3ljbGVfbWJ1ZnMocnhfcG9ydF9pZD1YLCByeF9xdWV1 ZV9pZD1ZLCB0eF9wb3J0X2lkPU4sIHR4X3F1ZXVlX2lkPUssIC4uLik7DQo+IA0KPiBUaHVzLCBp ZiB1c2VycyB3YW50LCB0aGV5IGNhbiBkbyBsaWtlIHRoaXMuDQoNClllcywgdGhhdCB3YXMgbXkg dGhvdWdodCwgdGhhdCdzIHdoeSBJIHdhcyBzdXJwcmlzZSB0aGF0IGluIHRoZSBjb21tZW50cyB3 ZSBoYXZlOg0KIiBDdXJyZW50bHksIHRoZSBydGVfZXRoX3JlY3ljbGVfbWJ1ZnMoKSBmdW5jdGlv biBjYW4gb25seSBzdXBwb3J0IG9uZS10aW1lIHBhaXJpbmcNCiogYmV0d2VlbiB0aGUgcmVjZWl2 ZSBxdWV1ZSBhbmQgdHJhbnNtaXQgcXVldWUuIERvIG5vdCBwYWlyIG9uZSByZWNlaXZlIHF1ZXVl IHdpdGgNCiAqIG11bHRpcGxlIHRyYW5zbWl0IHF1ZXVlcyBvciBwYWlyIG9uZSB0cmFuc21pdCBx dWV1ZSB3aXRoIG11bHRpcGxlIHJlY2VpdmUgcXVldWVzLA0KICogaW4gb3JkZXIgdG8gYXZvaWQg bWVtb3J5IGVycm9yIHJld3JpdGluZy4iDQoNCj4gDQo+ID4NCj4gPiA+IE9uIHRoZSBvdGhlciBo YW5kLCBjdXJyZW50IG1lY2hhbmlzbSBjYW4gc3VwcG9ydCB1c2VycyB0byBzd2l0Y2ggMSB0eHEN Cj4gPiA+IHRvIGFub3RoZXIgdGltZWx5IGluIHRoZSBhcHBsaWNhdGlvbiBsYXllci4gSWYgdXNl ciB3YW50IHRvIGNob29zZQ0KPiA+ID4gYW5vdGhlciB0eHEsIGhlIGp1c3QgbmVlZCB0byBjaGFu Z2UgdGhlIHR4cV9xdWV1ZV9pZCBwYXJhbWV0ZXIgaW4gdGhlIEFQSS4NCj4gPiA+IDIuIElmIHlv dSB3YW50IG9uZSByeHEgdG8gc3VwcG9ydCB0d28gdHhxIGF0IHRoZSBzYW1lIHRpbWUsIHRoaXMg bmVlZHMNCj4gPiA+IHRvIGFkZCBzcGlubG9jayBvbiBndWFyZCB2YXJpYWJsZSB0byBhdm9pZCBt dWx0aS10aHJlYWQgY29uZmxpY3QuDQo+ID4gPiBTcGlubG9jayB3aWxsIGRlY3JlYXNlIHRoZSBk YXRhLXBhdGggcGVyZm9ybWFuY2UgZ3JlYXRseS4gIFRodXMsIHdlIGRvDQo+ID4gPiBub3QgY29u c2lkZXINCj4gPiA+IDEgcnhxIG1hcHBpbmcgbXVsdGlwbGUgdHhxcyBoZXJlLg0KPiA+DQo+ID4g SSBhbSB0YWxraW5nIGFib3V0IHNpdHVhdGlvbiB3aGVuIG9uZSB0aHJlYWQgY29udHJvbHMgMiB0 eCBxdWV1ZXMuDQo+ID4NCj4gPiA+ICsgKg0KPiA+ID4gKyAqIEBwYXJhbSByeF9wb3J0X2lkDQo+ ID4gPiArICogUG9ydCBpZGVudGlmeWluZyB0aGUgcmVjZWl2ZSBzaWRlLg0KPiA+ID4gKyAqIEBw YXJhbSByeF9xdWV1ZV9pZA0KPiA+ID4gKyAqIFRoZSBpbmRleCBvZiB0aGUgcmVjZWl2ZSBxdWV1 ZSBpZGVudGlmeWluZyB0aGUgcmVjZWl2ZSBzaWRlLg0KPiA+ID4gKyAqIFRoZSB2YWx1ZSBtdXN0 IGJlIGluIHRoZSByYW5nZSBbMCwgbmJfcnhfcXVldWUgLSAxXSBwcmV2aW91c2x5DQo+ID4gPiAr c3VwcGxpZWQNCj4gPiA+ICsgKiB0byBydGVfZXRoX2Rldl9jb25maWd1cmUoKS4NCj4gPiA+ICsg KiBAcGFyYW0gdHhfcG9ydF9pZA0KPiA+ID4gKyAqIFBvcnQgaWRlbnRpZnlpbmcgdGhlIHRyYW5z bWl0IHNpZGUuDQo+ID4gPiArICogQHBhcmFtIHR4X3F1ZXVlX2lkDQo+ID4gPiArICogVGhlIGlu ZGV4IG9mIHRoZSB0cmFuc21pdCBxdWV1ZSBpZGVudGlmeWluZyB0aGUgdHJhbnNtaXQgc2lkZS4N Cj4gPiA+ICsgKiBUaGUgdmFsdWUgbXVzdCBiZSBpbiB0aGUgcmFuZ2UgWzAsIG5iX3R4X3F1ZXVl IC0gMV0gcHJldmlvdXNseQ0KPiA+ID4gK3N1cHBsaWVkDQo+ID4gPiArICogdG8gcnRlX2V0aF9k ZXZfY29uZmlndXJlKCkuDQo+ID4gPiArICogQHBhcmFtIHJlY3ljbGVfcnhxX2luZm8NCj4gPiA+ ICsgKiBBIHBvaW50ZXIgdG8gYSBzdHJ1Y3R1cmUgb2YgdHlwZSAqcnRlX2V0aF9yZWN5Y2xlX3J4 cV9pbmZvKiB3aGljaA0KPiA+ID4gK2NvbnRhaW5zDQo+ID4gPiArICogdGhlIGluZm9ybWF0aW9u IG9mIHRoZSBSeCBxdWV1ZSBtYnVmIHJpbmcuDQo+ID4gPiArICogQHJldHVybg0KPiA+ID4gKyAq IFRoZSBudW1iZXIgb2YgcmVjeWNsaW5nIG1idWZzLg0KPiA+ID4gKyAqLw0KPiA+ID4gK19fcnRl X2V4cGVyaW1lbnRhbA0KPiA+ID4gK3N0YXRpYyBpbmxpbmUgdWludDE2X3QNCj4gPiA+ICtydGVf ZXRoX3JlY3ljbGVfbWJ1ZnModWludDE2X3QgcnhfcG9ydF9pZCwgdWludDE2X3QgcnhfcXVldWVf aWQsDQo+ID4gPiArdWludDE2X3QgdHhfcG9ydF9pZCwgdWludDE2X3QgdHhfcXVldWVfaWQsICBz dHJ1Y3QNCj4gPiA+ICtydGVfZXRoX3JlY3ljbGVfcnhxX2luZm8gKnJlY3ljbGVfcnhxX2luZm8p IHsgIHN0cnVjdCBydGVfZXRoX2ZwX29wcw0KPiA+ID4gKypwOyAgdm9pZCAqcWQ7ICB1aW50MTZf dCBuYl9tYnVmczsNCj4gPiA+ICsNCj4gPiA+ICsjaWZkZWYgUlRFX0VUSERFVl9ERUJVR19UWA0K PiA+ID4gKyBpZiAodHhfcG9ydF9pZCA+PSBSVEVfTUFYX0VUSFBPUlRTIHx8ICB0eF9xdWV1ZV9p ZCA+PQ0KPiA+ID4gK1JURV9NQVhfUVVFVUVTX1BFUl9QT1JUKSB7ICBSVEVfRVRIREVWX0xPRyhF UlIsICAiSW52YWxpZA0KPiA+ID4gK3R4X3BvcnRfaWQ9JXUgb3IgdHhfcXVldWVfaWQ9JXVcbiIs ICB0eF9wb3J0X2lkLCB0eF9xdWV1ZV9pZCk7DQo+ID4gPiArcmV0dXJuIDA7ICB9ICNlbmRpZg0K PiA+ID4gKw0KPiA+ID4gKyAvKiBmZXRjaCBwb2ludGVyIHRvIHF1ZXVlIGRhdGEgKi8NCj4gPiA+ ICsgcCA9ICZydGVfZXRoX2ZwX29wc1t0eF9wb3J0X2lkXTsNCj4gPiA+ICsgcWQgPSBwLT50eHEu ZGF0YVt0eF9xdWV1ZV9pZF07DQo+ID4gPiArDQo+ID4gPiArI2lmZGVmIFJURV9FVEhERVZfREVC VUdfVFgNCj4gPiA+ICsgUlRFX0VUSF9WQUxJRF9QT1JUSURfT1JfRVJSX1JFVCh0eF9wb3J0X2lk LCAwKTsNCj4gPiA+ICsNCj4gPiA+ICsgaWYgKHFkID09IE5VTEwpIHsNCj4gPiA+ICsgUlRFX0VU SERFVl9MT0coRVJSLCAiSW52YWxpZCBUeCBxdWV1ZV9pZD0ldSBmb3IgcG9ydF9pZD0ldVxuIiwN Cj4gPiA+ICt0eF9xdWV1ZV9pZCwgdHhfcG9ydF9pZCk7ICByZXR1cm4gMDsgIH0gI2VuZGlmICBp Zg0KPiA+ID4gKyhwLT5yZWN5Y2xlX3R4X21idWZzX3JldXNlID09IE5VTEwpICByZXR1cm4gMDsN Cj4gPiA+ICsNCj4gPiA+ICsgLyogQ29weSB1c2VkICpydGVfbWJ1ZiogYnVmZmVyIHBvaW50ZXJz IGZyb20gVHggbWJ1ZiByaW5nDQo+ID4gPiArICogaW50byBSeCBtYnVmIHJpbmcuDQo+ID4gPiAr ICovDQo+ID4gPiArIG5iX21idWZzID0gcC0+cmVjeWNsZV90eF9tYnVmc19yZXVzZShxZCwgcmVj eWNsZV9yeHFfaW5mbyk7DQo+ID4gPiArDQo+ID4gPiArIC8qIElmIG5vIHJlY3ljbGluZyBtYnVm cywgcmV0dXJuIDAuICovIGlmIChuYl9tYnVmcyA9PSAwKSByZXR1cm4gMDsNCj4gPiA+ICsNCj4g PiA+ICsjaWZkZWYgUlRFX0VUSERFVl9ERUJVR19SWA0KPiA+ID4gKyBpZiAocnhfcG9ydF9pZCA+ PSBSVEVfTUFYX0VUSFBPUlRTIHx8ICByeF9xdWV1ZV9pZCA+PQ0KPiA+ID4gK1JURV9NQVhfUVVF VUVTX1BFUl9QT1JUKSB7ICBSVEVfRVRIREVWX0xPRyhFUlIsICJJbnZhbGlkDQo+ID4gPiArcnhf cG9ydF9pZD0ldSBvciByeF9xdWV1ZV9pZD0ldVxuIiwgIHJ4X3BvcnRfaWQsIHJ4X3F1ZXVlX2lk KTsNCj4gPiA+ICtyZXR1cm4gMDsgIH0gI2VuZGlmDQo+ID4gPiArDQo+ID4gPiArIC8qIGZldGNo IHBvaW50ZXIgdG8gcXVldWUgZGF0YSAqLw0KPiA+ID4gKyBwID0gJnJ0ZV9ldGhfZnBfb3BzW3J4 X3BvcnRfaWRdOw0KPiA+ID4gKyBxZCA9IHAtPnJ4cS5kYXRhW3J4X3F1ZXVlX2lkXTsNCj4gPiA+ ICsNCj4gPiA+ICsjaWZkZWYgUlRFX0VUSERFVl9ERUJVR19SWA0KPiA+ID4gKyBSVEVfRVRIX1ZB TElEX1BPUlRJRF9PUl9FUlJfUkVUKHJ4X3BvcnRfaWQsIDApOw0KPiA+ID4gKw0KPiA+ID4gKyBp ZiAocWQgPT0gTlVMTCkgew0KPiA+ID4gKyBSVEVfRVRIREVWX0xPRyhFUlIsICJJbnZhbGlkIFJ4 IHF1ZXVlX2lkPSV1IGZvciBwb3J0X2lkPSV1XG4iLA0KPiA+ID4gK3J4X3F1ZXVlX2lkLCByeF9w b3J0X2lkKTsgIHJldHVybiAwOyAgfSAjZW5kaWYNCj4gPiA+ICsNCj4gPiA+ICsgaWYgKHAtPnJl Y3ljbGVfcnhfZGVzY3JpcHRvcnNfcmVmaWxsID09IE5VTEwpIHJldHVybiAwOw0KPiA+ID4gKw0K PiA+ID4gKyAvKiBSZXBsZW5pc2ggdGhlIFJ4IGRlc2NyaXB0b3JzIHdpdGggdGhlIHJlY3ljbGlu Zw0KPiA+ID4gKyAqIGludG8gUnggbWJ1ZiByaW5nLg0KPiA+ID4gKyAqLw0KPiA+ID4gKyBwLT5y ZWN5Y2xlX3J4X2Rlc2NyaXB0b3JzX3JlZmlsbChxZCwgbmJfbWJ1ZnMpOw0KPiA+ID4gKw0KPiA+ ID4gKyByZXR1cm4gbmJfbWJ1ZnM7DQo+ID4gPiArfQ0KPiA+ID4gKw0KPiA+ID4gIC8qKg0KPiA+ ID4gICAqIEB3YXJuaW5nDQo+ID4gPiAgICogQGIgRVhQRVJJTUVOVEFMOiB0aGlzIEFQSSBtYXkg Y2hhbmdlIHdpdGhvdXQgcHJpb3Igbm90aWNlIGRpZmYNCj4gPiA+IC0tZ2l0IGEvbGliL2V0aGRl di9ydGVfZXRoZGV2X2NvcmUuaCBiL2xpYi9ldGhkZXYvcnRlX2V0aGRldl9jb3JlLmgNCj4gPiA+ IGluZGV4IGRjZjhhZGFiOTIuLmEyZTZlYTZiNmMgMTAwNjQ0DQo+ID4gPiAtLS0gYS9saWIvZXRo ZGV2L3J0ZV9ldGhkZXZfY29yZS5oDQo+ID4gPiArKysgYi9saWIvZXRoZGV2L3J0ZV9ldGhkZXZf Y29yZS5oDQo+ID4gPiBAQCAtNTYsNiArNTYsMTMgQEAgdHlwZWRlZiBpbnQgKCpldGhfcnhfZGVz Y3JpcHRvcl9zdGF0dXNfdCkodm9pZA0KPiA+ID4gKnJ4cSwgdWludDE2X3Qgb2Zmc2V0KTsNCj4g PiA+ICAvKiogQGludGVybmFsIENoZWNrIHRoZSBzdGF0dXMgb2YgYSBUeCBkZXNjcmlwdG9yICov ICB0eXBlZGVmIGludA0KPiA+ID4gKCpldGhfdHhfZGVzY3JpcHRvcl9zdGF0dXNfdCkodm9pZCAq dHhxLCB1aW50MTZfdCBvZmZzZXQpOw0KPiA+ID4NCj4gPiA+ICsvKiogQGludGVybmFsIENvcHkg dXNlZCBtYnVmcyBmcm9tIFR4IG1idWYgcmluZyBpbnRvIFJ4IG1idWYgcmluZyAqLw0KPiA+ID4g K3R5cGVkZWYgdWludDE2X3QgKCpldGhfcmVjeWNsZV90eF9tYnVmc19yZXVzZV90KSh2b2lkICp0 eHEsICBzdHJ1Y3QNCj4gPiA+ICtydGVfZXRoX3JlY3ljbGVfcnhxX2luZm8gKnJlY3ljbGVfcnhx X2luZm8pOw0KPiA+ID4gKw0KPiA+ID4gKy8qKiBAaW50ZXJuYWwgUmVmaWxsIFJ4IGRlc2NyaXB0 b3JzIHdpdGggdGhlIHJlY3ljbGluZyBtYnVmcyAqLw0KPiA+ID4gK3R5cGVkZWYgdm9pZCAoKmV0 aF9yZWN5Y2xlX3J4X2Rlc2NyaXB0b3JzX3JlZmlsbF90KSh2b2lkICpyeHEsDQo+ID4gPiArdWlu dDE2X3QgbmIpOw0KPiA+ID4gKw0KPiA+ID4gIC8qKg0KPiA+ID4gICAqIEBpbnRlcm5hbA0KPiA+ ID4gICAqIFN0cnVjdHVyZSB1c2VkIHRvIGhvbGQgb3BhcXVlIHBvaW50ZXJzIHRvIGludGVybmFs IGV0aGRldiBSeC9UeCBAQA0KPiA+ID4gLTkwLDkgKzk3LDExIEBAIHN0cnVjdCBydGVfZXRoX2Zw X29wcyB7DQo+ID4gPiAgICAgICAgICBldGhfcnhfcXVldWVfY291bnRfdCByeF9xdWV1ZV9jb3Vu dDsNCj4gPiA+ICAgICAgICAgIC8qKiBDaGVjayB0aGUgc3RhdHVzIG9mIGEgUnggZGVzY3JpcHRv ci4gKi8NCj4gPiA+ICAgICAgICAgIGV0aF9yeF9kZXNjcmlwdG9yX3N0YXR1c190IHJ4X2Rlc2Ny aXB0b3Jfc3RhdHVzOw0KPiA+ID4gKyAvKiogUmVmaWxsIFJ4IGRlc2NyaXB0b3JzIHdpdGggdGhl IHJlY3ljbGluZyBtYnVmcy4gKi8NCj4gPiA+ICsgZXRoX3JlY3ljbGVfcnhfZGVzY3JpcHRvcnNf cmVmaWxsX3QgcmVjeWNsZV9yeF9kZXNjcmlwdG9yc19yZWZpbGw7DQo+ID4gPiBJIGFtIGFmcmFp ZCB3ZSBjYW4ndCBwdXQgbmV3IGZpZWxkcyBoZXJlIHdpdGhvdXQgQUJJIGJyZWFrYWdlLg0KPiA+ ID4NCj4gPiA+IEFncmVlDQo+ID4gPg0KPiA+ID4gSXQgaGFzIHRvIGJlIGJlbG93IHJ4cS4NCj4g PiA+IE5vdyB0aGlua2luZyBhYm91dCBjdXJyZW50IGxheW91dCBwcm9iYWJseSBub3QgdGhlIGJl c3Qgb25lLCBhbmQgd2hlbg0KPiA+ID4gaW50cm9kdWNpbmcgdGhpcyBzdHJ1Y3QsIEkgc2hvdWxk IHByb2JhYmx5IHB1dCByeHEgZWl0aGVyIG9uIHRoZSB0b3ANCj4gPiA+IG9mIHRoZSBzdHJ1Y3Qs IG9yIG9uIHRoZSBuZXh0IGNhY2hlIGxpbmUuDQo+ID4gPiBCdXQgc3VjaCBjaGFuZ2UgaXMgbm90 IHBvc3NpYmxlIHJpZ2h0IG5vdyBhbnl3YXkuDQo+ID4gPiBTYW1lIHN0b3J5IGZvciB0eHEuDQo+ ID4gPg0KPiA+ID4gVGh1cyB3ZSBzaG91bGQgcmVhcnJhbmdlIHRoZSBzdHJ1Y3R1cmUgbGlrZSBi ZWxvd++8mg0KPiA+ID4gc3RydWN0IHJ0ZV9ldGhfZnBfb3BzIHsNCj4gPiA+ICAgICBzdHJ1Y3Qg cnRlX2V0aGRldl9xZGF0YSByeHE7DQo+ID4gPiAgICAgICAgICBldGhfcnhfYnVyc3RfdCByeF9w a3RfYnVyc3Q7DQo+ID4gPiAgICAgICAgICBldGhfcnhfcXVldWVfY291bnRfdCByeF9xdWV1ZV9j b3VudDsNCj4gPiA+ICAgICAgICAgIGV0aF9yeF9kZXNjcmlwdG9yX3N0YXR1c190IHJ4X2Rlc2Ny aXB0b3Jfc3RhdHVzOw0KPiA+ID4gICAgICAgIGV0aF9yZWN5Y2xlX3J4X2Rlc2NyaXB0b3JzX3Jl ZmlsbF90IHJlY3ljbGVfcnhfZGVzY3JpcHRvcnNfcmVmaWxsOw0KPiA+ID4gICAgICAgICAgICAg ICB1aW50cHRyX3QgcmVzZXJ2ZWQxWzJdOw0KPiA+ID4gfQ0KPiA+DQo+ID4gWWVzLCBJIHRoaW5r IHN1Y2ggbGF5b3V0IHdpbGwgYmUgYmV0dGVyLg0KPiA+IFRoZSBvbmx5IHByb2JsZW0gaGVyZSAt IHdlIGhhdmUgdG8gd2FpdCBmb3IgMjMuMTEgZm9yIHRoYXQuDQo+ID4NCj4gT2ssIGlmIG5vdCB0 aGlzIGNoYW5nZSwgbWF5YmUgd2Ugc3RpbGwgbmVlZCB0byB3YWl0LiBCZWNhdXNlIG1idWZzX3Jl Y3ljbGUgaGF2ZSBvdGhlcg0KPiBBQkkgYnJlYWthZ2UuIFN1Y2ggYXMgdGhlIGNoYW5nZSBmb3Ig J3N0cnVjdCBydGVfZXRoX2RldicuDQoNCk9rIGJ5IG1lLg0KDQo+ID4gPg0KPiA+ID4NCj4gPiA+ ICAgICAgICAgIC8qKiBSeCBxdWV1ZXMgZGF0YS4gKi8NCj4gPiA+ICAgICAgICAgIHN0cnVjdCBy dGVfZXRoZGV2X3FkYXRhIHJ4cTsNCj4gPiA+IC0gdWludHB0cl90IHJlc2VydmVkMVszXTsNCj4g PiA+ICsgdWludHB0cl90IHJlc2VydmVkMVsyXTsNCj4gPiA+ICAgICAgICAgIC8qKkB9Ki8NCj4g PiA+DQo+ID4gPiAgICAgICAgICAvKipAeyovDQo+ID4gPiBAQCAtMTA2LDkgKzExNSwxMSBAQCBz dHJ1Y3QgcnRlX2V0aF9mcF9vcHMgew0KPiA+ID4gICAgICAgICAgZXRoX3R4X3ByZXBfdCB0eF9w a3RfcHJlcGFyZTsNCj4gPiA+ICAgICAgICAgIC8qKiBDaGVjayB0aGUgc3RhdHVzIG9mIGEgVHgg ZGVzY3JpcHRvci4gKi8NCj4gPiA+ICAgICAgICAgIGV0aF90eF9kZXNjcmlwdG9yX3N0YXR1c190 IHR4X2Rlc2NyaXB0b3Jfc3RhdHVzOw0KPiA+ID4gKyAvKiogQ29weSB1c2VkIG1idWZzIGZyb20g VHggbWJ1ZiByaW5nIGludG8gUnguICovDQo+ID4gPiArIGV0aF9yZWN5Y2xlX3R4X21idWZzX3Jl dXNlX3QgcmVjeWNsZV90eF9tYnVmc19yZXVzZTsNCj4gPiA+ICAgICAgICAgIC8qKiBUeCBxdWV1 ZXMgZGF0YS4gKi8NCj4gPiA+ICAgICAgICAgIHN0cnVjdCBydGVfZXRoZGV2X3FkYXRhIHR4cTsN Cj4gPiA+IC0gdWludHB0cl90IHJlc2VydmVkMlszXTsNCj4gPiA+ICsgdWludHB0cl90IHJlc2Vy dmVkMlsyXTsNCj4gPiA+ICAgICAgICAgIC8qKkB9Ki8NCj4gPiA+DQo+ID4gPiAgfSBfX3J0ZV9j YWNoZV9hbGlnbmVkOw0KPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9ldGhkZXYvdmVyc2lvbi5tYXAg Yi9saWIvZXRoZGV2L3ZlcnNpb24ubWFwIGluZGV4DQo+ID4gPiAzNTdkMWE4OGMwLi40NWM0MTdm NmJkIDEwMDY0NA0KPiA+ID4gLS0tIGEvbGliL2V0aGRldi92ZXJzaW9uLm1hcA0KPiA+ID4gKysr IGIvbGliL2V0aGRldi92ZXJzaW9uLm1hcA0KPiA+ID4gQEAgLTI5OSw2ICsyOTksMTAgQEAgRVhQ RVJJTUVOVEFMIHsNCj4gPiA+ICAgICAgICAgIHJ0ZV9mbG93X2FjdGlvbl9oYW5kbGVfcXVlcnlf dXBkYXRlOw0KPiA+ID4gICAgICAgICAgcnRlX2Zsb3dfYXN5bmNfYWN0aW9uX2hhbmRsZV9xdWVy eV91cGRhdGU7DQo+ID4gPiAgICAgICAgICBydGVfZmxvd19hc3luY19jcmVhdGVfYnlfaW5kZXg7 DQo+ID4gPiArDQo+ID4gPiArICMgYWRkZWQgaW4gMjMuMDcNCj4gPiA+ICsgcnRlX2V0aF9yZWN5 Y2xlX21idWZzOw0KPiA+ID4gKyBydGVfZXRoX3JlY3ljbGVfcnhfcXVldWVfaW5mb19nZXQ7DQo+ ID4gPiAgfTsNCj4gPiA+DQo+ID4gPiAgSU5URVJOQUwgew0KPiA+ID4gLS0NCj4gPiA+IDIuMjUu MQ0KPiA+ID4NCg==