From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Koenig, Christian" Subject: Re: [PATCH 3/5] drm: add timeline support for syncobj export/import Date: Fri, 2 Nov 2018 09:54:24 +0000 Message-ID: <085caaf4-399a-1bcf-88fc-80d2158d3e70@amd.com> References: <20181102082517.4456-1-david1.zhou@amd.com> <20181102082517.4456-3-david1.zhou@amd.com> <8dcbdee2-0c0a-2b59-b120-d0a3d9fd63b9@gmail.com> <89b77b9a-db9b-4765-0a9d-58c72fc9cab1@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from NAM05-BY2-obe.outbound.protection.outlook.com (mail-eopbgr710058.outbound.protection.outlook.com [40.107.71.58]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5CE696E56E for ; Fri, 2 Nov 2018 09:54:28 +0000 (UTC) In-Reply-To: <89b77b9a-db9b-4765-0a9d-58c72fc9cab1@amd.com> Content-Language: en-US Content-ID: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: "Zhou, David(ChunMing)" "Zhou, David(ChunMing)" , "dri-devel@lists.freedesktop.org" Cc: Dave Airlie , "Rakos, Daniel" , Jason Ekstrand List-Id: dri-devel@lists.freedesktop.org QW0gMDIuMTEuMTggdW0gMTA6NDIgc2NocmllYiB6aG91Y20xOg0KPg0KPg0KPiBPbiAyMDE45bm0 MTHmnIgwMuaXpSAxNjo0NiwgQ2hyaXN0aWFuIEvDtm5pZyB3cm90ZToNCj4+IEFtIDAyLjExLjE4 IHVtIDA5OjI1IHNjaHJpZWIgQ2h1bm1pbmcgWmhvdToNCj4+PiB1c2VyIHNwYWNlIGNhbiBzcGVj aWZ5IHRpbWVsaW5lIHBvaW50IGZlbmNlIHRvIGV4cG9ydC9pbXBvcnQuDQo+Pj4NCj4+PiBTaWdu ZWQtb2ZmLWJ5OiBDaHVubWluZyBaaG91IDxkYXZpZDEuemhvdUBhbWQuY29tPg0KPj4+IENjOiBE YW5pZWwgUmFrb3MgPERhbmllbC5SYWtvc0BhbWQuY29tPg0KPj4+IENjOiBKYXNvbiBFa3N0cmFu ZCA8amFzb25Aamxla3N0cmFuZC5uZXQ+DQo+Pj4gQ2M6IEJhcyBOaWV1d2VuaHVpemVuIDxiYXNA YmFzbmlldXdlbmh1aXplbi5ubD4NCj4+PiBDYzogRGF2ZSBBaXJsaWUgPGFpcmxpZWRAcmVkaGF0 LmNvbT4NCj4+PiBDYzogQ2hyaXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29t Pg0KPj4+IENjOiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4NCj4+DQo+ PiBGcm9tIHRoZSBjb2RpbmcgaXQgbG9va3MgZ29vZCB0byBtZSwgYnV0IEkgY2FuJ3QganVkZ2Ug aWYgdGhhdCByZWFsbHkgDQo+PiBtYWtlcyBzZW5zZSB0byBleHBvcnQvaW1wb3J0IGluZGl2aWR1 YWwgcG9pbnRzLg0KPj4NCj4+IEkgd291bGQgaGF2ZSByYXRoZXIgZXhwZWN0ZWQgdGhhdCBhbHdh eXMgdGhlIHdob2xlIHRpbWVsaW5lIGlzIA0KPj4gZXhwb3J0ZWQvaW1wb3J0ZWQuIE90aGVyd2lz ZSB0aGUgd2hvbGUgdGhpbmcgd2l0aCB3YWl0aW5nIGZvciBzeW5jIA0KPj4gcG9pbnRzIHRvIGFw cGVhciBkb2Vzbid0IHJlYWxseSBtYWtlIHNlbnNlIHRvIG1lLg0KPiBXZSBjYW4gQ3B1IHdhaXQg b24gaW5kaXZpZHVhbCBwb2ludHMsIHdoeSBjYW4gbm90IHdlIGV4cG9ydC9pbXBvcnQgdGhlbT8N Cj4gSSBjb25maXJtZWQgd2l0aCBEYW5pZWwgYmVmb3JlLCBoZSBzYWlkIHRoZSBleHRlbnNpb24g bmVlZCBib3RoIHRoZW0sIA0KPiBleHBvcnQvaW1wb3J0IGluZGl2aWR1YWwgcG9pbnRzIGFuZCBl eHBvcnQvaW1wb3J0IHRoZSB3aG9sZSB0aW1lbGluZSANCj4gc2VtYXBob3JlLg0KPiBNb3JlIGRp c2N1c3Npb24gaXMgDQo+IGh0dHBzOi8vZ2l0bGFiLmtocm9ub3Mub3JnL3Z1bGthbi92dWxrYW4v bWVyZ2VfcmVxdWVzdHMvMjY5Ng0KDQpBaCEgSXQgbG9va2VkIGluaXRpYWxseSB0byBtZSB0aGF0 IHRoaXMgd2FzIHRoZSBvbmx5IHdheSB0byANCmV4cG9ydC9pbXBvcnQgdGltZWxpbmUgc3luYyBv YmplY3RzLg0KDQpUaGlua2luZyBtb3JlIGFib3V0IGl0IHdvdWxkbid0IGl0IGJlIGJldHRlciB0 byBwcm92aWRlIGEgZnVuY3Rpb24gdG8gDQpzaWduYWwgYSBzeW5jIHBvaW50IGZyb20gYW5vdGhl ciBzeW5jIHBvaW50Pw0KDQpUaGF0IHdvdWxkIHByb3ZpZGUgdGhlIHNhbWUgZnVuY3Rpb25hbGl0 eSwgd291bGQgYmUgY2xlYW5lciB0byBpbXBsZW1lbnQgDQphbmQgbW9yZSBmbGV4aWJsZSBvbiB0 b3AuDQoNCkUuZy4gaWYgeW91IHdhbnQgdG8gZXhwb3J0IG9ubHkgYSBzcGVjaWZpYyBzeW5jIHBv aW50IHlvdSBmaXJzdCBjcmVhdGUgYSANCm5ldyBzeW5jb2JqIGFuZCB0aGUgbW92ZSBvdmVyIHRo aXMgc3luYyBwb2ludCBpbnRvIHRoZSBzeW5jb2JqLg0KDQpPdGhlcndpc2UgeW91IG1peCBtdWx0 aXBsZSBvcGVyYXRpb25zIGludG8gb25lIElPQ1RMIGFuZCB0aGF0IGlzIHVzdWFsbHkgDQpub3Qg YSBnb29kIGlkZWEuDQoNClJlZ2FyZHMsDQpDaHJpc3RpYW4uDQoNCj4NCj4gVGhhbmtzLA0KPiBE YXZpZCBaaG91DQo+Pg0KPj4gQ2hyaXN0aWFuLg0KPj4NCj4+PiAtLS0NCj4+PiDCoCBkcml2ZXJz L2dwdS9kcm0vZHJtX2ludGVybmFsLmggfMKgIDQgKysNCj4+PiDCoCBkcml2ZXJzL2dwdS9kcm0v ZHJtX2lvY3RsLmPCoMKgwqAgfMKgIDQgKysNCj4+PiDCoCBkcml2ZXJzL2dwdS9kcm0vZHJtX3N5 bmNvYmouY8KgIHwgNzYgDQo+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQ0K Pj4+IMKgIGluY2x1ZGUvdWFwaS9kcm0vZHJtLmjCoMKgwqDCoMKgwqDCoMKgIHwgMTEgKysrKysN Cj4+PiDCoCA0IGZpbGVzIGNoYW5nZWQsIDg4IGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0p DQo+Pj4NCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oIA0K Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oDQo+Pj4gaW5kZXggOWM0ODI2NDEx YTNjLi41YWQ2Y2JkYjY4YWIgMTAwNjQ0DQo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9p bnRlcm5hbC5oDQo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oDQo+Pj4g QEAgLTE4MSw2ICsxODEsMTAgQEAgaW50IGRybV9zeW5jb2JqX2hhbmRsZV90b19mZF9pb2N0bChz dHJ1Y3QgDQo+Pj4gZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLA0KPj4+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZh dGUpOw0KPj4+IMKgIGludCBkcm1fc3luY29ial9mZF90b19oYW5kbGVfaW9jdGwoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdm9pZCANCj4+PiAqZGF0YSwNCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2YXRlKTsNCj4+ PiAraW50IGRybV9zeW5jb2JqX2hhbmRsZV90b19mZF9pb2N0bDIoc3RydWN0IGRybV9kZXZpY2Ug KmRldiwgdm9pZCANCj4+PiAqZGF0YSwNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpOw0KPj4+ICtpbnQgZHJt X3N5bmNvYmpfZmRfdG9faGFuZGxlX2lvY3RsMihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lk IA0KPj4+ICpkYXRhLA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSk7DQo+Pj4gwqAgaW50IGRybV9zeW5jb2Jq X3dhaXRfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwNCj4+PiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0 ZSk7DQo+Pj4gwqAgaW50IGRybV9zeW5jb2JqX3RpbWVsaW5lX3dhaXRfaW9jdGwoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwgdm9pZCANCj4+PiAqZGF0YSwNCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9pb2N0bC5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0bC5jDQo+Pj4g aW5kZXggNzU3OGVmNmRjMWQxLi4zNjRkMjZlOTQ5Y2YgMTAwNjQ0DQo+Pj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9pb2N0bC5jDQo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pb2N0 bC5jDQo+Pj4gQEAgLTY3Myw2ICs2NzMsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW9j dGxfZGVzYyBkcm1faW9jdGxzW10gDQo+Pj4gPSB7DQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwNCj4+PiDCoMKgwqDCoMKg IERSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfRkRfVE9fSEFORExFLCANCj4+PiBkcm1f c3luY29ial9mZF90b19oYW5kbGVfaW9jdGwsDQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwNCj4+PiArwqDCoMKgIERSTV9J T0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfSEFORExFX1RPX0ZEMiwgDQo+Pj4gZHJtX3N5bmNv YmpfaGFuZGxlX3RvX2ZkX2lvY3RsMiwNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg RFJNX1VOTE9DS0VEfERSTV9SRU5ERVJfQUxMT1cpLA0KPj4+ICvCoMKgwqAgRFJNX0lPQ1RMX0RF RihEUk1fSU9DVExfU1lOQ09CSl9GRF9UT19IQU5ETEUyLCANCj4+PiBkcm1fc3luY29ial9mZF90 b19oYW5kbGVfaW9jdGwyLA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBEUk1fVU5M T0NLRUR8RFJNX1JFTkRFUl9BTExPVyksDQo+Pj4gwqDCoMKgwqDCoCBEUk1fSU9DVExfREVGKERS TV9JT0NUTF9TWU5DT0JKX1dBSVQsIGRybV9zeW5jb2JqX3dhaXRfaW9jdGwsDQo+Pj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwN Cj4+PiDCoMKgwqDCoMKgIERSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfVElNRUxJTkVf V0FJVCwgDQo+Pj4gZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdF9pb2N0bCwNCj4+PiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMgDQo+Pj4gYi9kcml2ZXJzL2dwdS9k cm0vZHJtX3N5bmNvYmouYw0KPj4+IGluZGV4IDlhZDU4ZDBkMjFjZC4uZGZmYzQyYmEyZjkxIDEw MDY0NA0KPj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jDQo+Pj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9zeW5jb2JqLmMNCj4+PiBAQCAtNjc3LDcgKzY3Nyw3IEBAIHN0 YXRpYyBpbnQgZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlKHN0cnVjdCANCj4+PiBkcm1fZmlsZSAq ZmlsZV9wcml2YXRlLA0KPj4+IMKgIH0NCj4+PiDCoCDCoCBzdGF0aWMgaW50IGRybV9zeW5jb2Jq X2ltcG9ydF9zeW5jX2ZpbGVfZmVuY2Uoc3RydWN0IGRybV9maWxlIA0KPj4+ICpmaWxlX3ByaXZh dGUsDQo+Pj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGludCBmZCwgaW50IGhhbmRsZSkNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IGZkLCBpbnQgaGFuZGxlLCB1aW50NjRfdCBwb2lu dCkNCj4+PiDCoCB7DQo+Pj4gwqDCoMKgwqDCoCBzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZSA9IHN5 bmNfZmlsZV9nZXRfZmVuY2UoZmQpOw0KPj4+IMKgwqDCoMKgwqAgc3RydWN0IGRybV9zeW5jb2Jq ICpzeW5jb2JqOw0KPj4+IEBAIC02OTEsMTQgKzY5MSwxNCBAQCBzdGF0aWMgaW50IA0KPj4+IGRy bV9zeW5jb2JqX2ltcG9ydF9zeW5jX2ZpbGVfZmVuY2Uoc3RydWN0IGRybV9maWxlICpmaWxlX3By aXZhdGUsDQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRU5PRU5UOw0KPj4+IMKgwqDC oMKgwqAgfQ0KPj4+IMKgIC3CoMKgwqAgZHJtX3N5bmNvYmpfcmVwbGFjZV9mZW5jZShzeW5jb2Jq LCAwLCBmZW5jZSk7DQo+Pj4gK8KgwqDCoCBkcm1fc3luY29ial9yZXBsYWNlX2ZlbmNlKHN5bmNv YmosIHBvaW50LCBmZW5jZSk7DQo+Pj4gwqDCoMKgwqDCoCBkbWFfZmVuY2VfcHV0KGZlbmNlKTsN Cj4+PiDCoMKgwqDCoMKgIGRybV9zeW5jb2JqX3B1dChzeW5jb2JqKTsNCj4+PiDCoMKgwqDCoMKg IHJldHVybiAwOw0KPj4+IMKgIH0NCj4+PiDCoCDCoCBzdGF0aWMgaW50IGRybV9zeW5jb2JqX2V4 cG9ydF9zeW5jX2ZpbGUoc3RydWN0IGRybV9maWxlIA0KPj4+ICpmaWxlX3ByaXZhdGUsDQo+Pj4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCBoYW5kbGUsIGludCAq cF9mZCkNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaW50IGhh bmRsZSwgdWludDY0X3QgcG9pbnQsIGludCAqcF9mZCkNCj4+PiDCoCB7DQo+Pj4gwqDCoMKgwqDC oCBpbnQgcmV0Ow0KPj4+IMKgwqDCoMKgwqAgc3RydWN0IGRtYV9mZW5jZSAqZmVuY2U7DQo+Pj4g QEAgLTcwOCw3ICs3MDgsNyBAQCBzdGF0aWMgaW50IGRybV9zeW5jb2JqX2V4cG9ydF9zeW5jX2Zp bGUoc3RydWN0IA0KPj4+IGRybV9maWxlICpmaWxlX3ByaXZhdGUsDQo+Pj4gwqDCoMKgwqDCoCBp ZiAoZmQgPCAwKQ0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gZmQ7DQo+Pj4gwqAgLcKg wqDCoCByZXQgPSBkcm1fc3luY29ial9maW5kX2ZlbmNlKGZpbGVfcHJpdmF0ZSwgaGFuZGxlLCAw LCAwLCANCj4+PiAmZmVuY2UpOw0KPj4+ICvCoMKgwqAgcmV0ID0gZHJtX3N5bmNvYmpfZmluZF9m ZW5jZShmaWxlX3ByaXZhdGUsIGhhbmRsZSwgcG9pbnQsIDAsIA0KPj4+ICZmZW5jZSk7DQo+Pj4g wqDCoMKgwqDCoCBpZiAocmV0KQ0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBnb3RvIGVycl9wdXRf ZmQ7DQo+Pj4gwqAgQEAgLTgxNyw5ICs4MTcsMTQgQEAgZHJtX3N5bmNvYmpfaGFuZGxlX3RvX2Zk X2lvY3RsKHN0cnVjdCANCj4+PiBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsDQo+Pj4gwqDC oMKgwqDCoMKgwqDCoMKgIGFyZ3MtPmZsYWdzICE9IA0KPj4+IERSTV9TWU5DT0JKX0hBTkRMRV9U T19GRF9GTEFHU19FWFBPUlRfU1lOQ19GSUxFKQ0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1 cm4gLUVJTlZBTDsNCj4+PiDCoCAtwqDCoMKgIGlmIChhcmdzLT5mbGFncyAmIA0KPj4+IERSTV9T WU5DT0JKX0hBTkRMRV9UT19GRF9GTEFHU19FWFBPUlRfU1lOQ19GSUxFKQ0KPj4+ICvCoMKgwqAg aWYgKGFyZ3MtPmZsYWdzICYgDQo+Pj4gRFJNX1NZTkNPQkpfSEFORExFX1RPX0ZEX0ZMQUdTX0VY UE9SVF9TWU5DX0ZJTEUpIHsNCj4+PiArwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9zeW5jb2Jq ICpzeW5jb2JqID0gZHJtX3N5bmNvYmpfZmluZChmaWxlX3ByaXZhdGUsDQo+Pj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGFyZ3MtPmhhbmRsZSk7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIGlmICghc3luY29iaiB8fCBz eW5jb2JqLT50eXBlICE9IERSTV9TWU5DT0JKX1RZUEVfQklOQVJZKQ0KPj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHJldHVybiAtRUlOVkFMOw0KPj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1 cm4gZHJtX3N5bmNvYmpfZXhwb3J0X3N5bmNfZmlsZShmaWxlX3ByaXZhdGUsIA0KPj4+IGFyZ3Mt PmhhbmRsZSwNCj4+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICZhcmdzLT5mZCk7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAwLCAmYXJncy0+ZmQpOw0KPj4+ICvCoMKgwqAg fQ0KPj4+IMKgIMKgwqDCoMKgwqAgcmV0dXJuIGRybV9zeW5jb2JqX2hhbmRsZV90b19mZChmaWxl X3ByaXZhdGUsIGFyZ3MtPmhhbmRsZSwNCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgJmFyZ3MtPmZkKTsNCj4+PiBAQCAtODQxLDE1ICs4NDYsNzIgQEAgZHJt X3N5bmNvYmpfZmRfdG9faGFuZGxlX2lvY3RsKHN0cnVjdCANCj4+PiBkcm1fZGV2aWNlICpkZXYs IHZvaWQgKmRhdGEsDQo+Pj4gwqDCoMKgwqDCoMKgwqDCoMKgIGFyZ3MtPmZsYWdzICE9IA0KPj4+ IERSTV9TWU5DT0JKX0ZEX1RPX0hBTkRMRV9GTEFHU19JTVBPUlRfU1lOQ19GSUxFKQ0KPj4+IMKg wqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVJTlZBTDsNCj4+PiDCoCArwqDCoMKgIGlmIChhcmdz LT5mbGFncyAmIA0KPj4+IERSTV9TWU5DT0JKX0ZEX1RPX0hBTkRMRV9GTEFHU19JTVBPUlRfU1lO Q19GSUxFKSB7DQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1fc3luY29iaiAqc3luY29i aiA9IGRybV9zeW5jb2JqX2ZpbmQoZmlsZV9wcml2YXRlLA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhcmdz LT5oYW5kbGUpOw0KPj4+ICvCoMKgwqDCoMKgwqDCoCBpZiAoIXN5bmNvYmogfHwgc3luY29iai0+ dHlwZSAhPSBEUk1fU1lOQ09CSl9UWVBFX0JJTkFSWSkNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCByZXR1cm4gLUVJTlZBTDsNCj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIGRybV9zeW5j b2JqX2ltcG9ydF9zeW5jX2ZpbGVfZmVuY2UoZmlsZV9wcml2YXRlLA0KPj4+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFyZ3MtPmZk LA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGFyZ3MtPmhhbmRsZSwNCj4+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAwKTsNCj4+PiArwqDCoMKgIH0NCj4+PiAr DQo+Pj4gK8KgwqDCoCByZXR1cm4gZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlKGZpbGVfcHJpdmF0 ZSwgYXJncy0+ZmQsDQo+Pj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICZhcmdzLT5oYW5kbGUpOw0KPj4+ICt9DQo+Pj4gKw0KPj4+ICtpbnQNCj4+PiArZHJtX3N5bmNv YmpfaGFuZGxlX3RvX2ZkX2lvY3RsMihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRh LA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc3RydWN0IGRybV9m aWxlICpmaWxlX3ByaXZhdGUpDQo+Pj4gK3sNCj4+PiArwqDCoMKgIHN0cnVjdCBkcm1fc3luY29i al9oYW5kbGUyICphcmdzID0gZGF0YTsNCj4+PiArDQo+Pj4gK8KgwqDCoCBpZiAoIWRybV9jb3Jl X2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfU1lOQ09CSikpDQo+Pj4gK8KgwqDCoMKgwqDCoMKg IHJldHVybiAtRU5PREVWOw0KPj4+ICsNCj4+PiArwqDCoMKgIGlmIChhcmdzLT5wYWQpDQo+Pj4g K8KgwqDCoMKgwqDCoMKgIHJldHVybiAtRUlOVkFMOw0KPj4+ICsNCj4+PiArwqDCoMKgIGlmIChh cmdzLT5mbGFncyAhPSAwICYmDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIGFyZ3MtPmZsYWdzICE9IA0K Pj4+IERSTV9TWU5DT0JKX0hBTkRMRV9UT19GRF9GTEFHU19FWFBPUlRfU1lOQ19GSUxFKQ0KPj4+ ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVJTlZBTDsNCj4+PiArDQo+Pj4gK8KgwqDCoCBpZiAo YXJncy0+ZmxhZ3MgJiBEUk1fU1lOQ09CSl9IQU5ETEVfVE9fRkRfRkxBR1NfRVhQT1JUX1NZTkNf RklMRSkNCj4+PiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIGRybV9zeW5jb2JqX2V4cG9ydF9zeW5j X2ZpbGUoZmlsZV9wcml2YXRlLCANCj4+PiBhcmdzLT5oYW5kbGUsDQo+Pj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhcmdzLT5wb2ludCwg JmFyZ3MtPmZkKTsNCj4+PiArDQo+Pj4gK8KgwqDCoCByZXR1cm4gZHJtX3N5bmNvYmpfaGFuZGxl X3RvX2ZkKGZpbGVfcHJpdmF0ZSwgYXJncy0+aGFuZGxlLA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmYXJncy0+ZmQpOw0KPj4+ICt9DQo+Pj4gKw0KPj4+ICtp bnQNCj4+PiArZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxlX2lvY3RsMihzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpDQo+Pj4gK3sNCj4+PiArwqDCoMKg IHN0cnVjdCBkcm1fc3luY29ial9oYW5kbGUyICphcmdzID0gZGF0YTsNCj4+PiArDQo+Pj4gK8Kg wqDCoCBpZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfU1lOQ09CSikpDQo+ Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAtRU5PREVWOw0KPj4+ICsNCj4+PiArwqDCoMKgIGlm IChhcmdzLT5wYWQpDQo+Pj4gK8KgwqDCoMKgwqDCoMKgIHJldHVybiAtRUlOVkFMOw0KPj4+ICsN Cj4+PiArwqDCoMKgIGlmIChhcmdzLT5mbGFncyAhPSAwICYmDQo+Pj4gK8KgwqDCoMKgwqDCoMKg IGFyZ3MtPmZsYWdzICE9IA0KPj4+IERSTV9TWU5DT0JKX0ZEX1RPX0hBTkRMRV9GTEFHU19JTVBP UlRfU1lOQ19GSUxFKQ0KPj4+ICvCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVJTlZBTDsNCj4+PiAr DQo+Pj4gwqDCoMKgwqDCoCBpZiAoYXJncy0+ZmxhZ3MgJiANCj4+PiBEUk1fU1lOQ09CSl9GRF9U T19IQU5ETEVfRkxBR1NfSU1QT1JUX1NZTkNfRklMRSkNCj4+PiDCoMKgwqDCoMKgwqDCoMKgwqAg cmV0dXJuIGRybV9zeW5jb2JqX2ltcG9ydF9zeW5jX2ZpbGVfZmVuY2UoZmlsZV9wcml2YXRlLA0K Pj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGFyZ3MtPmZkLA0KPj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGFyZ3MtPmhhbmRsZSk7DQo+Pj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXJncy0+ aGFuZGxlLA0KPj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGFyZ3MtPnBvaW50KTsNCj4+PiDCoCDCoMKgwqDCoMKgIHJldHVybiBk cm1fc3luY29ial9mZF90b19oYW5kbGUoZmlsZV9wcml2YXRlLCBhcmdzLT5mZCwNCj4+PiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJmFyZ3MtPmhhbmRsZSk7DQo+ Pj4gwqAgfQ0KPj4+IMKgICsNCj4+PiDCoCBzdHJ1Y3Qgc3luY29ial93YWl0X2VudHJ5IHsNCj4+ PiDCoMKgwqDCoMKgIHN0cnVjdCB0YXNrX3N0cnVjdCAqdGFzazsNCj4+PiDCoMKgwqDCoMKgIHN0 cnVjdCBkbWFfZmVuY2UgKmZlbmNlOw0KPj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3VhcGkvZHJt L2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm0uaA0KPj4+IGluZGV4IDIzYzQ5NzlkOGExYy4u ZGE1ZGYyYTQyZmMzIDEwMDY0NA0KPj4+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgNCj4+ PiArKysgYi9pbmNsdWRlL3VhcGkvZHJtL2RybS5oDQo+Pj4gQEAgLTczNSw2ICs3MzUsMTUgQEAg c3RydWN0IGRybV9zeW5jb2JqX2hhbmRsZSB7DQo+Pj4gwqDCoMKgwqDCoCBfX3MzMiBmZDsNCj4+ PiDCoMKgwqDCoMKgIF9fdTMyIHBhZDsNCj4+PiDCoCB9Ow0KPj4+ICtzdHJ1Y3QgZHJtX3N5bmNv YmpfaGFuZGxlMiB7DQo+Pj4gK8KgwqDCoCBfX3UzMiBoYW5kbGU7DQo+Pj4gK8KgwqDCoCBfX3Uz MiBmbGFnczsNCj4+PiArwqDCoMKgIF9fdTY0IHBvaW50Ow0KPj4+ICsNCj4+PiArwqDCoMKgIF9f czMyIGZkOw0KPj4+ICvCoMKgwqAgX191MzIgcGFkOw0KPj4+ICt9Ow0KPj4+ICsNCj4+PiDCoCDC oCAjZGVmaW5lIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9BTEwgKDEgPDwgMCkNCj4+PiDC oCAjZGVmaW5lIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9GT1JfU1VCTUlUICgxIDw8IDEp DQo+Pj4gQEAgLTkzOCw2ICs5NDcsOCBAQCBleHRlcm4gIkMiIHsNCj4+PiDCoCDCoCAjZGVmaW5l IERSTV9JT0NUTF9TWU5DT0JKX1RJTUVMSU5FX1dBSVTCoMKgwqAgRFJNX0lPV1IoMHhDQSwgc3Ry dWN0IA0KPj4+IGRybV9zeW5jb2JqX3RpbWVsaW5lX3dhaXQpDQo+Pj4gwqAgI2RlZmluZSBEUk1f SU9DVExfU1lOQ09CSl9RVUVSWcKgwqDCoMKgwqDCoMKgIERSTV9JT1dSKDB4Q0IsIHN0cnVjdCAN Cj4+PiBkcm1fc3luY29ial90aW1lbGluZV9xdWVyeSkNCj4+PiArI2RlZmluZSBEUk1fSU9DVExf U1lOQ09CSl9IQU5ETEVfVE9fRkQywqDCoMKgIERSTV9JT1dSKDB4Q0MsIHN0cnVjdCANCj4+PiBk cm1fc3luY29ial9oYW5kbGUyKQ0KPj4+ICsjZGVmaW5lIERSTV9JT0NUTF9TWU5DT0JKX0ZEX1RP X0hBTkRMRTLCoMKgwqAgRFJNX0lPV1IoMHhDRCwgc3RydWN0IA0KPj4+IGRybV9zeW5jb2JqX2hh bmRsZTIpDQo+Pj4gwqAgwqAgLyoqDQo+Pj4gwqDCoCAqIERldmljZSBzcGVjaWZpYyBpb2N0bHMg c2hvdWxkIG9ubHkgYmUgaW4gdGhlaXIgcmVzcGVjdGl2ZSBoZWFkZXJzDQo+Pg0KPg0KDQpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFp bGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK