From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mgamail.intel.com (mgamail.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id C2AD810E8B1 for ; Fri, 1 Dec 2023 14:09:13 +0000 (UTC) From: "Souza, Jose" To: "igt-dev@lists.freedesktop.org" , "Dugast, Francois" Date: Fri, 1 Dec 2023 14:09:09 +0000 Message-ID: <3808cde37552152efd5a8b57d0ee8d0b91c11128.camel@intel.com> References: <20231130184536.7-1-francois.dugast@intel.com> <20231130184536.7-9-francois.dugast@intel.com> In-Reply-To: <20231130184536.7-9-francois.dugast@intel.com> Content-Language: en-US Content-Type: text/plain; charset="utf-8" Content-ID: <5C518DBEDA57FE44A749802993BE3FB5@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH v5 08/21] drm-uapi/xe: Make DRM_XE_DEVICE_QUERY_ENGINES future proof List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "Vivi, Rodrigo" Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" List-ID: T24gVGh1LCAyMDIzLTExLTMwIGF0IDE4OjQ1ICswMDAwLCBGcmFuY29pcyBEdWdhc3Qgd3JvdGU6 DQo+IEZyb206IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4NCj4gDQo+IEFs aWduIHdpdGgga2VybmVsIGNvbW1pdCAoImRybS94ZTogTWFrZSBEUk1fWEVfREVWSUNFX1FVRVJZ X0VOR0lORVMgZnV0dXJlIHByb29mIikNCj4gDQo+IFNpZ25lZC1vZmYtYnk6IFJvZHJpZ28gVml2 aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4NCj4gU2lnbmVkLW9mZi1ieTogRnJhbmNvaXMgRHVn YXN0IDxmcmFuY29pcy5kdWdhc3RAaW50ZWwuY29tPg0KPiAtLS0NCj4gIGJlbmNobWFya3MvZ2Vt X3dzaW0uYyAgICAgICAgICAgICB8ICAyICstDQo+ICBpbmNsdWRlL2RybS11YXBpL3hlX2RybS5o ICAgICAgICAgfCAyNCArKysrKysrKysrKysrKysrKysrKysrKy0NCj4gIGxpYi94ZS94ZV9xdWVy eS5jICAgICAgICAgICAgICAgICB8IDE2ICsrKysrKysrLS0tLS0tLS0NCj4gIGxpYi94ZS94ZV9x dWVyeS5oICAgICAgICAgICAgICAgICB8ICA4ICsrKystLS0tDQo+ICB0ZXN0cy9pbnRlbC94ZV9j cmVhdGUuYyAgICAgICAgICAgfCAgNyArKysrLS0tDQo+ICB0ZXN0cy9pbnRlbC94ZV9kcm1fZmRp bmZvLmMgICAgICAgfCAgNSArKystLQ0KPiAgdGVzdHMvaW50ZWwveGVfZXhlY19zdG9yZS5jICAg ICAgIHwgIDggKysrKy0tLS0NCj4gIHRlc3RzL2ludGVsL3hlX2ludGVsX2JiLmMgICAgICAgICB8 ICAzICsrLQ0KPiAgdGVzdHMvaW50ZWwveGVfbm9leGVjX3BpbmdfcG9uZy5jIHwgIDUgKysrLS0N Cj4gIHRlc3RzL2ludGVsL3hlX3dhaXRmZW5jZS5jICAgICAgICB8ICA2ICsrKy0tLQ0KPiAgMTAg ZmlsZXMgY2hhbmdlZCwgNTUgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pDQo+IA0KPiBk aWZmIC0tZ2l0IGEvYmVuY2htYXJrcy9nZW1fd3NpbS5jIGIvYmVuY2htYXJrcy9nZW1fd3NpbS5j DQo+IGluZGV4IGFiYmU0OWEwNi4uNTE0ZmE0YmE3IDEwMDY0NA0KPiAtLS0gYS9iZW5jaG1hcmtz L2dlbV93c2ltLmMNCj4gKysrIGIvYmVuY2htYXJrcy9nZW1fd3NpbS5jDQo+IEBAIC02ODksNyAr Njg5LDcgQEAgeGVfZ2V0X2RlZmF1bHRfZW5naW5lKHZvaWQpDQo+ICAJc3RydWN0IGRybV94ZV9l bmdpbmVfY2xhc3NfaW5zdGFuY2UgZGVmYXVsdF9od2UsICpod2U7DQo+ICANCj4gIAkvKiBzZWxl Y3QgUkNTMCB8IENDUzAgb3IgZmlyc3QgYXZhaWxhYmxlIGVuZ2luZSAqLw0KPiAtCWRlZmF1bHRf aHdlID0gKnhlX2VuZ2luZShmZCwgMCk7DQo+ICsJZGVmYXVsdF9od2UgPSB4ZV9lbmdpbmUoZmQs IDApLT5pbnN0YW5jZTsNCj4gIAl4ZV9mb3JfZWFjaF9lbmdpbmUoZmQsIGh3ZSkgew0KPiAgCQlp ZiAoKGh3ZS0+ZW5naW5lX2NsYXNzID09IERSTV9YRV9FTkdJTkVfQ0xBU1NfUkVOREVSIHx8DQo+ ICAJCSAgICAgaHdlLT5lbmdpbmVfY2xhc3MgPT0gRFJNX1hFX0VOR0lORV9DTEFTU19DT01QVVRF KSAmJg0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0tdWFwaS94ZV9kcm0uaCBiL2luY2x1ZGUv ZHJtLXVhcGkveGVfZHJtLmgNCj4gaW5kZXggMDFlMDU4N2RjLi42ZTk3MjcwZGMgMTAwNjQ0DQo+ IC0tLSBhL2luY2x1ZGUvZHJtLXVhcGkveGVfZHJtLmgNCj4gKysrIGIvaW5jbHVkZS9kcm0tdWFw aS94ZV9kcm0uaA0KPiBAQCAtMTI0LDcgKzEyNCwxNCBAQCBzdHJ1Y3QgeGVfdXNlcl9leHRlbnNp b24gew0KPiAgI2RlZmluZSBEUk1fSU9DVExfWEVfRVhFQ19RVUVVRV9HRVRfUFJPUEVSVFkJRFJN X0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9YRV9FWEVDX1FVRVVFX0dFVF9QUk9QRVJUWSwg c3RydWN0IGRybV94ZV9leGVjX3F1ZXVlX2dldF9wcm9wZXJ0eSkNCj4gICNkZWZpbmUgRFJNX0lP Q1RMX1hFX1dBSVRfVVNFUl9GRU5DRQkJRFJNX0lPV1IoRFJNX0NPTU1BTkRfQkFTRSArIERSTV9Y RV9XQUlUX1VTRVJfRkVOQ0UsIHN0cnVjdCBkcm1feGVfd2FpdF91c2VyX2ZlbmNlKQ0KPiAgDQo+ IC0vKiogc3RydWN0IGRybV94ZV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgLSBpbnN0YW5jZSBvZiBh biBlbmdpbmUgY2xhc3MgKi8NCj4gKy8qKg0KPiArICogc3RydWN0IGRybV94ZV9lbmdpbmVfY2xh c3NfaW5zdGFuY2UgLSBpbnN0YW5jZSBvZiBhbiBlbmdpbmUgY2xhc3MNCj4gKyAqDQo+ICsgKiBJ dCBpcyByZXR1cm5lZCBhcyBwYXJ0IG9mIHRoZSBAZHJtX3hlX3F1ZXJ5X2VuZ2luZV9pbmZvLCBi dXQgaXQgYWxzbyBpcw0KPiArICogdXNlZCBhcyB0aGUgaW5wdXQgb2YgZW5naW5lIHNlbGVjdGlv biBmb3IgYm90aCBAZHJtX3hlX2V4ZWNfcXVldWVfY3JlYXRlDQo+ICsgKiBhbmQgQGRybV94ZV9x dWVyeV9lbmdpbmVfY3ljbGVzDQo+ICsgKg0KPiArICovDQo+ICBzdHJ1Y3QgZHJtX3hlX2VuZ2lu ZV9jbGFzc19pbnN0YW5jZSB7DQo+ICAjZGVmaW5lIERSTV9YRV9FTkdJTkVfQ0xBU1NfUkVOREVS CQkwDQo+ICAjZGVmaW5lIERSTV9YRV9FTkdJTkVfQ0xBU1NfQ09QWQkJMQ0KPiBAQCAtMTQ1LDYg KzE1MiwyMSBAQCBzdHJ1Y3QgZHJtX3hlX2VuZ2luZV9jbGFzc19pbnN0YW5jZSB7DQo+ICAJX191 MTYgcGFkOw0KPiAgfTsNCj4gIA0KPiArLyoqDQo+ICsgKiBzdHJ1Y3QgZHJtX3hlX3F1ZXJ5X2Vu Z2luZV9pbmZvIC0gZGVzY3JpYmUgaGFyZHdhcmUgZW5naW5lDQo+ICsgKg0KPiArICogSWYgYSBx dWVyeSBpcyBtYWRlIHdpdGggYSBzdHJ1Y3QgQGRybV94ZV9kZXZpY2VfcXVlcnkgd2hlcmUgLnF1 ZXJ5DQo+ICsgKiBpcyBlcXVhbCB0byAlRFJNX1hFX0RFVklDRV9RVUVSWV9FTkdJTkVTLCB0aGVu IHRoZSByZXBseSB1c2VzIGFuIGFycmF5IG9mDQo+ICsgKiBzdHJ1Y3QgQGRybV94ZV9xdWVyeV9l bmdpbmVfaW5mbyBpbiAuZGF0YS4NCj4gKyAqLw0KPiArc3RydWN0IGRybV94ZV9xdWVyeV9lbmdp bmVfaW5mbyB7DQo+ICsJLyoqIEBpbnN0YW5jZTogVGhlIEBkcm1feGVfZW5naW5lX2NsYXNzX2lu c3RhbmNlICovDQo+ICsJc3RydWN0IGRybV94ZV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgaW5zdGFu Y2U7DQo+ICsNCj4gKwkvKiogQHJlc2VydmVkOiBSZXNlcnZlZCAqLw0KPiArCV9fdTY0IHJlc2Vy dmVkWzNdOw0KPiArfTsNCj4gKw0KPiAgLyoqDQo+ICAgKiBlbnVtIGRybV94ZV9tZW1vcnlfY2xh c3MgLSBTdXBwb3J0ZWQgbWVtb3J5IGNsYXNzZXMuDQo+ICAgKi8NCj4gZGlmZiAtLWdpdCBhL2xp Yi94ZS94ZV9xdWVyeS5jIGIvbGliL3hlL3hlX3F1ZXJ5LmMNCj4gaW5kZXggZWY3YWFhNmExLi5m OWRlYzFmN2EgMTAwNjQ0DQo+IC0tLSBhL2xpYi94ZS94ZV9xdWVyeS5jDQo+ICsrKyBiL2xpYi94 ZS94ZV9xdWVyeS5jDQo+IEBAIC03MiwxMCArNzIsMTAgQEAgc3RhdGljIHVpbnQ2NF90IF9fbWVt b3J5X3JlZ2lvbnMoY29uc3Qgc3RydWN0IGRybV94ZV9xdWVyeV9ndF9saXN0ICpndF9saXN0KQ0K PiAgCXJldHVybiByZWdpb25zOw0KPiAgfQ0KPiAgDQo+IC1zdGF0aWMgc3RydWN0IGRybV94ZV9l bmdpbmVfY2xhc3NfaW5zdGFuY2UgKg0KPiAteGVfcXVlcnlfZW5naW5lc19uZXcoaW50IGZkLCB1 bnNpZ25lZCBpbnQgKm51bV9lbmdpbmVzKQ0KPiArc3RhdGljIHN0cnVjdCBkcm1feGVfcXVlcnlf ZW5naW5lX2luZm8gKg0KPiAreGVfcXVlcnlfZW5naW5lcyhpbnQgZmQsIHVuc2lnbmVkIGludCAq bnVtX2VuZ2luZXMpDQo+ICB7DQo+IC0Jc3RydWN0IGRybV94ZV9lbmdpbmVfY2xhc3NfaW5zdGFu Y2UgKmVuZ2luZXM7DQo+ICsJc3RydWN0IGRybV94ZV9xdWVyeV9lbmdpbmVfaW5mbyAqZW5naW5l czsNCj4gIAlzdHJ1Y3QgZHJtX3hlX2RldmljZV9xdWVyeSBxdWVyeSA9IHsNCj4gIAkJLmV4dGVu c2lvbnMgPSAwLA0KPiAgCQkucXVlcnkgPSBEUk1fWEVfREVWSUNFX1FVRVJZX0VOR0lORVMsDQo+ IEBAIC0yNTMsNyArMjUzLDcgQEAgc3RydWN0IHhlX2RldmljZSAqeGVfZGV2aWNlX2dldChpbnQg ZmQpDQo+ICAJeGVfZGV2LT5kZXZfaWQgPSB4ZV9kZXYtPmNvbmZpZy0+aW5mb1tEUk1fWEVfUVVF UllfQ09ORklHX1JFVl9BTkRfREVWSUNFX0lEXSAmIDB4ZmZmZjsNCj4gIAl4ZV9kZXYtPmd0X2xp c3QgPSB4ZV9xdWVyeV9ndF9saXN0X25ldyhmZCk7DQo+ICAJeGVfZGV2LT5tZW1vcnlfcmVnaW9u cyA9IF9fbWVtb3J5X3JlZ2lvbnMoeGVfZGV2LT5ndF9saXN0KTsNCj4gLQl4ZV9kZXYtPmVuZ2lu ZXMgPSB4ZV9xdWVyeV9lbmdpbmVzX25ldyhmZCwgJnhlX2Rldi0+bnVtYmVyX2VuZ2luZXMpOw0K PiArCXhlX2Rldi0+ZW5naW5lcyA9IHhlX3F1ZXJ5X2VuZ2luZXMoZmQsICZ4ZV9kZXYtPm51bWJl cl9lbmdpbmVzKTsNCj4gIAl4ZV9kZXYtPm1lbV9yZWdpb25zID0geGVfcXVlcnlfbWVtX3JlZ2lv bnNfbmV3KGZkKTsNCj4gIAl4ZV9kZXYtPnZyYW1fc2l6ZSA9IGNhbGxvYyh4ZV9kZXYtPmd0X2xp c3QtPm51bV9ndCwgc2l6ZW9mKCp4ZV9kZXYtPnZyYW1fc2l6ZSkpOw0KPiAgCXhlX2Rldi0+dmlz aWJsZV92cmFtX3NpemUgPSBjYWxsb2MoeGVfZGV2LT5ndF9saXN0LT5udW1fZ3QsIHNpemVvZigq eGVfZGV2LT52aXNpYmxlX3ZyYW1fc2l6ZSkpOw0KPiBAQCAtNDI3LDE2ICs0MjcsMTYgQEAgdWlu dDY0X3QgdnJhbV9pZl9wb3NzaWJsZShpbnQgZmQsIGludCBndCkNCj4gICAqDQo+ICAgKiBSZXR1 cm5zIGVuZ2luZXMgYXJyYXkgb2YgeGUgZGV2aWNlIEBmZC4NCj4gICAqLw0KPiAteGVfZGV2X0ZO KHhlX2VuZ2luZXMsIGVuZ2luZXMsIHN0cnVjdCBkcm1feGVfZW5naW5lX2NsYXNzX2luc3RhbmNl ICopOw0KPiAreGVfZGV2X0ZOKHhlX2VuZ2luZXMsIGVuZ2luZXMsIHN0cnVjdCBkcm1feGVfcXVl cnlfZW5naW5lX2luZm8gKik7DQo+ICANCj4gIC8qKg0KPiAgICogeGVfZW5naW5lOg0KPiAgICog QGZkOiB4ZSBkZXZpY2UgZmQNCj4gICAqIEBpZHg6IGVuZ2luZSBpbmRleA0KPiAgICoNCj4gLSAq IFJldHVybnMgZW5naW5lIGluc3RhbmNlIG9mIHhlIGRldmljZSBAZmQgYW5kIEBpZHguDQo+ICsg KiBSZXR1cm5zIGVuZ2luZSBpbmZvIG9mIHhlIGRldmljZSBAZmQgYW5kIEBpZHguDQo+ICAgKi8N Cj4gLXN0cnVjdCBkcm1feGVfZW5naW5lX2NsYXNzX2luc3RhbmNlICp4ZV9lbmdpbmUoaW50IGZk LCBpbnQgaWR4KQ0KPiArc3RydWN0IGRybV94ZV9xdWVyeV9lbmdpbmVfaW5mbyAqeGVfZW5naW5l KGludCBmZCwgaW50IGlkeCkNCj4gIHsNCj4gIAlzdHJ1Y3QgeGVfZGV2aWNlICp4ZV9kZXY7DQo+ ICANCj4gQEAgLTY1OCw3ICs2NTgsNyBAQCBib29sIHhlX2hhc19lbmdpbmVfY2xhc3MoaW50IGZk LCB1aW50MTZfdCBlbmdpbmVfY2xhc3MpDQo+ICAJaWd0X2Fzc2VydCh4ZV9kZXYpOw0KPiAgDQo+ ICAJZm9yIChpbnQgaSA9IDA7IGkgPCB4ZV9kZXYtPm51bWJlcl9lbmdpbmVzOyBpKyspDQo+IC0J CWlmICh4ZV9kZXYtPmVuZ2luZXNbaV0uZW5naW5lX2NsYXNzID09IGVuZ2luZV9jbGFzcykNCj4g KwkJaWYgKHhlX2Rldi0+ZW5naW5lc1tpXS5pbnN0YW5jZS5lbmdpbmVfY2xhc3MgPT0gZW5naW5l X2NsYXNzKQ0KPiAgCQkJcmV0dXJuIHRydWU7DQo+ICANCj4gIAlyZXR1cm4gZmFsc2U7DQo+IGRp ZmYgLS1naXQgYS9saWIveGUveGVfcXVlcnkuaCBiL2xpYi94ZS94ZV9xdWVyeS5oDQo+IGluZGV4 IGJmOWYyYjk1NS4uZmVkZTAwMDM2IDEwMDY0NA0KPiAtLS0gYS9saWIveGUveGVfcXVlcnkuaA0K PiArKysgYi9saWIveGUveGVfcXVlcnkuaA0KPiBAQCAtMzMsNyArMzMsNyBAQCBzdHJ1Y3QgeGVf ZGV2aWNlIHsNCj4gIAl1aW50NjRfdCBtZW1vcnlfcmVnaW9uczsNCj4gIA0KPiAgCS8qKiBAZW5n aW5lczogYXJyYXkgb2YgaGFyZHdhcmUgZW5naW5lcyAqLw0KPiAtCXN0cnVjdCBkcm1feGVfZW5n aW5lX2NsYXNzX2luc3RhbmNlICplbmdpbmVzOw0KPiArCXN0cnVjdCBkcm1feGVfcXVlcnlfZW5n aW5lX2luZm8gKmVuZ2luZXM7DQo+ICANCj4gIAkvKiogQG51bWJlcl9lbmdpbmVzOiBsZW5ndGgg b2YgaGFyZHdhcmUgZW5naW5lcyBhcnJheSAqLw0KPiAgCXVuc2lnbmVkIGludCBudW1iZXJfZW5n aW5lczsNCj4gQEAgLTYyLDcgKzYyLDcgQEAgc3RydWN0IHhlX2RldmljZSB7DQo+ICANCj4gICNk ZWZpbmUgeGVfZm9yX2VhY2hfZW5naW5lKF9fZmQsIF9faHdlKSBcDQo+ICAJZm9yIChpbnQgX19p ID0gMDsgX19pIDwgeGVfbnVtYmVyX2VuZ2luZXMoX19mZCkgJiYgXA0KPiAtCSAgICAgKF9faHdl ID0geGVfZW5naW5lKF9fZmQsIF9faSkpOyArK19faSkNCj4gKwkgICAgIChfX2h3ZSA9ICZ4ZV9l bmdpbmUoX19mZCwgX19pKS0+aW5zdGFuY2UpOyArK19faSkNCj4gICNkZWZpbmUgeGVfZm9yX2Vh Y2hfZW5naW5lX2NsYXNzKF9fY2xhc3MpIFwNCj4gIAlmb3IgKF9fY2xhc3MgPSAwOyBfX2NsYXNz IDwgRFJNX1hFX0VOR0lORV9DTEFTU19DT01QVVRFICsgMTsgXA0KPiAgCSAgICAgKytfX2NsYXNz KQ0KDQpDYW4gYmUgZG9uZSBhcyBhIGZvbGxvdyB1cCBidXQgd291bGQgYmUgZ29vZCB0byByZW5h bWUgeGVfZm9yX2VhY2hfaHdfZW5naW5lKCkgdG8gc29tZXRoaW5nIGxpa2UgeGVfZm9yX2VhY2hf ZW5naW5lX2NsYXNzX2luc3RhbmNlKCksIGh3X2VuZ2luZSBpcyBub3QNCmEgbmFtZSB1c2VkIGlu IFhlIGFueW1vcmUuDQoNCk90aGVyIGZvbGxvdyB1cCBpcyBoYXZlIGEgZm9yX2VhY2ggbWFjcm8g Zm9yIGRybV94ZV9xdWVyeV9lbmdpbmVfaW5mbyBidXQgdGhhdCBjYW4gYmUgYWRkZWQgd2hlbiB0 aGVyZSBpcyBhY3R1YWwgdXNhZ2UgZm9yIGl0Lg0KDQpVcCB0byB5b3UgdG8gZGVjaWRlIHRvIGRv IHRoZSByZW5hbWUgbm93IG9yIGxhdGVyLCBhbnl3YXlzOg0KDQpSZXZpZXdlZC1ieTogSm9zw6kg Um9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+DQoNCj4gQEAgLTgxLDggKzgx LDggQEAgdWludDY0X3QgYWxsX21lbW9yeV9yZWdpb25zKGludCBmZCk7DQo+ICB1aW50NjRfdCBz eXN0ZW1fbWVtb3J5KGludCBmZCk7DQo+ICB1aW50NjRfdCB2cmFtX21lbW9yeShpbnQgZmQsIGlu dCBndCk7DQo+ICB1aW50NjRfdCB2cmFtX2lmX3Bvc3NpYmxlKGludCBmZCwgaW50IGd0KTsNCj4g LXN0cnVjdCBkcm1feGVfZW5naW5lX2NsYXNzX2luc3RhbmNlICp4ZV9lbmdpbmVzKGludCBmZCk7 DQo+IC1zdHJ1Y3QgZHJtX3hlX2VuZ2luZV9jbGFzc19pbnN0YW5jZSAqeGVfZW5naW5lKGludCBm ZCwgaW50IGlkeCk7DQo+ICtzdHJ1Y3QgZHJtX3hlX3F1ZXJ5X2VuZ2luZV9pbmZvICp4ZV9lbmdp bmVzKGludCBmZCk7DQo+ICtzdHJ1Y3QgZHJtX3hlX3F1ZXJ5X2VuZ2luZV9pbmZvICp4ZV9lbmdp bmUoaW50IGZkLCBpbnQgaWR4KTsNCj4gIHN0cnVjdCBkcm1feGVfcXVlcnlfbWVtX3JlZ2lvbiAq eGVfbWVtX3JlZ2lvbihpbnQgZmQsIHVpbnQ2NF90IHJlZ2lvbik7DQo+ICBjb25zdCBjaGFyICp4 ZV9yZWdpb25fbmFtZSh1aW50NjRfdCByZWdpb24pOw0KPiAgdWludDE2X3QgeGVfcmVnaW9uX2Ns YXNzKGludCBmZCwgdWludDY0X3QgcmVnaW9uKTsNCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ludGVs L3hlX2NyZWF0ZS5jIGIvdGVzdHMvaW50ZWwveGVfY3JlYXRlLmMNCj4gaW5kZXggYTMzMjdkOWYy Li5hMWVmOGE3MjUgMTAwNjQ0DQo+IC0tLSBhL3Rlc3RzL2ludGVsL3hlX2NyZWF0ZS5jDQo+ICsr KyBiL3Rlc3RzL2ludGVsL3hlX2NyZWF0ZS5jDQo+IEBAIC0xNDksNyArMTQ5LDcgQEAgc3RhdGlj IHZvaWQgY3JlYXRlX2V4ZWNxdWV1ZXMoaW50IGZkLCBlbnVtIGV4ZWNfcXVldWVfZGVzdHJveSBl ZCkNCj4gIAlpZ3RfbnNlY19lbGFwc2VkKCZ0dik7DQo+ICANCj4gIAlpZ3RfZm9yayhuLCBucHJv Yykgew0KPiAtCQlzdHJ1Y3QgZHJtX3hlX2VuZ2luZV9jbGFzc19pbnN0YW5jZSAqaHdlOw0KPiAr CQlzdHJ1Y3QgZHJtX3hlX3F1ZXJ5X2VuZ2luZV9pbmZvICplbmdpbmU7DQo+ICAJCXVpbnQzMl90 IGV4ZWNfcXVldWUsIGV4ZWNfcXVldWVzW2V4ZWNfcXVldWVzX3Blcl9wcm9jZXNzXTsNCj4gIAkJ aW50IGlkeCwgZXJyLCBpOw0KPiAgDQo+IEBAIC0xNTcsOCArMTU3LDkgQEAgc3RhdGljIHZvaWQg Y3JlYXRlX2V4ZWNxdWV1ZXMoaW50IGZkLCBlbnVtIGV4ZWNfcXVldWVfZGVzdHJveSBlZCkNCj4g IA0KPiAgCQlmb3IgKGkgPSAwOyBpIDwgZXhlY19xdWV1ZXNfcGVyX3Byb2Nlc3M7IGkrKykgew0K PiAgCQkJaWR4ID0gcmFuZCgpICUgbnVtX2VuZ2luZXM7DQo+IC0JCQlod2UgPSB4ZV9lbmdpbmUo ZmQsIGlkeCk7DQo+IC0JCQllcnIgPSBfX3hlX2V4ZWNfcXVldWVfY3JlYXRlKGZkLCB2bSwgaHdl LCAwLCAmZXhlY19xdWV1ZSk7DQo+ICsJCQllbmdpbmUgPSB4ZV9lbmdpbmUoZmQsIGlkeCk7DQo+ ICsJCQllcnIgPSBfX3hlX2V4ZWNfcXVldWVfY3JlYXRlKGZkLCB2bSwgJmVuZ2luZS0+aW5zdGFu Y2UsDQo+ICsJCQkJCQkgICAgIDAsICZleGVjX3F1ZXVlKTsNCj4gIAkJCWlndF9kZWJ1ZygiWyUy ZF0gQ3JlYXRlIGV4ZWNfcXVldWU6IGVycj0lZCwgZXhlY19xdWV1ZT0ldSBbaWR4ID0gJWRdXG4i LA0KPiAgCQkJCSAgbiwgZXJyLCBleGVjX3F1ZXVlLCBpKTsNCj4gIAkJCWlmIChlcnIpDQo+IGRp ZmYgLS1naXQgYS90ZXN0cy9pbnRlbC94ZV9kcm1fZmRpbmZvLmMgYi90ZXN0cy9pbnRlbC94ZV9k cm1fZmRpbmZvLmMNCj4gaW5kZXggZDUwY2M2ZGYxLi5jZWMzZTA4MjUgMTAwNjQ0DQo+IC0tLSBh L3Rlc3RzL2ludGVsL3hlX2RybV9mZGluZm8uYw0KPiArKysgYi90ZXN0cy9pbnRlbC94ZV9kcm1f ZmRpbmZvLmMNCj4gQEAgLTQwLDcgKzQwLDcgQEAgSUdUX1RFU1RfREVTQ1JJUFRJT04oIlJlYWQg YW5kIHZlcmlmeSBkcm0gY2xpZW50IG1lbW9yeSBjb25zdW1wdGlvbiB1c2luZyBmZGluZm8NCj4g ICNkZWZpbmUgQk9fU0laRSAoNjU1MzYpDQo+ICANCj4gIC8qIFN1YnRlc3RzICovDQo+IC1zdGF0 aWMgdm9pZCB0ZXN0X2FjdGl2ZShpbnQgZmQsIHN0cnVjdCBkcm1feGVfZW5naW5lX2NsYXNzX2lu c3RhbmNlICplY2kpDQo+ICtzdGF0aWMgdm9pZCB0ZXN0X2FjdGl2ZShpbnQgZmQsIHN0cnVjdCBk cm1feGVfcXVlcnlfZW5naW5lX2luZm8gKmVuZ2luZSkNCj4gIHsNCj4gIAlzdHJ1Y3QgZHJtX3hl X3F1ZXJ5X21lbV9yZWdpb24gKm1lbXJlZ2lvbjsNCj4gIAl1aW50NjRfdCBtZW1yZWcgPSBhbGxf bWVtb3J5X3JlZ2lvbnMoZmQpLCByZWdpb247DQo+IEBAIC04OSw3ICs4OSw4IEBAIHN0YXRpYyB2 b2lkIHRlc3RfYWN0aXZlKGludCBmZCwgc3RydWN0IGRybV94ZV9lbmdpbmVfY2xhc3NfaW5zdGFu Y2UgKmVjaSkNCj4gIAkJZGF0YSA9IHhlX2JvX21hcChmZCwgYm8sIGJvX3NpemUpOw0KPiAgDQo+ ICAJCWZvciAoaSA9IDA7IGkgPCBOX0VYRUNfUVVFVUVTOyBpKyspIHsNCj4gLQkJCWV4ZWNfcXVl dWVzW2ldID0geGVfZXhlY19xdWV1ZV9jcmVhdGUoZmQsIHZtLCBlY2ksIDApOw0KPiArCQkJZXhl Y19xdWV1ZXNbaV0gPSB4ZV9leGVjX3F1ZXVlX2NyZWF0ZShmZCwgdm0sDQo+ICsJCQkJCQkJICAg ICAgJmVuZ2luZS0+aW5zdGFuY2UsIDApOw0KPiAgCQkJYmluZF9leGVjX3F1ZXVlc1tpXSA9IHhl X2JpbmRfZXhlY19xdWV1ZV9jcmVhdGUoZmQsIHZtLCAwLCB0cnVlKTsNCj4gIAkJCXN5bmNvYmpz W2ldID0gc3luY29ial9jcmVhdGUoZmQsIDApOw0KPiAgCQl9DQo+IGRpZmYgLS1naXQgYS90ZXN0 cy9pbnRlbC94ZV9leGVjX3N0b3JlLmMgYi90ZXN0cy9pbnRlbC94ZV9leGVjX3N0b3JlLmMNCj4g aW5kZXggMGI3YjNkM2U5Li40OGU4NDNhZjUgMTAwNjQ0DQo+IC0tLSBhL3Rlc3RzL2ludGVsL3hl X2V4ZWNfc3RvcmUuYw0KPiArKysgYi90ZXN0cy9pbnRlbC94ZV9leGVjX3N0b3JlLmMNCj4gQEAg LTYzLDcgKzYzLDcgQEAgc3RhdGljIHZvaWQgc3RvcmUoaW50IGZkKQ0KPiAgCQkuc3luY3MgPSB0 b191c2VyX3BvaW50ZXIoJnN5bmMpLA0KPiAgCX07DQo+ICAJc3RydWN0IGRhdGEgKmRhdGE7DQo+ IC0Jc3RydWN0IGRybV94ZV9lbmdpbmVfY2xhc3NfaW5zdGFuY2UgKmVuZ2luZTsNCj4gKwlzdHJ1 Y3QgZHJtX3hlX3F1ZXJ5X2VuZ2luZV9pbmZvICplbmdpbmU7DQo+ICAJdWludDMyX3Qgdm07DQo+ ICAJdWludDMyX3QgZXhlY19xdWV1ZTsNCj4gIAl1aW50MzJfdCBzeW5jb2JqOw0KPiBAQCAtODIs MTQgKzgyLDE0IEBAIHN0YXRpYyB2b2lkIHN0b3JlKGludCBmZCkNCj4gIA0KPiAgCWVuZ2luZSA9 IHhlX2VuZ2luZShmZCwgMSk7DQo+ICAJYm8gPSB4ZV9ib19jcmVhdGUoZmQsIHZtLCBib19zaXpl LA0KPiAtCQkJICB2cmFtX2lmX3Bvc3NpYmxlKGZkLCBlbmdpbmUtPmd0X2lkKSwNCj4gKwkJCSAg dnJhbV9pZl9wb3NzaWJsZShmZCwgZW5naW5lLT5pbnN0YW5jZS5ndF9pZCksDQo+ICAJCQkgIERS TV9YRV9HRU1fQ1JFQVRFX0ZMQUdfTkVFRFNfVklTSUJMRV9WUkFNKTsNCj4gIA0KPiAtCXhlX3Zt X2JpbmRfYXN5bmMoZmQsIHZtLCBlbmdpbmUtPmd0X2lkLCBibywgMCwgYWRkciwgYm9fc2l6ZSwg JnN5bmMsIDEpOw0KPiArCXhlX3ZtX2JpbmRfYXN5bmMoZmQsIHZtLCBlbmdpbmUtPmluc3RhbmNl Lmd0X2lkLCBibywgMCwgYWRkciwgYm9fc2l6ZSwgJnN5bmMsIDEpOw0KPiAgCWRhdGEgPSB4ZV9i b19tYXAoZmQsIGJvLCBib19zaXplKTsNCj4gIAlzdG9yZV9kd29yZF9iYXRjaChkYXRhLCBhZGRy LCB2YWx1ZSk7DQo+ICANCj4gLQlleGVjX3F1ZXVlID0geGVfZXhlY19xdWV1ZV9jcmVhdGUoZmQs IHZtLCBlbmdpbmUsIDApOw0KPiArCWV4ZWNfcXVldWUgPSB4ZV9leGVjX3F1ZXVlX2NyZWF0ZShm ZCwgdm0sICZlbmdpbmUtPmluc3RhbmNlLCAwKTsNCj4gIAlleGVjLmV4ZWNfcXVldWVfaWQgPSBl eGVjX3F1ZXVlOw0KPiAgCWV4ZWMuYWRkcmVzcyA9IGRhdGEtPmFkZHI7DQo+ICAJc3luYy5mbGFn cyAmPSBEUk1fWEVfU1lOQ19GTEFHX1NJR05BTDsNCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2ludGVs L3hlX2ludGVsX2JiLmMgYi90ZXN0cy9pbnRlbC94ZV9pbnRlbF9iYi5jDQo+IGluZGV4IGM2ODY2 MDRkMi4uODA0ZTE3NmVlIDEwMDY0NA0KPiAtLS0gYS90ZXN0cy9pbnRlbC94ZV9pbnRlbF9iYi5j DQo+ICsrKyBiL3Rlc3RzL2ludGVsL3hlX2ludGVsX2JiLmMNCj4gQEAgLTE5Myw3ICsxOTMsOCBA QCBzdGF0aWMgdm9pZCBzaW1wbGVfYmIoc3RydWN0IGJ1Zl9vcHMgKmJvcHMsIGJvb2wgbmV3X2Nv bnRleHQpDQo+ICANCj4gIAlpZiAobmV3X2NvbnRleHQpIHsNCj4gIAkJdm0gPSB4ZV92bV9jcmVh dGUoeGUsIERSTV9YRV9WTV9DUkVBVEVfRkxBR19BU1lOQ19ERUZBVUxULCAwKTsNCj4gLQkJY3R4 ID0geGVfZXhlY19xdWV1ZV9jcmVhdGUoeGUsIHZtLCB4ZV9lbmdpbmUoeGUsIDApLCAwKTsNCj4g KwkJY3R4ID0geGVfZXhlY19xdWV1ZV9jcmVhdGUoeGUsIHZtLCAmeGVfZW5naW5lKHhlLCAwKS0+ aW5zdGFuY2UsDQo+ICsJCQkJCSAgIDApOw0KPiAgCQlpbnRlbF9iYl9kZXN0cm95KGliYik7DQo+ ICAJCWliYiA9IGludGVsX2JiX2NyZWF0ZV93aXRoX2NvbnRleHQoeGUsIGN0eCwgdm0sIE5VTEws IFBBR0VfU0laRSk7DQo+ICAJCWludGVsX2JiX291dChpYmIsIE1JX0JBVENIX0JVRkZFUl9FTkQp Ow0KPiBkaWZmIC0tZ2l0IGEvdGVzdHMvaW50ZWwveGVfbm9leGVjX3BpbmdfcG9uZy5jIGIvdGVz dHMvaW50ZWwveGVfbm9leGVjX3BpbmdfcG9uZy5jDQo+IGluZGV4IGUyN2NjNDU4Mi4uNTg1YWY0 MTNkIDEwMDY0NA0KPiAtLS0gYS90ZXN0cy9pbnRlbC94ZV9ub2V4ZWNfcGluZ19wb25nLmMNCj4g KysrIGIvdGVzdHMvaW50ZWwveGVfbm9leGVjX3BpbmdfcG9uZy5jDQo+IEBAIC00Myw3ICs0Myw3 IEBADQo+ICAgICoJdGhlcmUgaXMgd29ya2VkIHF1ZXVlZCBvbiBvbmUgb2YgdGhlIFZNJ3MgY29t cHV0ZSBleGVjX3F1ZXVlcy4NCj4gICAqLw0KPiAgDQo+IC1zdGF0aWMgdm9pZCB0ZXN0X3Bpbmdf cG9uZyhpbnQgZmQsIHN0cnVjdCBkcm1feGVfZW5naW5lX2NsYXNzX2luc3RhbmNlICplY2kpDQo+ ICtzdGF0aWMgdm9pZCB0ZXN0X3BpbmdfcG9uZyhpbnQgZmQsIHN0cnVjdCBkcm1feGVfcXVlcnlf ZW5naW5lX2luZm8gKmVuZ2luZSkNCj4gIHsNCj4gIAlzaXplX3QgdnJhbV9zaXplID0geGVfdnJh bV9zaXplKGZkLCAwKTsNCj4gIAlzaXplX3QgYWxpZ24gPSB4ZV9nZXRfZGVmYXVsdF9hbGlnbm1l bnQoZmQpOw0KPiBAQCAtNzUsNyArNzUsOCBAQCBzdGF0aWMgdm9pZCB0ZXN0X3BpbmdfcG9uZyhp bnQgZmQsIHN0cnVjdCBkcm1feGVfZW5naW5lX2NsYXNzX2luc3RhbmNlICplY2kpDQo+ICAJCQl4 ZV92bV9iaW5kKGZkLCB2bVtpXSwgYm9baV1bal0sIDAsIDB4NDAwMDAgKyBqKmJvX3NpemUsDQo+ ICAJCQkJICAgYm9fc2l6ZSwgTlVMTCwgMCk7DQo+ICAJCX0NCj4gLQkJZXhlY19xdWV1ZXNbaV0g PSB4ZV9leGVjX3F1ZXVlX2NyZWF0ZShmZCwgdm1baV0sIGVjaSwgMCk7DQo+ICsJCWV4ZWNfcXVl dWVzW2ldID0geGVfZXhlY19xdWV1ZV9jcmVhdGUoZmQsIHZtW2ldLA0KPiArCQkJCQkJICAgICAg JmVuZ2luZS0+aW5zdGFuY2UsIDApOw0KPiAgCX0NCj4gIA0KPiAgCWlndF9pbmZvKCJOb3cgc2xl ZXBpbmcgZm9yICVkcy5cbiIsIFNFQ09ORFNfVE9fV0FJVCk7DQo+IGRpZmYgLS1naXQgYS90ZXN0 cy9pbnRlbC94ZV93YWl0ZmVuY2UuYyBiL3Rlc3RzL2ludGVsL3hlX3dhaXRmZW5jZS5jDQo+IGlu ZGV4IGFkOGFkYzJiMC4uYmFiMmJlZDQyIDEwMDY0NA0KPiAtLS0gYS90ZXN0cy9pbnRlbC94ZV93 YWl0ZmVuY2UuYw0KPiArKysgYi90ZXN0cy9pbnRlbC94ZV93YWl0ZmVuY2UuYw0KPiBAQCAtODEs NyArODEsNyBAQCBlbnVtIHdhaXR0eXBlIHsNCj4gIHN0YXRpYyB2b2lkDQo+ICB3YWl0ZmVuY2Uo aW50IGZkLCBlbnVtIHdhaXR0eXBlIHd0KQ0KPiAgew0KPiAtCXN0cnVjdCBkcm1feGVfZW5naW5l X2NsYXNzX2luc3RhbmNlICplY2kgPSBOVUxMOw0KPiArCXN0cnVjdCBkcm1feGVfcXVlcnlfZW5n aW5lX2luZm8gKmVuZ2luZSA9IE5VTEw7DQo+ICAJc3RydWN0IHRpbWVzcGVjIHRzOw0KPiAgCWlu dDY0X3QgY3VycmVudCwgc2lnbmFsbGVkOw0KPiAgCXVpbnQzMl90IGJvXzE7DQo+IEBAIC0xMTQs MTEgKzExNCwxMSBAQCB3YWl0ZmVuY2UoaW50IGZkLCBlbnVtIHdhaXR0eXBlIHd0KQ0KPiAgCQlp Z3RfZGVidWcoIndhaXQgdHlwZTogUkVMVElNRSAtIHRpbWVvdXQ6ICVsZCwgdGltZW91dCBsZWZ0 OiAlbGRcbiIsDQo+ICAJCQkgIE1TX1RPX05TKDEwKSwgdGltZW91dCk7DQo+ICAJfSBlbHNlIGlm ICh3dCA9PSBFTkdJTkUpIHsNCj4gLQkJZWNpID0geGVfZW5naW5lKGZkLCAxKTsNCj4gKwkJZW5n aW5lID0geGVfZW5naW5lKGZkLCAxKTsNCj4gIAkJY2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9O SUMsICZ0cyk7DQo+ICAJCWN1cnJlbnQgPSB0cy50dl9zZWMgKiAxZTkgKyB0cy50dl9uc2VjOw0K PiAgCQl0aW1lb3V0ID0gY3VycmVudCArIE1TX1RPX05TKDEwKTsNCj4gLQkJc2lnbmFsbGVkID0g d2FpdF93aXRoX2VjaV9hYnN0aW1lKGZkLCAmd2FpdF9mZW5jZSwgNywgZWNpLCB0aW1lb3V0KTsN Cj4gKwkJc2lnbmFsbGVkID0gd2FpdF93aXRoX2VjaV9hYnN0aW1lKGZkLCAmd2FpdF9mZW5jZSwg NywgJmVuZ2luZS0+aW5zdGFuY2UsIHRpbWVvdXQpOw0KPiAgCQlpZ3RfZGVidWcoIndhaXQgdHlw ZTogRU5HSU5FIEFCU1RJTUUgLSB0aW1lb3V0OiAlIiBQUklkNjQNCj4gIAkJCSAgIiwgc2lnbmFs bGVkOiAlIiBQUklkNjQNCj4gIAkJCSAgIiwgZWxhcHNlZDogJSIgUFJJZDY0ICJcbiIsDQoNCg==