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 4A67141DE5; Mon, 6 Mar 2023 11:22:24 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 3760140E50; Mon, 6 Mar 2023 11:22:24 +0100 (CET) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 40A9340A8A for ; Mon, 6 Mar 2023 11:22:22 +0100 (CET) Received: from frapeml100007.china.huawei.com (unknown [172.18.147.200]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4PVZM425L0z6J9hc; Mon, 6 Mar 2023 18:19:44 +0800 (CST) Received: from frapeml500007.china.huawei.com (7.182.85.172) by frapeml100007.china.huawei.com (7.182.85.133) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.21; Mon, 6 Mar 2023 11:22:20 +0100 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.021; Mon, 6 Mar 2023 11:22:20 +0100 From: Konstantin Ananyev To: Ferruh Yigit , Konstantin Ananyev , "dev@dpdk.org" Subject: RE: [PATCH 1/5] ethdev: fix race-condition of proactive error handling mode Thread-Topic: [PATCH 1/5] ethdev: fix race-condition of proactive error handling mode Thread-Index: AQHZS+uvQnCnmh+sv0S0/W2/2wgHVa7nZ26wgAHQp4CAAwPJgIABLjQAgAAlK+A= Date: Mon, 6 Mar 2023 10:22:20 +0000 Message-ID: <9092fdae9c1d4c53a00a8f23eb1129ec@huawei.com> References: <20230301030610.49468-1-fengchengwen@huawei.com> <20230301030610.49468-2-fengchengwen@huawei.com> <0f387ca1eee34a7f92745de7b59a71a1@huawei.com> <18c5b676-ae72-e646-89af-d6cd636d923f@yandex.ru> <5b40049f-6f22-fc3f-b13e-da1793c2fd1a@amd.com> In-Reply-To: <5b40049f-6f22-fc3f-b13e-da1793c2fd1a@amd.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.195.247.106] 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 DQoNCj4gPj4+PiBJbiB0aGUgcHJvYWN0aXZlIGVycm9yIGhhbmRsaW5nIG1vZGUsIHRoZSBQTUQg d2lsbCBzZXQgdGhlIGRhdGEgcGF0aA0KPiA+Pj4+IHBvaW50ZXJzIHRvIGR1bW15IGZ1bmN0aW9u cyBhbmQgdGhlbiB0cnkgcmVjb3ZlcnksIGluIHRoaXMgcGVyaW9kIHRoZQ0KPiA+Pj4+IGFwcGxp Y2F0aW9uIG1heSBzdGlsbCBpbnZva2luZyBkYXRhIHBhdGggQVBJLiBUaGlzIHdpbGwgaW50cm9k dWNlIGENCj4gPj4+PiByYWNlLWNvbmRpdGlvbiB3aXRoIGRhdGEgcGF0aCB3aGljaCBtYXkgbGVh ZCB0byBjcmFzaCBbMV0uDQo+ID4+Pj4NCj4gPj4+PiBBbHRob3VnaCB0aGUgUE1EIGFkZGVkIGRl bGF5IGFmdGVyIHNldHRpbmcgZGF0YSBwYXRoIHBvaW50ZXJzIHRvIGNvdmVyDQo+ID4+Pj4gdGhl IGFib3ZlIHJhY2UtY29uZGl0aW9uLCBpdCByZWR1Y2VzIHRoZSBwcm9iYWJpbGl0eSwgYnV0IGl0 IGRvZXNuJ3QNCj4gPj4+PiBzb2x2ZSB0aGUgcHJvYmxlbS4NCj4gPj4+Pg0KPiA+Pj4+IFRvIHNv bHZlIHRoZSByYWNlLWNvbmRpdGlvbiBwcm9ibGVtIGZ1bmRhbWVudGFsbHksIHRoZSBmb2xsb3dp bmcNCj4gPj4+PiByZXF1aXJlbWVudHMgYXJlIGFkZGVkOg0KPiA+Pj4+IDEuIFRoZSBQTUQgc2hv dWxkIHNldCB0aGUgZGF0YSBwYXRoIHBvaW50ZXJzIHRvIGR1bW15IGZ1bmN0aW9ucyBhZnRlcg0K PiA+Pj4+IMKgwqDCoCByZXBvcnQgUlRFX0VUSF9FVkVOVF9FUlJfUkVDT1ZFUklORyBldmVudC4N Cj4gPj4+PiAyLiBUaGUgYXBwbGljYXRpb24gc2hvdWxkIHN0b3AgZGF0YSBwYXRoIEFQSSBpbnZv Y2F0aW9uIHdoZW4gcHJvY2Vzcw0KPiA+Pj4+IMKgwqDCoCB0aGUgUlRFX0VUSF9FVkVOVF9FUlJf UkVDT1ZFUklORyBldmVudC4NCj4gPj4+PiAzLiBUaGUgUE1EIHNob3VsZCBzZXQgdGhlIGRhdGEg cGF0aCBwb2ludGVycyB0byB2YWxpZCBmdW5jdGlvbnMgYmVmb3JlDQo+ID4+Pj4gwqDCoMKgIHJl cG9ydCBSVEVfRVRIX0VWRU5UX1JFQ09WRVJZX1NVQ0NFU1MgZXZlbnQuDQo+ID4+Pj4gNC4gVGhl IGFwcGxpY2F0aW9uIHNob3VsZCBlbmFibGUgZGF0YSBwYXRoIEFQSSBpbnZvY2F0aW9uIHdoZW4g cHJvY2Vzcw0KPiA+Pj4+IMKgwqDCoCB0aGUgUlRFX0VUSF9FVkVOVF9SRUNPVkVSWV9TVUNDRVNT IGV2ZW50Lg0KPiA+Pj4+DQo+ID4+DQo+ID4+IEhvdyB0aGlzIGlzIHNvbHZpbmcgdGhlIHJhY2Ut Y29uZGl0aW9uLCBieSBwdXNoaW5nIHJlc3BvbnNpYmlsaXR5IHRvDQo+ID4+IHN0b3AgZGF0YSBw YXRoIHRvIGFwcGxpY2F0aW9uPw0KPiA+DQo+ID4gRXhhY3RseSwgaXQgYmVjb21lcyBhcHBsaWNh dGlvbiByZXNwb25zaWJpbGl0eSB0byBtYWtlIHN1cmUgZGF0YS1wYXRoIGlzDQo+ID4gc3RvcHBl ZC9zdXNwZW5kZWQgYmVmb3JlIHJlY292ZXJ5IHdpbGwgY29udGludWUuDQo+ID4NCj4gDQo+IEZy b20gZG9jdW1lbnRhdGlvbiBvZiB0aGUgZmVhdHVyZToNCj4gDQo+IGBgDQo+IEJlY2F1c2UgdGhl IFBNRCByZWNvdmVycyBhdXRvbWF0aWNhbGx5LA0KPiB0aGUgYXBwbGljYXRpb24gY2FuIG9ubHkg c2Vuc2UgdGhhdCB0aGUgZGF0YSBmbG93IGlzIGRpc2Nvbm5lY3RlZCBmb3IgYQ0KPiB3aGlsZSBh bmQgdGhlIGNvbnRyb2wgQVBJIHJldHVybnMgYW4gZXJyb3IgaW4gdGhpcyBwZXJpb2QuDQo+IA0K PiBJbiBvcmRlciB0byBzZW5zZSB0aGUgZXJyb3IgaGFwcGVuaW5nL3JlY292ZXJpbmcsIGFzIHdl bGwgYXMgdG8gcmVzdG9yZQ0KPiBzb21lIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiwgdGhyZWUg ZXZlbnRzIGFyZSBhdmFpbGFibGU6DQo+IGBgDQo+IA0KPiBJdCBsb29rcyBsaWtlIGluaXRpYWwg ZGVzaWduIGlzIHRvIHVzZSBldmVudHMgbWFpbmx5IGluZm9ybSBhcHBsaWNhdGlvbg0KPiBhYm91 dCB3aGF0IGhhcHBlbmVkIGFuZCBtYWlubHkgZm9yIHJlLWNvbmZpZ3VyYXRpb24uDQo+IA0KPiBB bHRob3VnaCBJIGFtIGRvbid0IGRpc2FncmVlIHRvIGludm9sdmUgdGhlIGFwcGxpY2F0aW9uLCBJ IGFtIG5vdCBzdXJlDQo+IHRoYXQgaXMgcGFydCBvZiBjdXJyZW50IGRlc2lnbi4NCg0KSSB0aG91 Z2h0IHdlIGFsbCBhZ3JlZWQgdGhhdCBpbml0aWFsIGRlc2lnbiBjb250YWluIHNvbWUgZmFsbGFj aWVzIHRoYXQNCm5lZWQgdG8gZml4ZWQsIG5vPw0KU3RhdGVtZW50IHRoYXQgd2l0aCBjdXJyZW50 IHJ0ZV9ldGhkZXYgZGVzaWduIGVycm9yIHJlY292ZXJ5IGNhbiBiZSBkb25lDQp3aXRob3V0IGlu dGVyYWN0aW9uIHdpdGggdGhlIGFwcCAodG8gc3RvcC9zdXNwZW5kIGRhdGEvY29udHJvbCBwYXRo KQ0KaXMgdGhlIG1haW4gb25lIEkgdGhpbmsuDQpJdCBuZWVkcyBzb21lIGludGVyYWN0aW9uIHdp dGggYXBwIGxheWVyLCBvbmUgd2F5IG9yIGFub3RoZXIuIA0KDQo+ID4+DQo+ID4+IFdoYXQgaWYg YXBwbGljYXRpb24gaXMgbm90IGludGVyZXN0ZWQgaW4gcmVjb3ZlcnkgbW9kZXMgYXQgYWxsIGFu ZCBub3QNCj4gPj4gcmVnaXN0ZXJlZCBhbnkgY2FsbGJhY2sgZm9yIHRoZSByZWNvdmVyeT8NCj4g Pg0KPiA+DQo+ID4gQXJlIHlvdSBzYXlpbmcgdGhlcmUgaXMgbm8gd2F5IGZvciBhcHBsaWNhdGlv biB0byBkaXNhYmxlDQo+ID4gYXV0b21hdGljIHJlY292ZXJ5IGluIFBNRCBpZiBpdCBpcyBub3Qg aW50ZXJlc3RlZA0KPiA+IChvciBjYW4ndCBmdWxsLWZpbGwgcGVyLXJlcXVlc3RpZXMgZm9yIGl0 KT8NCj4gPiBJZiBzbywgdGhlbiB5ZXMgaXQgaXMgYSBwcm9ibGVtIGFuZCB3ZSBuZWVkIHRvIGZp eCBpdC4NCj4gPiBJIGFzc3VtZWQgdGhhdCBzdWNoIG1lY2hhbmlzbSB0byBkaXNhYmxlIHVud2Fu dGVkIGV2ZW50cyBhbHJlYWR5IGV4aXN0cywNCj4gPiBidXQgSSBjYW4ndCBmaW5kIGFueXRoaW5n Lg0KPiA+IFdvbmRlciB3aGF0IHdvdWxkIGJlIHRoZSBlYXNpZXN0IHdheSBoZXJlIC0gY2FuIFBN RCBtYWtlIGEgZGVjaXNpb24NCj4gPiBiYXNlZCBvbiBjYWxsYmFjayByZXR1cm4gdmFsdWUsIG9y IGRvIHdlIG5lZWQgYSBuZXcgQVBJIHRvDQo+ID4gZW5hYmxlL2Rpc2FibGUgY2FsbGJhY2tzLCBv ciAuLi4/DQo+ID4NCj4gPg0KPiANCj4gQXMgZmFyIGFzIEkgY2FuIHNlZSBhdXRvbWF0aWMgcmVj b3ZlcnkgaXMgbm90IGNvbmZpZ3VyYWJsZSBieSBhcHAuDQo+IA0KPiBCdXQgdGhhdCBpcyBub3Qg YWxsLCBQTUQgc2VuZHMgZXZlbnRzIHRvIGFwcGxpY2F0aW9uIGJ1dCBQTUQgY2FuJ3Qga25vdw0K PiBpZiBhcHBsaWNhdGlvbiBpcyBoYW5kbGluZyB0aGVtIG9yIG5vdCwgc28gd2l0aCBjdXJyZW50 IGRlc2lnbiBQTUQgY2FuJ3QNCj4gcmVseSBvbiB0byBhcHAuDQoNCldlbGwsIFBNRCBpbnZva2Vz IHVzZXIgcHJvdmlkZWQgY2FsbGJhY2suDQpPbmUgd2F5IHRvIGZpeCB0aGF0IHByb2JsZW0gLSBp ZiB0aGVyZSBpcyBubyBjYWxsYmFjayBwcm92aWRlZCwNCm9yIGNhbGxiYWNrIHJldHVybnMgYW4g ZXJyb3IgY29kZSAtIFBNRCBjYW4gYXNzdW1lIHRoYXQgcmVjb3ZlcnkNCnNob3VsZCBub3QgYmUg ZG9uZS4NClRoYXQgaXMgcHJvYmFibHkgbm90IHRoZSBiZXN0IGRlc2lnbiBjaG9pY2UsIGJ1dCBh dCBsZWFzdCBpdCB3aWxsIGFsbG93DQp0byBmaXggdGhlIHByb2JsZW0gd2l0aG91dCB0b28gbWFu eSBjaGFuZ2VzIGFuZCBpbnRyb2R1Y2luZyBuZXcgQVBJLg0KVGhhdCBjb3VsZCBiZSBzb3J0IG9m IGEgJ3F1aWNrIGZpeCcuDQpJbiBhIG1lYW53aGlsZSB3ZSBjYW4gdGhpbmsgYWJvdXQgbmV3L2Jl dHRlciBhcHByb2FjaCBmb3IgdGhhdC4gICAgDQoNCj4gDQo+ID4+IEkgdGhpbmsgZHJpdmVyIHNo b3VsZCBub3QgcmVseSBvbiBhcHBsaWNhdGlvbiBmb3IgdGhpcywgdW5sZXNzDQo+ID4+IGFwcGxp Y2F0aW9uIGV4cGxpY2l0bHkgc2F5cyAodG8gZHJpdmVyKSB0aGF0IGl0IGlzIGhhbmRsaW5nIHJl Y292ZXJ5LA0KPiA+PiByaWdodCBub3cgdGhlcmUgaXMgbm8gd2F5IGZvciBkcml2ZXIgdG8ga25v dyB0aGlzLg0KPiA+DQo+ID4gSSB0aGluayBpdCBpcyB2aXNhLXZlcnNhOg0KPiA+IGFwcGxpY2F0 aW9uIHNob3VsZCBub3QgZW5hYmxlIGF1dG8tcmVjb3ZlcnkgaWYgaXQgY2FuJ3QgbWVldA0KPiA+ IHBlci1yZXF1ZXN0c3RpZXMgZm9yIGl0IChwcm92aWRlIGFwcHJvcHJpYXRlIGNhbGxiYWNrKS4N Cj4gPg0KPiANCj4gSSBhZ3JlZSBvbiBhYm92ZSwgd2UgYXJlIHNheWluZyBzaW1pbGFyIHRoaW5n IGluIGRpZmZlcmVudCBwZXJzcGVjdGl2ZS4NCg0KT2ssIHRoYXQncyBnb29kIHdlIGFyZSBvbiB0 aGUgc2FtZSBwYWdlLg0KIA0KDQo+IA0KPiA+DQo+ID4+DQo+ID4+Pj4gQWxzbywgdGhpcyBwYXRj aCBpbnRyb2R1Y2UgYSBkcml2ZXIgaW50ZXJuYWwgZnVuY3Rpb24NCj4gPj4+PiBydGVfZXRoX2Zw X29wc19zZXR1cCB3aGljaCB1c2VkIGFzIGFuIGhlbHAgZnVuY3Rpb24gZm9yIFBNRC4NCj4gPj4+ Pg0KPiA+Pj4+IFsxXQ0KPiA+Pj4+IGh0dHA6Ly9wYXRjaHdvcmsuZHBkay5vcmcvcHJvamVjdC9k cGRrL3BhdGNoLzIwMjMwMjIwMDYwODM5LjEyNjczNDktMi1hc2hvay5rLmthbGFkaUBpbnRlbC5j b20vDQo+ID4+Pj4NCj4gPj4+PiBGaXhlczogZWIwZDQ3MWE4OTQxICgiZXRoZGV2OiBhZGQgcHJv YWN0aXZlIGVycm9yIGhhbmRsaW5nIG1vZGUiKQ0KPiA+Pj4+IENjOiBzdGFibGVAZHBkay5vcmcN Cj4gPj4+Pg0KPiA+Pj4+IFNpZ25lZC1vZmYtYnk6IENoZW5nd2VuIEZlbmcgPGZlbmdjaGVuZ3dl bkBodWF3ZWkuY29tPg0KPiA+Pj4+IC0tLQ0KPiA+Pj4+IMKgIGRvYy9ndWlkZXMvcHJvZ19ndWlk ZS9wb2xsX21vZGVfZHJ2LnJzdCB8IDIwICsrKysrKystLS0tLS0tLS0NCj4gPj4+PiDCoCBsaWIv ZXRoZGV2L2V0aGRldl9kcml2ZXIuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA4ICsr KysrKysNCj4gPj4+PiDCoCBsaWIvZXRoZGV2L2V0aGRldl9kcml2ZXIuaMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHwgMTAgKysrKysrKysNCj4gPj4+PiDCoCBsaWIvZXRoZGV2L3J0ZV9ldGhk ZXYuaMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgMzINCj4gPj4+PiArKysrKysr KysrKysrKystLS0tLS0tLS0tDQo+ID4+Pj4gwqAgbGliL2V0aGRldi92ZXJzaW9uLm1hcMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDEgKw0KPiA+Pj4+IMKgIDUgZmlsZXMg Y2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pDQo+ID4+Pj4NCj4gPj4+ PiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9wcm9nX2d1aWRlL3BvbGxfbW9kZV9kcnYucnN0DQo+ ID4+Pj4gYi9kb2MvZ3VpZGVzL3Byb2dfZ3VpZGUvcG9sbF9tb2RlX2Rydi5yc3QNCj4gPj4+PiBp bmRleCBjMTQ1YTkwNjZjLi5lMzgwZmYxMzVhIDEwMDY0NA0KPiA+Pj4+IC0tLSBhL2RvYy9ndWlk ZXMvcHJvZ19ndWlkZS9wb2xsX21vZGVfZHJ2LnJzdA0KPiA+Pj4+ICsrKyBiL2RvYy9ndWlkZXMv cHJvZ19ndWlkZS9wb2xsX21vZGVfZHJ2LnJzdA0KPiA+Pj4+IEBAIC02MzgsMTQgKzYzOCw5IEBA IGRpZmZlcmVudCBmcm9tIHRoZSBhcHBsaWNhdGlvbiBpbnZva2VzIHJlY292ZXJ5DQo+ID4+Pj4g aW4gUEFTU0lWRSBtb2RlLA0KPiA+Pj4+IMKgIHRoZSBQTUQgYXV0b21hdGljYWxseSByZWNvdmVy cyBmcm9tIGVycm9yIGluIFBST0FDVElWRSBtb2RlLA0KPiA+Pj4+IMKgIGFuZCBvbmx5IGEgc21h bGwgYW1vdW50IG9mIHdvcmsgaXMgcmVxdWlyZWQgZm9yIHRoZSBhcHBsaWNhdGlvbi4NCj4gPj4+ Pg0KPiA+Pj4+IC1EdXJpbmcgZXJyb3IgZGV0ZWN0aW9uIGFuZCBhdXRvbWF0aWMgcmVjb3Zlcnks DQo+ID4+Pj4gLXRoZSBQTUQgc2V0cyB0aGUgZGF0YSBwYXRoIHBvaW50ZXJzIHRvIGR1bW15IGZ1 bmN0aW9ucw0KPiA+Pj4+IC0od2hpY2ggd2lsbCBwcmV2ZW50IHRoZSBjcmFzaCksDQo+ID4+Pj4g LWFuZCBhbHNvIG1ha2Ugc3VyZSB0aGUgY29udHJvbCBwYXRoIG9wZXJhdGlvbnMgZmFpbCB3aXRo IGEgcmV0dXJuDQo+ID4+Pj4gY29kZSBgYC1FQlVTWWBgLg0KPiA+Pj4+IC0NCj4gPj4+PiAtQmVj YXVzZSB0aGUgUE1EIHJlY292ZXJzIGF1dG9tYXRpY2FsbHksDQo+ID4+Pj4gLXRoZSBhcHBsaWNh dGlvbiBjYW4gb25seSBzZW5zZSB0aGF0IHRoZSBkYXRhIGZsb3cgaXMgZGlzY29ubmVjdGVkDQo+ ID4+Pj4gZm9yIGEgd2hpbGUNCj4gPj4+PiAtYW5kIHRoZSBjb250cm9sIEFQSSByZXR1cm5zIGFu IGVycm9yIGluIHRoaXMgcGVyaW9kLg0KPiA+Pj4+ICtEdXJpbmcgZXJyb3IgZGV0ZWN0aW9uIGFu ZCBhdXRvbWF0aWMgcmVjb3ZlcnksIHRoZSBQTUQgc2V0cyB0aGUNCj4gPj4+PiBkYXRhIHBhdGgN Cj4gPj4+PiArcG9pbnRlcnMgdG8gZHVtbXkgZnVuY3Rpb25zIGFuZCBhbHNvIG1ha2Ugc3VyZSB0 aGUgY29udHJvbCBwYXRoDQo+ID4+Pj4gb3BlcmF0aW9ucw0KPiA+Pj4+ICtmYWlsZWQgd2l0aCBh IHJldHVybiBjb2RlIGBgLUVCVVNZYGAuDQo+ID4+Pj4NCj4gPj4+PiDCoCBJbiBvcmRlciB0byBz ZW5zZSB0aGUgZXJyb3IgaGFwcGVuaW5nL3JlY292ZXJpbmcsDQo+ID4+Pj4gwqAgYXMgd2VsbCBh cyB0byByZXN0b3JlIHNvbWUgYWRkaXRpb25hbCBjb25maWd1cmF0aW9uLA0KPiA+Pj4+IEBAIC02 NTMsOSArNjQ4LDkgQEAgdGhyZWUgZXZlbnRzIGFyZSBhdmFpbGFibGU6DQo+ID4+Pj4NCj4gPj4+ PiDCoCBgYFJURV9FVEhfRVZFTlRfRVJSX1JFQ09WRVJJTkdgYA0KPiA+Pj4+IMKgwqDCoMKgIE5v dGlmeSB0aGUgYXBwbGljYXRpb24gdGhhdCBhbiBlcnJvciBpcyBkZXRlY3RlZA0KPiA+Pj4+IC3C oMKgIGFuZCB0aGUgcmVjb3ZlcnkgaXMgYmVpbmcgc3RhcnRlZC4NCj4gPj4+PiArwqDCoCBhbmQg dGhlIHJlY292ZXJ5IGlzIGFib3V0IHRvIHN0YXJ0Lg0KPiA+Pj4+IMKgwqDCoMKgIFVwb24gcmVj ZWl2aW5nIHRoZSBldmVudCwgdGhlIGFwcGxpY2F0aW9uIHNob3VsZCBub3QgaW52b2tlDQo+ID4+ Pj4gLcKgwqAgYW55IGNvbnRyb2wgcGF0aCBmdW5jdGlvbiB1bnRpbCByZWNlaXZpbmcNCj4gPj4+ PiArwqDCoCBhbnkgY29udHJvbCBhbmQgZGF0YSBwYXRoIEFQSSB1bnRpbCByZWNlaXZpbmcNCj4g Pj4+PiDCoMKgwqDCoCBgYFJURV9FVEhfRVZFTlRfUkVDT1ZFUllfU1VDQ0VTU2BgIG9yDQo+ID4+ Pj4gYGBSVEVfRVRIX0VWRU5UX1JFQ09WRVJZX0ZBSUxFRGBgIGV2ZW50Lg0KPiA+Pj4+DQo+ID4+ Pj4gwqAgLi4gbm90ZTo6DQo+ID4+Pj4gQEAgLTY2Niw4ICs2NjEsOSBAQCB0aHJlZSBldmVudHMg YXJlIGF2YWlsYWJsZToNCj4gPj4+Pg0KPiA+Pj4+IMKgIGBgUlRFX0VUSF9FVkVOVF9SRUNPVkVS WV9TVUNDRVNTYGANCj4gPj4+PiDCoMKgwqDCoCBOb3RpZnkgdGhlIGFwcGxpY2F0aW9uIHRoYXQg dGhlIHJlY292ZXJ5IGZyb20gZXJyb3IgaXMgc3VjY2Vzc2Z1bCwNCj4gPj4+PiAtwqDCoCB0aGUg UE1EIGFscmVhZHkgcmUtY29uZmlndXJlcyB0aGUgcG9ydCwNCj4gPj4+PiAtwqDCoCBhbmQgdGhl IGVmZmVjdCBpcyB0aGUgc2FtZSBhcyBhIHJlc3RhcnQgb3BlcmF0aW9uLg0KPiA+Pj4+ICvCoMKg IHRoZSBQTUQgYWxyZWFkeSByZS1jb25maWd1cmVzIHRoZSBwb3J0Lg0KPiA+Pj4+ICvCoMKgIFRo ZSBhcHBsaWNhdGlvbiBzaG91bGQgcmVzdG9yZSBzb21lIGFkZGl0aW9uYWwgY29uZmlndXJhdGlv biwNCj4gPj4+PiBhbmQgdGhlbg0KPiA+Pj4+ICvCoMKgIGVuYWJsZSBkYXRhIHBhdGggQVBJIGlu dm9jYXRpb24uDQo+ID4+Pj4NCj4gPj4+PiDCoCBgYFJURV9FVEhfRVZFTlRfUkVDT1ZFUllfRkFJ TEVEYGANCj4gPj4+PiDCoMKgwqDCoCBOb3RpZnkgdGhlIGFwcGxpY2F0aW9uIHRoYXQgdGhlIHJl Y292ZXJ5IGZyb20gZXJyb3IgZmFpbGVkLA0KPiA+Pj4+IGRpZmYgLS1naXQgYS9saWIvZXRoZGV2 L2V0aGRldl9kcml2ZXIuYyBiL2xpYi9ldGhkZXYvZXRoZGV2X2RyaXZlci5jDQo+ID4+Pj4gaW5k ZXggMGJlMWU4Y2EwNC4uZjk5NDY1M2ZlOSAxMDA2NDQNCj4gPj4+PiAtLS0gYS9saWIvZXRoZGV2 L2V0aGRldl9kcml2ZXIuYw0KPiA+Pj4+ICsrKyBiL2xpYi9ldGhkZXYvZXRoZGV2X2RyaXZlci5j DQo+ID4+Pj4gQEAgLTUxNSw2ICs1MTUsMTQgQEAgcnRlX2V0aF9kbWFfem9uZV9mcmVlKGNvbnN0 IHN0cnVjdCBydGVfZXRoX2Rldg0KPiA+Pj4+ICpkZXYsIGNvbnN0IGNoYXIgKnJpbmdfbmFtZSwN Cj4gPj4+PiDCoMKgwqDCoMKgIHJldHVybiByYzsNCj4gPj4+PiDCoCB9DQo+ID4+Pj4NCj4gPj4+ PiArdm9pZA0KPiA+Pj4+ICtydGVfZXRoX2ZwX29wc19zZXR1cChzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldikNCj4gPj4+PiArew0KPiA+Pj4+ICvCoMKgwqAgaWYgKGRldiA9PSBOVUxMKQ0KPiA+Pj4+ ICvCoMKgwqDCoMKgwqDCoCByZXR1cm47DQo+ID4+Pj4gK8KgwqDCoCBldGhfZGV2X2ZwX29wc19z ZXR1cChydGVfZXRoX2ZwX29wcyArIGRldi0+ZGF0YS0+cG9ydF9pZCwgZGV2KTsNCj4gPj4+PiAr fQ0KPiA+Pj4+ICsNCj4gPj4+PiDCoCBjb25zdCBzdHJ1Y3QgcnRlX21lbXpvbmUgKg0KPiA+Pj4+ IMKgIHJ0ZV9ldGhfZG1hX3pvbmVfcmVzZXJ2ZShjb25zdCBzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRl diwgY29uc3QgY2hhcg0KPiA+Pj4+ICpyaW5nX25hbWUsDQo+ID4+Pj4gwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCB1aW50MTZfdCBxdWV1ZV9pZCwgc2l6ZV90IHNpemUsIHVuc2lnbmVkIGlu dCBhbGlnbiwNCj4gPj4+PiBkaWZmIC0tZ2l0IGEvbGliL2V0aGRldi9ldGhkZXZfZHJpdmVyLmgg Yi9saWIvZXRoZGV2L2V0aGRldl9kcml2ZXIuaA0KPiA+Pj4+IGluZGV4IDJjOWQ2MTVmYjUuLjBk OTY0ZDFmNjcgMTAwNjQ0DQo+ID4+Pj4gLS0tIGEvbGliL2V0aGRldi9ldGhkZXZfZHJpdmVyLmgN Cj4gPj4+PiArKysgYi9saWIvZXRoZGV2L2V0aGRldl9kcml2ZXIuaA0KPiA+Pj4+IEBAIC0xNjIx LDYgKzE2MjEsMTYgQEAgaW50DQo+ID4+Pj4gwqAgcnRlX2V0aF9kbWFfem9uZV9mcmVlKGNvbnN0 IHN0cnVjdCBydGVfZXRoX2RldiAqZXRoX2RldiwgY29uc3QNCj4gPj4+PiBjaGFyICpuYW1lLA0K PiA+Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVpbnQxNl90IHF1ZXVlX2lkKTsNCj4gPj4+Pg0K PiA+Pj4+ICsvKioNCj4gPj4+PiArICogQGludGVybmFsDQo+ID4+Pj4gKyAqIFNldHVwIGV0aCBm YXN0LXBhdGggQVBJIHRvIGV0aGRldiB2YWx1ZXMuDQo+ID4+Pj4gKyAqDQo+ID4+Pj4gKyAqIEBw YXJhbSBkZXYNCj4gPj4+PiArICrCoCBQb2ludGVyIHRvIHN0cnVjdCBydGVfZXRoX2Rldi4NCj4g Pj4+PiArICovDQo+ID4+Pj4gK19fcnRlX2ludGVybmFsDQo+ID4+Pj4gK3ZvaWQgcnRlX2V0aF9m cF9vcHNfc2V0dXAoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpOw0KPiA+Pj4+ICsNCj4gPj4+PiDC oCAvKioNCj4gPj4+PiDCoMKgICogQGludGVybmFsDQo+ID4+Pj4gwqDCoCAqIEF0b21pY2FsbHkg c2V0IHRoZSBsaW5rIHN0YXR1cyBmb3IgdGhlIHNwZWNpZmljIGRldmljZS4NCj4gPj4+PiBkaWZm IC0tZ2l0IGEvbGliL2V0aGRldi9ydGVfZXRoZGV2LmggYi9saWIvZXRoZGV2L3J0ZV9ldGhkZXYu aA0KPiA+Pj4+IGluZGV4IDA0OTY0MWQ1N2MuLjQ0ZWU3MjI5YzEgMTAwNjQ0DQo+ID4+Pj4gLS0t IGEvbGliL2V0aGRldi9ydGVfZXRoZGV2LmgNCj4gPj4+PiArKysgYi9saWIvZXRoZGV2L3J0ZV9l dGhkZXYuaA0KPiA+Pj4+IEBAIC0zOTQ0LDI1ICszOTQ0LDI4IEBAIGVudW0gcnRlX2V0aF9ldmVu dF90eXBlIHsNCj4gPj4+PiDCoMKgwqDCoMKgwqAgKi8NCj4gPj4+PiDCoMKgwqDCoMKgIFJURV9F VEhfRVZFTlRfUlhfQVZBSUxfVEhSRVNILA0KPiA+Pj4+IMKgwqDCoMKgwqAgLyoqIFBvcnQgcmVj b3ZlcmluZyBmcm9tIGEgaGFyZHdhcmUgb3IgZmlybXdhcmUgZXJyb3IuDQo+ID4+Pj4gLcKgwqDC oMKgICogSWYgUE1EIHN1cHBvcnRzIHByb2FjdGl2ZSBlcnJvciByZWNvdmVyeSwNCj4gPj4+PiAt wqDCoMKgwqAgKiBpdCBzaG91bGQgdHJpZ2dlciB0aGlzIGV2ZW50IHRvIG5vdGlmeSBhcHBsaWNh dGlvbg0KPiA+Pj4+IC3CoMKgwqDCoCAqIHRoYXQgaXQgZGV0ZWN0ZWQgYW4gZXJyb3IgYW5kIHRo ZSByZWNvdmVyeSBpcyBiZWluZyBzdGFydGVkLg0KPiA+Pj4+IC3CoMKgwqDCoCAqIFVwb24gcmVj ZWl2aW5nIHRoZSBldmVudCwgdGhlIGFwcGxpY2F0aW9uIHNob3VsZCBub3QgaW52b2tlDQo+ID4+ Pj4gYW55IGNvbnRyb2wgcGF0aCBBUEkNCj4gPj4+PiAtwqDCoMKgwqAgKiAoc3VjaCBhcyBydGVf ZXRoX2Rldl9jb25maWd1cmUvcnRlX2V0aF9kZXZfc3RvcC4uLikgdW50aWwNCj4gPj4+PiByZWNl aXZpbmcNCj4gPj4+PiAtwqDCoMKgwqAgKiBSVEVfRVRIX0VWRU5UX1JFQ09WRVJZX1NVQ0NFU1Mg b3INCj4gPj4+PiBSVEVfRVRIX0VWRU5UX1JFQ09WRVJZX0ZBSUxFRCBldmVudC4NCj4gPj4+PiAt wqDCoMKgwqAgKiBUaGUgUE1EIHdpbGwgc2V0IHRoZSBkYXRhIHBhdGggcG9pbnRlcnMgdG8gZHVt bXkgZnVuY3Rpb25zLA0KPiA+Pj4+IC3CoMKgwqDCoCAqIGFuZCByZS1zZXQgdGhlIGRhdGEgcGF0 aCBwb2ludGVycyB0byBub24tZHVtbXkgZnVuY3Rpb25zDQo+ID4+Pj4gLcKgwqDCoMKgICogYmVm b3JlIHJlcG9ydGluZyBSVEVfRVRIX0VWRU5UX1JFQ09WRVJZX1NVQ0NFU1MgZXZlbnQuDQo+ID4+ Pj4gLcKgwqDCoMKgICogSXQgbWVhbnMgdGhhdCB0aGUgYXBwbGljYXRpb24gY2Fubm90IHNlbmQg b3IgcmVjZWl2ZSBhbnkNCj4gPj4+PiBwYWNrZXRzDQo+ID4+Pj4gLcKgwqDCoMKgICogZHVyaW5n IHRoaXMgcGVyaW9kLg0KPiA+Pj4+ICvCoMKgwqDCoCAqDQo+ID4+Pj4gK8KgwqDCoMKgICogSWYg UE1EIHN1cHBvcnRzIHByb2FjdGl2ZSBlcnJvciByZWNvdmVyeSwgaXQgc2hvdWxkIHRyaWdnZXIN Cj4gPj4+PiB0aGlzDQo+ID4+Pj4gK8KgwqDCoMKgICogZXZlbnQgdG8gbm90aWZ5IGFwcGxpY2F0 aW9uIHRoYXQgaXQgZGV0ZWN0ZWQgYW4gZXJyb3IgYW5kIHRoZQ0KPiA+Pj4+ICvCoMKgwqDCoCAq IHJlY292ZXJ5IGlzIGFib3V0IHRvIHN0YXJ0Lg0KPiA+Pj4+ICvCoMKgwqDCoCAqDQo+ID4+Pj4g K8KgwqDCoMKgICogVXBvbiByZWNlaXZpbmcgdGhlIGV2ZW50LCB0aGUgYXBwbGljYXRpb24gc2hv dWxkIG5vdCBpbnZva2UgYW55DQo+ID4+Pj4gK8KgwqDCoMKgICogY29udHJvbCBhbmQgZGF0YSBw YXRoIEFQSSB1bnRpbCByZWNlaXZpbmcNCj4gPj4+PiArwqDCoMKgwqAgKiBSVEVfRVRIX0VWRU5U X1JFQ09WRVJZX1NVQ0NFU1Mgb3IgUlRFX0VUSF9FVkVOVF9SRUNPVkVSWV9GQUlMRUQNCj4gPj4+ PiArwqDCoMKgwqAgKiBldmVudC4NCj4gPj4+PiArwqDCoMKgwqAgKg0KPiA+Pj4+ICvCoMKgwqDC oCAqIE9uY2UgdGhpcyBldmVudCBpcyByZXBvcnRlZCwgdGhlIFBNRCB3aWxsIHNldCB0aGUgZGF0 YSBwYXRoDQo+ID4+Pj4gcG9pbnRlcnMNCj4gPj4+PiArwqDCoMKgwqAgKiB0byBkdW1teSBmdW5j dGlvbnMsIGFuZCByZS1zZXQgdGhlIGRhdGEgcGF0aCBwb2ludGVycyB0byB2YWxpZA0KPiA+Pj4+ ICvCoMKgwqDCoCAqIGZ1bmN0aW9ucyBiZWZvcmUgcmVwb3J0aW5nIFJURV9FVEhfRVZFTlRfUkVD T1ZFUllfU1VDQ0VTUw0KPiA+Pj4+IGV2ZW50Lg0KPiA+Pj4+ICvCoMKgwqDCoCAqDQo+ID4+Pj4g wqDCoMKgwqDCoMKgICogQG5vdGUgQmVmb3JlIHRoZSBQTUQgcmVwb3J0cyB0aGUgcmVjb3Zlcnkg cmVzdWx0LA0KPiA+Pj4+IMKgwqDCoMKgwqDCoCAqIHRoZSBQTUQgbWF5IHJlcG9ydCB0aGUgUlRF X0VUSF9FVkVOVF9FUlJfUkVDT1ZFUklORyBldmVudA0KPiA+Pj4+IGFnYWluLA0KPiA+Pj4+IMKg wqDCoMKgwqDCoCAqIGJlY2F1c2UgYSBsYXJnZXIgZXJyb3IgbWF5IG9jY3VyIGR1cmluZyB0aGUg cmVjb3ZlcnkuDQo+ID4+Pj4gwqDCoMKgwqDCoMKgICovDQo+ID4+Pj4gwqDCoMKgwqDCoCBSVEVf RVRIX0VWRU5UX0VSUl9SRUNPVkVSSU5HLA0KPiA+Pj4+IMKgwqDCoMKgwqAgLyoqIFBvcnQgcmVj b3ZlcnMgc3VjY2Vzc2Z1bGx5IGZyb20gdGhlIGVycm9yLg0KPiA+Pj4+IC3CoMKgwqDCoCAqIFRo ZSBQTUQgYWxyZWFkeSByZS1jb25maWd1cmVkIHRoZSBwb3J0LA0KPiA+Pj4+IC3CoMKgwqDCoCAq IGFuZCB0aGUgZWZmZWN0IGlzIHRoZSBzYW1lIGFzIGEgcmVzdGFydCBvcGVyYXRpb24uDQo+ID4+ Pj4gK8KgwqDCoMKgICoNCj4gPj4+PiArwqDCoMKgwqAgKiBUaGUgUE1EIGFscmVhZHkgcmUtY29u ZmlndXJlZCB0aGUgcG9ydDoNCj4gPj4+PiDCoMKgwqDCoMKgwqAgKiBhKSBUaGUgZm9sbG93aW5n IG9wZXJhdGlvbiB3aWxsIGJlIHJldGFpbmVkOiAoYWxwaGFiZXRpY2FsbHkpDQo+ID4+Pj4gwqDC oMKgwqDCoMKgICrCoMKgwqAgLSBEQ0IgY29uZmlndXJhdGlvbg0KPiA+Pj4+IMKgwqDCoMKgwqDC oCAqwqDCoMKgIC0gRkVDIGNvbmZpZ3VyYXRpb24NCj4gPj4+PiBAQCAtMzk4OSw2ICszOTkyLDkg QEAgZW51bSBydGVfZXRoX2V2ZW50X3R5cGUgew0KPiA+Pj4+IMKgwqDCoMKgwqDCoCAqwqDCoMKg wqDCoCAoQHNlZSBSVEVfRVRIX0RFVl9DQVBBX0ZMT1dfU0hBUkVEX09CSkVDVF9LRUVQKQ0KPiA+ Pj4+IMKgwqDCoMKgwqDCoCAqIGMpIEFueSBvdGhlciBjb25maWd1cmF0aW9uIHdpbGwgbm90IGJl IHN0b3JlZA0KPiA+Pj4+IMKgwqDCoMKgwqDCoCAqwqDCoMKgIGFuZCB3aWxsIG5lZWQgdG8gYmUg cmUtY29uZmlndXJlZC4NCj4gPj4+PiArwqDCoMKgwqAgKg0KPiA+Pj4+ICvCoMKgwqDCoCAqIFRo ZSBhcHBsaWNhdGlvbiBzaG91bGQgcmVzdG9yZSBzb21lIGFkZGl0aW9uYWwgY29uZmlndXJhdGlv bg0KPiA+Pj4+ICvCoMKgwqDCoCAqIChzZWUgYWJvdmUgY2FzZSBiL2MpLCBhbmQgdGhlbiBlbmFi bGUgZGF0YSBwYXRoIEFQSSBpbnZvY2F0aW9uLg0KPiA+Pj4+IMKgwqDCoMKgwqDCoCAqLw0KPiA+ Pj4+IMKgwqDCoMKgwqAgUlRFX0VUSF9FVkVOVF9SRUNPVkVSWV9TVUNDRVNTLA0KPiA+Pj4+IMKg wqDCoMKgwqAgLyoqIFBvcnQgcmVjb3ZlcnkgZmFpbGVkLg0KPiA+Pj4+IGRpZmYgLS1naXQgYS9s aWIvZXRoZGV2L3ZlcnNpb24ubWFwIGIvbGliL2V0aGRldi92ZXJzaW9uLm1hcA0KPiA+Pj4+IGlu ZGV4IDM1N2QxYTg4YzAuLmMyNzNlMGJkYWUgMTAwNjQ0DQo+ID4+Pj4gLS0tIGEvbGliL2V0aGRl di92ZXJzaW9uLm1hcA0KPiA+Pj4+ICsrKyBiL2xpYi9ldGhkZXYvdmVyc2lvbi5tYXANCj4gPj4+ PiBAQCAtMzIwLDYgKzMyMCw3IEBAIElOVEVSTkFMIHsNCj4gPj4+PiDCoMKgwqDCoMKgIHJ0ZV9l dGhfZGV2aWNlczsNCj4gPj4+PiDCoMKgwqDCoMKgIHJ0ZV9ldGhfZG1hX3pvbmVfZnJlZTsNCj4g Pj4+PiDCoMKgwqDCoMKgIHJ0ZV9ldGhfZG1hX3pvbmVfcmVzZXJ2ZTsNCj4gPj4+PiArwqDCoMKg IHJ0ZV9ldGhfZnBfb3BzX3NldHVwOw0KPiA+Pj4+IMKgwqDCoMKgwqAgcnRlX2V0aF9oYWlycGlu X3F1ZXVlX3BlZXJfYmluZDsNCj4gPj4+PiDCoMKgwqDCoMKgIHJ0ZV9ldGhfaGFpcnBpbl9xdWV1 ZV9wZWVyX3VuYmluZDsNCj4gPj4+PiDCoMKgwqDCoMKgIHJ0ZV9ldGhfaGFpcnBpbl9xdWV1ZV9w ZWVyX3VwZGF0ZTsNCj4gPj4+PiAtLQ0KPiA+Pj4gwqAgQWNrZWQtYnk6IEtvbnN0YW50aW4gQW5h bnlldiA8a29uc3RhbnRpbi5hbmFueWV2QGh1YXdlaS5jb20+DQo+ID4+Pg0KPiA+Pj4+IDIuMTcu MQ0KPiA+Pj4NCj4gPj4NCj4gPg0KDQo=