From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lionel Landwerlin Subject: Re: [PATCH 3/9] drm/syncobj: add support for timeline point wait v8 Date: Mon, 18 Mar 2019 16:59:31 +0000 Message-ID: <5b68b54a-5d8d-9666-bd45-aa53b6b295e7@intel.com> References: <20190315120959.25489-1-david1.zhou@amd.com> <20190315120959.25489-3-david1.zhou@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190315120959.25489-3-david1.zhou@amd.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Chunming Zhou , dri-devel@lists.freedesktop.org, amd-gfx@lists.freedesktop.org, jason@jlekstrand.net, Christian.Koenig@amd.com Cc: Dave Airlie , Daniel Rakos List-Id: amd-gfx.lists.freedesktop.org T24gMTUvMDMvMjAxOSAxMjowOSwgQ2h1bm1pbmcgWmhvdSB3cm90ZToKPiBwb2ludHMgYXJyYXkg aXMgb25lLXRvLW9uZSBtYXRjaCB3aXRoIHN5bmNvYmpzIGFycmF5Lgo+IHYyOgo+IGFkZCBzZXBl cmF0ZSBpb2N0bCBmb3IgdGltZWxpbmUgcG9pbnQgd2FpdCwgb3RoZXJ3aXNlIGJyZWFrIHVhcGku Cj4gdjM6Cj4gdXNlcnNwYWNlIGNhbiBzcGVjaWZ5IHR3byBraW5kcyB3YWl0czo6Cj4gYS4gV2Fp dCBmb3IgdGltZSBwb2ludCB0byBiZSBjb21wbGV0ZWQuCj4gYi4gYW5kIHdhaXQgZm9yIHRpbWUg cG9pbnQgdG8gYmVjb21lIGF2YWlsYWJsZQo+IHY0Ogo+IHJlYmFzZQo+IHY1Ogo+IGFkZCBjb21t ZW50IGZvciB4eHhfV0FJVF9BVkFJTEFCTEUKPiB2NjogcmViYXNlIGFuZCByZXdvcmsgb24gbmV3 IGNvbnRhaW5lcgo+IHY3OiBkcm9wIF9XQUlUX0NPTVBMRVRFRCwgaXQgaXMgdGhlIGRlZmF1bHQg YW55d2F5Cj4gdjg6IGNvcnJlY3RseSBoYW5kbGUgZ2FyYmFnZSBjb2xsZWN0ZWQgZmVuY2VzCj4K PiBTaWduZWQtb2ZmLWJ5OiBDaHVubWluZyBaaG91IDxkYXZpZDEuemhvdUBhbWQuY29tPgo+IFNp Z25lZC1vZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4K PiBDYzogRGFuaWVsIFJha29zIDxEYW5pZWwuUmFrb3NAYW1kLmNvbT4KPiBDYzogSmFzb24gRWtz dHJhbmQgPGphc29uQGpsZWtzdHJhbmQubmV0Pgo+IENjOiBCYXMgTmlldXdlbmh1aXplbiA8YmFz QGJhc25pZXV3ZW5odWl6ZW4ubmw+Cj4gQ2M6IERhdmUgQWlybGllIDxhaXJsaWVkQHJlZGhhdC5j b20+Cj4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IC0tLQo+ ICAgZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oIHwgICAyICsKPiAgIGRyaXZlcnMvZ3B1 L2RybS9kcm1faW9jdGwuYyAgICB8ICAgMiArCj4gICBkcml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNv YmouYyAgfCAxNTMgKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCj4gICBpbmNsdWRl L3VhcGkvZHJtL2RybS5oICAgICAgICAgfCAgMTUgKysrKwo+ICAgNCBmaWxlcyBjaGFuZ2VkLCAx NDMgaW5zZXJ0aW9ucygrKSwgMjkgZGVsZXRpb25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRlcm5hbC5o Cj4gaW5kZXggMjUxZDY3ZTA0YzJkLi4zMzFhYzYyMjViNTggMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9pbnRlcm5hbC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9pbnRl cm5hbC5oCj4gQEAgLTE4Miw2ICsxODIsOCBAQCBpbnQgZHJtX3N5bmNvYmpfZmRfdG9faGFuZGxl X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICAJCQkJICAgc3Ry dWN0IGRybV9maWxlICpmaWxlX3ByaXZhdGUpOwo+ICAgaW50IGRybV9zeW5jb2JqX3dhaXRfaW9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgIAkJCSAgIHN0cnVjdCBk cm1fZmlsZSAqZmlsZV9wcml2YXRlKTsKPiAraW50IGRybV9zeW5jb2JqX3RpbWVsaW5lX3dhaXRf aW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiArCQkJCSAgICBzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSk7Cj4gICBpbnQgZHJtX3N5bmNvYmpfcmVzZXRfaW9j dGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAgIAkJCSAgICBzdHJ1Y3Qg ZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSk7Cj4gICBpbnQgZHJtX3N5bmNvYmpfc2lnbmFsX2lvY3Rs KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9kcm1faW9jdGwuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwo+IGlu ZGV4IDY4Nzk0M2RmNThlMS4uYzk4NDY1NDY0NmZhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1faW9jdGwuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYwo+IEBA IC02ODgsNiArNjg4LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faW9jdGxfZGVzYyBkcm1f aW9jdGxzW10gPSB7Cj4gICAJCSAgICAgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwK PiAgIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TWU5DT0JKX1dBSVQsIGRybV9zeW5jb2JqX3dh aXRfaW9jdGwsCj4gICAJCSAgICAgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVSX0FMTE9XKSwKPiAr CURSTV9JT0NUTF9ERUYoRFJNX0lPQ1RMX1NZTkNPQkpfVElNRUxJTkVfV0FJVCwgZHJtX3N5bmNv YmpfdGltZWxpbmVfd2FpdF9pb2N0bCwKPiArCQkgICAgICBEUk1fVU5MT0NLRUR8RFJNX1JFTkRF Ul9BTExPVyksCj4gICAJRFJNX0lPQ1RMX0RFRihEUk1fSU9DVExfU1lOQ09CSl9SRVNFVCwgZHJt X3N5bmNvYmpfcmVzZXRfaW9jdGwsCj4gICAJCSAgICAgIERSTV9VTkxPQ0tFRHxEUk1fUkVOREVS X0FMTE9XKSwKPiAgIAlEUk1fSU9DVExfREVGKERSTV9JT0NUTF9TWU5DT0JKX1NJR05BTCwgZHJt X3N5bmNvYmpfc2lnbmFsX2lvY3RsLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJt X3N5bmNvYmouYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fc3luY29iai5jCj4gaW5kZXggMTlhOWNl NjM4MTE5Li5lYWU1MTk3OGNkYTQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9z eW5jb2JqLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX3N5bmNvYmouYwo+IEBAIC02MSw2 ICs2MSw3IEBAIHN0cnVjdCBzeW5jb2JqX3dhaXRfZW50cnkgewo+ICAgCXN0cnVjdCB0YXNrX3N0 cnVjdCAqdGFzazsKPiAgIAlzdHJ1Y3QgZG1hX2ZlbmNlICpmZW5jZTsKPiAgIAlzdHJ1Y3QgZG1h X2ZlbmNlX2NiIGZlbmNlX2NiOwo+ICsJdTY0ICAgIHBvaW50Owo+ICAgfTsKPiAgIAo+ICAgc3Rh dGljIHZvaWQgc3luY29ial93YWl0X3N5bmNvYmpfZnVuYyhzdHJ1Y3QgZHJtX3N5bmNvYmogKnN5 bmNvYmosCj4gQEAgLTk1LDYgKzk2LDggQEAgRVhQT1JUX1NZTUJPTChkcm1fc3luY29ial9maW5k KTsKPiAgIHN0YXRpYyB2b2lkIGRybV9zeW5jb2JqX2ZlbmNlX2FkZF93YWl0KHN0cnVjdCBkcm1f c3luY29iaiAqc3luY29iaiwKPiAgIAkJCQkgICAgICAgc3RydWN0IHN5bmNvYmpfd2FpdF9lbnRy eSAqd2FpdCkKPiAgIHsKPiArCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwo+ICsKPiAgIAlpZiAo d2FpdC0+ZmVuY2UpCj4gICAJCXJldHVybjsKPiAgIAo+IEBAIC0xMDMsMTEgKzEwNiwxNSBAQCBz dGF0aWMgdm9pZCBkcm1fc3luY29ial9mZW5jZV9hZGRfd2FpdChzdHJ1Y3QgZHJtX3N5bmNvYmog KnN5bmNvYmosCj4gICAJICogaGF2ZSB0aGUgbG9jaywgdHJ5IG9uZSBtb3JlIHRpbWUganVzdCB0 byBiZSBzdXJlIHdlIGRvbid0IGFkZCBhCj4gICAJICogY2FsbGJhY2sgd2hlbiBhIGZlbmNlIGhh cyBhbHJlYWR5IGJlZW4gc2V0Lgo+ICAgCSAqLwo+IC0JaWYgKHN5bmNvYmotPmZlbmNlKQo+IC0J CXdhaXQtPmZlbmNlID0gZG1hX2ZlbmNlX2dldCgKPiAtCQkJcmN1X2RlcmVmZXJlbmNlX3Byb3Rl Y3RlZChzeW5jb2JqLT5mZW5jZSwgMSkpOwo+IC0JZWxzZQo+ICsJZmVuY2UgPSBkbWFfZmVuY2Vf Z2V0KHJjdV9kZXJlZmVyZW5jZV9wcm90ZWN0ZWQoc3luY29iai0+ZmVuY2UsIDEpKTsKPiArCWlm ICghZmVuY2UgfHwgZG1hX2ZlbmNlX2NoYWluX2ZpbmRfc2Vxbm8oJmZlbmNlLCB3YWl0LT5wb2lu dCkpIHsKPiArCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKPiAgIAkJbGlzdF9hZGRfdGFpbCgmd2Fp dC0+bm9kZSwgJnN5bmNvYmotPmNiX2xpc3QpOwo+ICsJfSBlbHNlIGlmICghZmVuY2UpIHsKPiAr CQl3YWl0LT5mZW5jZSA9IGRtYV9mZW5jZV9nZXRfc3R1YigpOwo+ICsJfSBlbHNlIHsKPiArCQl3 YWl0LT5mZW5jZSA9IGZlbmNlOwo+ICsJfQo+ICAgCXNwaW5fdW5sb2NrKCZzeW5jb2JqLT5sb2Nr KTsKPiAgIH0KPiAgIAo+IEBAIC0xNDksMTAgKzE1Niw4IEBAIHZvaWQgZHJtX3N5bmNvYmpfYWRk X3BvaW50KHN0cnVjdCBkcm1fc3luY29iaiAqc3luY29iaiwKPiAgIAlkbWFfZmVuY2VfY2hhaW5f aW5pdChjaGFpbiwgcHJldiwgZmVuY2UsIHBvaW50KTsKPiAgIAlyY3VfYXNzaWduX3BvaW50ZXIo c3luY29iai0+ZmVuY2UsICZjaGFpbi0+YmFzZSk7Cj4gICAKPiAtCWxpc3RfZm9yX2VhY2hfZW50 cnlfc2FmZShjdXIsIHRtcCwgJnN5bmNvYmotPmNiX2xpc3QsIG5vZGUpIHsKPiAtCQlsaXN0X2Rl bF9pbml0KCZjdXItPm5vZGUpOwo+ICsJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKGN1ciwgdG1w LCAmc3luY29iai0+Y2JfbGlzdCwgbm9kZSkKPiAgIAkJc3luY29ial93YWl0X3N5bmNvYmpfZnVu YyhzeW5jb2JqLCBjdXIpOwo+IC0JfQo+ICAgCXNwaW5fdW5sb2NrKCZzeW5jb2JqLT5sb2NrKTsK PiAgIAo+ICAgCS8qIFdhbGsgdGhlIGNoYWluIG9uY2UgdG8gdHJpZ2dlciBnYXJiYWdlIGNvbGxl Y3Rpb24gKi8KPiBAQCAtMTg0LDEwICsxODksOCBAQCB2b2lkIGRybV9zeW5jb2JqX3JlcGxhY2Vf ZmVuY2Uoc3RydWN0IGRybV9zeW5jb2JqICpzeW5jb2JqLAo+ICAgCXJjdV9hc3NpZ25fcG9pbnRl cihzeW5jb2JqLT5mZW5jZSwgZmVuY2UpOwo+ICAgCj4gICAJaWYgKGZlbmNlICE9IG9sZF9mZW5j ZSkgewo+IC0JCWxpc3RfZm9yX2VhY2hfZW50cnlfc2FmZShjdXIsIHRtcCwgJnN5bmNvYmotPmNi X2xpc3QsIG5vZGUpIHsKPiAtCQkJbGlzdF9kZWxfaW5pdCgmY3VyLT5ub2RlKTsKPiArCQlsaXN0 X2Zvcl9lYWNoX2VudHJ5X3NhZmUoY3VyLCB0bXAsICZzeW5jb2JqLT5jYl9saXN0LCBub2RlKQo+ ICAgCQkJc3luY29ial93YWl0X3N5bmNvYmpfZnVuYyhzeW5jb2JqLCBjdXIpOwo+IC0JCX0KPiAg IAl9Cj4gICAKPiAgIAlzcGluX3VubG9jaygmc3luY29iai0+bG9jayk7Cj4gQEAgLTY0NCwxMyAr NjQ3LDI3IEBAIHN0YXRpYyB2b2lkIHN5bmNvYmpfd2FpdF9mZW5jZV9mdW5jKHN0cnVjdCBkbWFf ZmVuY2UgKmZlbmNlLAo+ICAgc3RhdGljIHZvaWQgc3luY29ial93YWl0X3N5bmNvYmpfZnVuYyhz dHJ1Y3QgZHJtX3N5bmNvYmogKnN5bmNvYmosCj4gICAJCQkJICAgICAgc3RydWN0IHN5bmNvYmpf d2FpdF9lbnRyeSAqd2FpdCkKPiAgIHsKPiArCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwo+ICsK PiAgIAkvKiBUaGlzIGhhcHBlbnMgaW5zaWRlIHRoZSBzeW5jb2JqIGxvY2sgKi8KPiAtCXdhaXQt PmZlbmNlID0gZG1hX2ZlbmNlX2dldChyY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKHN5bmNvYmot PmZlbmNlLAo+IC0JCQkJCQkJICAgICAgbG9ja2RlcF9pc19oZWxkKCZzeW5jb2JqLT5sb2NrKSkp Owo+ICsJZmVuY2UgPSByY3VfZGVyZWZlcmVuY2VfcHJvdGVjdGVkKHN5bmNvYmotPmZlbmNlLAo+ ICsJCQkJCSAgbG9ja2RlcF9pc19oZWxkKCZzeW5jb2JqLT5sb2NrKSk7Cj4gKwlkbWFfZmVuY2Vf Z2V0KGZlbmNlKTsKPiArCWlmICghZmVuY2UgfHwgZG1hX2ZlbmNlX2NoYWluX2ZpbmRfc2Vxbm8o JmZlbmNlLCB3YWl0LT5wb2ludCkpIHsKPiArCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKPiArCQly ZXR1cm47Cj4gKwl9IGVsc2UgaWYgKCFmZW5jZSkgewo+ICsJCXdhaXQtPmZlbmNlID0gZG1hX2Zl bmNlX2dldF9zdHViKCk7Cj4gKwl9IGVsc2Ugewo+ICsJCXdhaXQtPmZlbmNlID0gZmVuY2U7Cj4g Kwl9Cj4gKwo+ICAgCXdha2VfdXBfcHJvY2Vzcyh3YWl0LT50YXNrKTsKPiArCWxpc3RfZGVsX2lu aXQoJndhaXQtPm5vZGUpOwo+ICAgfQo+ICAgCj4gICBzdGF0aWMgc2lnbmVkIGxvbmcgZHJtX3N5 bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN0cnVjdCBkcm1fc3luY29iaiAqKnN5bmNvYmpzLAo+ ICsJCQkJCQkgIHZvaWQgX191c2VyICp1c2VyX3BvaW50cywKPiAgIAkJCQkJCSAgdWludDMyX3Qg Y291bnQsCj4gICAJCQkJCQkgIHVpbnQzMl90IGZsYWdzLAo+ICAgCQkJCQkJICBzaWduZWQgbG9u ZyB0aW1lb3V0LAo+IEBAIC02NTgsMTIgKzY3NSwyNyBAQCBzdGF0aWMgc2lnbmVkIGxvbmcgZHJt X3N5bmNvYmpfYXJyYXlfd2FpdF90aW1lb3V0KHN0cnVjdCBkcm1fc3luY29iaiAqKnN5bmNvYmpz LAo+ICAgewo+ICAgCXN0cnVjdCBzeW5jb2JqX3dhaXRfZW50cnkgKmVudHJpZXM7Cj4gICAJc3Ry dWN0IGRtYV9mZW5jZSAqZmVuY2U7Cj4gKwl1aW50NjRfdCAqcG9pbnRzOwo+ICAgCXVpbnQzMl90 IHNpZ25hbGVkX2NvdW50LCBpOwo+ICAgCj4gLQllbnRyaWVzID0ga2NhbGxvYyhjb3VudCwgc2l6 ZW9mKCplbnRyaWVzKSwgR0ZQX0tFUk5FTCk7Cj4gLQlpZiAoIWVudHJpZXMpCj4gKwlwb2ludHMg PSBrbWFsbG9jX2FycmF5KGNvdW50LCBzaXplb2YoKnBvaW50cyksIEdGUF9LRVJORUwpOwo+ICsJ aWYgKHBvaW50cyA9PSBOVUxMKQo+ICAgCQlyZXR1cm4gLUVOT01FTTsKPiAgIAo+ICsJaWYgKCF1 c2VyX3BvaW50cykgewo+ICsJCW1lbXNldChwb2ludHMsIDAsIGNvdW50ICogc2l6ZW9mKHVpbnQ2 NF90KSk7Cj4gKwo+ICsJfSBlbHNlIGlmIChjb3B5X2Zyb21fdXNlcihwb2ludHMsIHVzZXJfcG9p bnRzLAo+ICsJCQkJICBzaXplb2YodWludDY0X3QpICogY291bnQpKSB7Cj4gKwkJdGltZW91dCA9 IC1FRkFVTFQ7Cj4gKwkJZ290byBlcnJfZnJlZV9wb2ludHM7Cj4gKwl9Cj4gKwo+ICsJZW50cmll cyA9IGtjYWxsb2MoY291bnQsIHNpemVvZigqZW50cmllcyksIEdGUF9LRVJORUwpOwo+ICsJaWYg KCFlbnRyaWVzKSB7Cj4gKwkJdGltZW91dCA9IC1FTk9NRU07Cj4gKwkJZ290byBlcnJfZnJlZV9w b2ludHM7Cj4gKwl9Cj4gICAJLyogV2FsayB0aGUgbGlzdCBvZiBzeW5jIG9iamVjdHMgYW5kIGlu aXRpYWxpemUgZW50cmllcy4gIFdlIGRvCj4gICAJICogdGhpcyB1cC1mcm9udCBzbyB0aGF0IHdl IGNhbiBwcm9wZXJseSByZXR1cm4gLUVJTlZBTCBpZiB0aGVyZSBpcwo+ICAgCSAqIGEgc3luY29i aiB3aXRoIGEgbWlzc2luZyBmZW5jZSBhbmQgdGhlbiBuZXZlciBoYXZlIHRoZSBjaGFuY2Ugb2YK PiBAQCAtNjcxLDkgKzcwMywxMyBAQCBzdGF0aWMgc2lnbmVkIGxvbmcgZHJtX3N5bmNvYmpfYXJy YXlfd2FpdF90aW1lb3V0KHN0cnVjdCBkcm1fc3luY29iaiAqKnN5bmNvYmpzLAo+ICAgCSAqLwo+ ICAgCXNpZ25hbGVkX2NvdW50ID0gMDsKPiAgIAlmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsraSkg ewo+ICsJCXN0cnVjdCBkbWFfZmVuY2UgKmZlbmNlOwo+ICsKPiAgIAkJZW50cmllc1tpXS50YXNr ID0gY3VycmVudDsKPiAtCQllbnRyaWVzW2ldLmZlbmNlID0gZHJtX3N5bmNvYmpfZmVuY2VfZ2V0 KHN5bmNvYmpzW2ldKTsKPiAtCQlpZiAoIWVudHJpZXNbaV0uZmVuY2UpIHsKPiArCQllbnRyaWVz W2ldLnBvaW50ID0gcG9pbnRzW2ldOwo+ICsJCWZlbmNlID0gZHJtX3N5bmNvYmpfZmVuY2VfZ2V0 KHN5bmNvYmpzW2ldKTsKPiArCQlpZiAoIWZlbmNlIHx8IGRtYV9mZW5jZV9jaGFpbl9maW5kX3Nl cW5vKCZmZW5jZSwgcG9pbnRzW2ldKSkgewo+ICsJCQlkbWFfZmVuY2VfcHV0KGZlbmNlKTsKPiAg IAkJCWlmIChmbGFncyAmIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9GT1JfU1VCTUlUKSB7 Cj4gICAJCQkJY29udGludWU7Cj4gICAJCQl9IGVsc2Ugewo+IEBAIC02ODIsNyArNzE4LDEzIEBA IHN0YXRpYyBzaWduZWQgbG9uZyBkcm1fc3luY29ial9hcnJheV93YWl0X3RpbWVvdXQoc3RydWN0 IGRybV9zeW5jb2JqICoqc3luY29ianMsCj4gICAJCQl9Cj4gICAJCX0KPiAgIAo+IC0JCWlmIChk bWFfZmVuY2VfaXNfc2lnbmFsZWQoZW50cmllc1tpXS5mZW5jZSkpIHsKPiArCQlpZiAoZmVuY2Up Cj4gKwkJCWVudHJpZXNbaV0uZmVuY2UgPSBmZW5jZTsKPiArCQllbHNlCj4gKwkJCWVudHJpZXNb aV0uZmVuY2UgPSBkbWFfZmVuY2VfZ2V0X3N0dWIoKTsKPiArCj4gKwkJaWYgKChmbGFncyAmIERS TV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9BVkFJTEFCTEUpIHx8CgoKSGV5IERhdmlkLAoKQ291 bGQgeW91IHJlbWluZCBtZSB3aGF0IERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9BVkFJTEFC TEUgaXMgdXNlZCBmb3I/CgpJIGRpZG4ndCBoYXZlIGEgdXNlIGZvciBpdCBpbiB1c2Vyc3BhY2Us CgpUaGFua3MsCgotTGlvbmVsCgoKPiArCQkgICAgZG1hX2ZlbmNlX2lzX3NpZ25hbGVkKGVudHJp ZXNbaV0uZmVuY2UpKSB7Cj4gICAJCQlpZiAoc2lnbmFsZWRfY291bnQgPT0gMCAmJiBpZHgpCj4g ICAJCQkJKmlkeCA9IGk7Cj4gICAJCQlzaWduYWxlZF9jb3VudCsrOwo+IEBAIC03MTUsNyArNzU3 LDggQEAgc3RhdGljIHNpZ25lZCBsb25nIGRybV9zeW5jb2JqX2FycmF5X3dhaXRfdGltZW91dChz dHJ1Y3QgZHJtX3N5bmNvYmogKipzeW5jb2JqcywKPiAgIAkJCWlmICghZmVuY2UpCj4gICAJCQkJ Y29udGludWU7Cj4gICAKPiAtCQkJaWYgKGRtYV9mZW5jZV9pc19zaWduYWxlZChmZW5jZSkgfHwK PiArCQkJaWYgKChmbGFncyAmIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9BVkFJTEFCTEUp IHx8Cj4gKwkJCSAgICBkbWFfZmVuY2VfaXNfc2lnbmFsZWQoZmVuY2UpIHx8Cj4gICAJCQkgICAg KCFlbnRyaWVzW2ldLmZlbmNlX2NiLmZ1bmMgJiYKPiAgIAkJCSAgICAgZG1hX2ZlbmNlX2FkZF9j YWxsYmFjayhmZW5jZSwKPiAgIAkJCQkJCSAgICAmZW50cmllc1tpXS5mZW5jZV9jYiwKPiBAQCAt NzYwLDYgKzgwMyw5IEBAIHN0YXRpYyBzaWduZWQgbG9uZyBkcm1fc3luY29ial9hcnJheV93YWl0 X3RpbWVvdXQoc3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianMsCj4gICAJfQo+ICAgCWtmcmVl KGVudHJpZXMpOwo+ICAgCj4gK2Vycl9mcmVlX3BvaW50czoKPiArCWtmcmVlKHBvaW50cyk7Cj4g Kwo+ICAgCXJldHVybiB0aW1lb3V0Owo+ICAgfQo+ICAgCj4gQEAgLTc5OSwxOSArODQ1LDMzIEBA IEVYUE9SVF9TWU1CT0woZHJtX3RpbWVvdXRfYWJzX3RvX2ppZmZpZXMpOwo+ICAgc3RhdGljIGlu dCBkcm1fc3luY29ial9hcnJheV93YWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJCQkJ ICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSwKPiAgIAkJCQkgIHN0cnVjdCBkcm1fc3lu Y29ial93YWl0ICp3YWl0LAo+IC0JCQkJICBzdHJ1Y3QgZHJtX3N5bmNvYmogKipzeW5jb2JqcykK PiArCQkJCSAgc3RydWN0IGRybV9zeW5jb2JqX3RpbWVsaW5lX3dhaXQgKnRpbWVsaW5lX3dhaXQs Cj4gKwkJCQkgIHN0cnVjdCBkcm1fc3luY29iaiAqKnN5bmNvYmpzLCBib29sIHRpbWVsaW5lKQo+ ICAgewo+IC0Jc2lnbmVkIGxvbmcgdGltZW91dCA9IGRybV90aW1lb3V0X2Fic190b19qaWZmaWVz KHdhaXQtPnRpbWVvdXRfbnNlYyk7Cj4gKwlzaWduZWQgbG9uZyB0aW1lb3V0ID0gMDsKPiAgIAl1 aW50MzJfdCBmaXJzdCA9IH4wOwo+ICAgCj4gLQl0aW1lb3V0ID0gZHJtX3N5bmNvYmpfYXJyYXlf d2FpdF90aW1lb3V0KHN5bmNvYmpzLAo+IC0JCQkJCQkgd2FpdC0+Y291bnRfaGFuZGxlcywKPiAt CQkJCQkJIHdhaXQtPmZsYWdzLAo+IC0JCQkJCQkgdGltZW91dCwgJmZpcnN0KTsKPiAtCWlmICh0 aW1lb3V0IDwgMCkKPiAtCQlyZXR1cm4gdGltZW91dDsKPiAtCj4gLQl3YWl0LT5maXJzdF9zaWdu YWxlZCA9IGZpcnN0Owo+ICsJaWYgKCF0aW1lbGluZSkgewo+ICsJCXRpbWVvdXQgPSBkcm1fdGlt ZW91dF9hYnNfdG9famlmZmllcyh3YWl0LT50aW1lb3V0X25zZWMpOwo+ICsJCXRpbWVvdXQgPSBk cm1fc3luY29ial9hcnJheV93YWl0X3RpbWVvdXQoc3luY29ianMsCj4gKwkJCQkJCQkgTlVMTCwK PiArCQkJCQkJCSB3YWl0LT5jb3VudF9oYW5kbGVzLAo+ICsJCQkJCQkJIHdhaXQtPmZsYWdzLAo+ ICsJCQkJCQkJIHRpbWVvdXQsICZmaXJzdCk7Cj4gKwkJaWYgKHRpbWVvdXQgPCAwKQo+ICsJCQly ZXR1cm4gdGltZW91dDsKPiArCQl3YWl0LT5maXJzdF9zaWduYWxlZCA9IGZpcnN0Owo+ICsJfSBl bHNlIHsKPiArCQl0aW1lb3V0ID0gZHJtX3RpbWVvdXRfYWJzX3RvX2ppZmZpZXModGltZWxpbmVf d2FpdC0+dGltZW91dF9uc2VjKTsKPiArCQl0aW1lb3V0ID0gZHJtX3N5bmNvYmpfYXJyYXlfd2Fp dF90aW1lb3V0KHN5bmNvYmpzLAo+ICsJCQkJCQkJIHU2NF90b191c2VyX3B0cih0aW1lbGluZV93 YWl0LT5wb2ludHMpLAo+ICsJCQkJCQkJIHRpbWVsaW5lX3dhaXQtPmNvdW50X2hhbmRsZXMsCj4g KwkJCQkJCQkgdGltZWxpbmVfd2FpdC0+ZmxhZ3MsCj4gKwkJCQkJCQkgdGltZW91dCwgJmZpcnN0 KTsKPiArCQlpZiAodGltZW91dCA8IDApCj4gKwkJCXJldHVybiB0aW1lb3V0Owo+ICsJCXRpbWVs aW5lX3dhaXQtPmZpcnN0X3NpZ25hbGVkID0gZmlyc3Q7Cj4gKwl9Cj4gICAJcmV0dXJuIDA7Cj4g ICB9Cj4gICAKPiBAQCAtODk3LDEzICs5NTcsNDggQEAgZHJtX3N5bmNvYmpfd2FpdF9pb2N0bChz dHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAgCQlyZXR1cm4gcmV0Owo+ICAg Cj4gICAJcmV0ID0gZHJtX3N5bmNvYmpfYXJyYXlfd2FpdChkZXYsIGZpbGVfcHJpdmF0ZSwKPiAt CQkJCSAgICAgYXJncywgc3luY29ianMpOwo+ICsJCQkJICAgICBhcmdzLCBOVUxMLCBzeW5jb2Jq cywgZmFsc2UpOwo+ICAgCj4gICAJZHJtX3N5bmNvYmpfYXJyYXlfZnJlZShzeW5jb2JqcywgYXJn cy0+Y291bnRfaGFuZGxlcyk7Cj4gICAKPiAgIAlyZXR1cm4gcmV0Owo+ICAgfQo+ICAgCj4gK2lu dAo+ICtkcm1fc3luY29ial90aW1lbGluZV93YWl0X2lvY3RsKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsIHZvaWQgKmRhdGEsCj4gKwkJCQlzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdmF0ZSkKPiAr ewo+ICsJc3RydWN0IGRybV9zeW5jb2JqX3RpbWVsaW5lX3dhaXQgKmFyZ3MgPSBkYXRhOwo+ICsJ c3RydWN0IGRybV9zeW5jb2JqICoqc3luY29ianM7Cj4gKwlpbnQgcmV0ID0gMDsKPiArCj4gKwlp ZiAoIWRybV9jb3JlX2NoZWNrX2ZlYXR1cmUoZGV2LCBEUklWRVJfU1lOQ09CSikpCj4gKwkJcmV0 dXJuIC1FTk9ERVY7Cj4gKwo+ICsJaWYgKGFyZ3MtPmZsYWdzICYgfihEUk1fU1lOQ09CSl9XQUlU X0ZMQUdTX1dBSVRfQUxMIHwKPiArCQkJICAgIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9G T1JfU1VCTUlUIHwKPiArCQkJICAgIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9BVkFJTEFC TEUpKQo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCWlmIChhcmdzLT5jb3VudF9oYW5kbGVz ID09IDApCj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gKwo+ICsJcmV0ID0gZHJtX3N5bmNvYmpfYXJy YXlfZmluZChmaWxlX3ByaXZhdGUsCj4gKwkJCQkgICAgIHU2NF90b191c2VyX3B0cihhcmdzLT5o YW5kbGVzKSwKPiArCQkJCSAgICAgYXJncy0+Y291bnRfaGFuZGxlcywKPiArCQkJCSAgICAgJnN5 bmNvYmpzKTsKPiArCWlmIChyZXQgPCAwKQo+ICsJCXJldHVybiByZXQ7Cj4gKwo+ICsJcmV0ID0g ZHJtX3N5bmNvYmpfYXJyYXlfd2FpdChkZXYsIGZpbGVfcHJpdmF0ZSwKPiArCQkJCSAgICAgTlVM TCwgYXJncywgc3luY29ianMsIHRydWUpOwo+ICsKPiArCWRybV9zeW5jb2JqX2FycmF5X2ZyZWUo c3luY29ianMsIGFyZ3MtPmNvdW50X2hhbmRsZXMpOwo+ICsKPiArCXJldHVybiByZXQ7Cj4gK30K PiArCj4gKwo+ICAgaW50Cj4gICBkcm1fc3luY29ial9yZXNldF9pb2N0bChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAgCQkJc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXZh dGUpCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmggYi9pbmNsdWRlL3VhcGkv ZHJtL2RybS5oCj4gaW5kZXggMzAwZjMzNjYzM2YyLi4wMDkyMTExZDAwMmMgMTAwNjQ0Cj4gLS0t IGEvaW5jbHVkZS91YXBpL2RybS9kcm0uaAo+ICsrKyBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtLmgK PiBAQCAtNzM3LDYgKzczNyw3IEBAIHN0cnVjdCBkcm1fc3luY29ial9oYW5kbGUgewo+ICAgCj4g ICAjZGVmaW5lIERSTV9TWU5DT0JKX1dBSVRfRkxBR1NfV0FJVF9BTEwgKDEgPDwgMCkKPiAgICNk ZWZpbmUgRFJNX1NZTkNPQkpfV0FJVF9GTEFHU19XQUlUX0ZPUl9TVUJNSVQgKDEgPDwgMSkKPiAr I2RlZmluZSBEUk1fU1lOQ09CSl9XQUlUX0ZMQUdTX1dBSVRfQVZBSUxBQkxFICgxIDw8IDIpCj4g ICBzdHJ1Y3QgZHJtX3N5bmNvYmpfd2FpdCB7Cj4gICAJX191NjQgaGFuZGxlczsKPiAgIAkvKiBh YnNvbHV0ZSB0aW1lb3V0ICovCj4gQEAgLTc0Nyw2ICs3NDgsMTkgQEAgc3RydWN0IGRybV9zeW5j b2JqX3dhaXQgewo+ICAgCV9fdTMyIHBhZDsKPiAgIH07Cj4gICAKPiArc3RydWN0IGRybV9zeW5j b2JqX3RpbWVsaW5lX3dhaXQgewo+ICsJX191NjQgaGFuZGxlczsKPiArCS8qIHdhaXQgb24gc3Bl Y2lmaWMgdGltZWxpbmUgcG9pbnQgZm9yIGV2ZXJ5IGhhbmRsZXMqLwo+ICsJX191NjQgcG9pbnRz Owo+ICsJLyogYWJzb2x1dGUgdGltZW91dCAqLwo+ICsJX19zNjQgdGltZW91dF9uc2VjOwo+ICsJ X191MzIgY291bnRfaGFuZGxlczsKPiArCV9fdTMyIGZsYWdzOwo+ICsJX191MzIgZmlyc3Rfc2ln bmFsZWQ7IC8qIG9ubHkgdmFsaWQgd2hlbiBub3Qgd2FpdGluZyBhbGwgKi8KPiArCV9fdTMyIHBh ZDsKPiArfTsKPiArCj4gKwo+ICAgc3RydWN0IGRybV9zeW5jb2JqX2FycmF5IHsKPiAgIAlfX3U2 NCBoYW5kbGVzOwo+ICAgCV9fdTMyIGNvdW50X2hhbmRsZXM7Cj4gQEAgLTkwOSw2ICs5MjMsNyBA QCBleHRlcm4gIkMiIHsKPiAgICNkZWZpbmUgRFJNX0lPQ1RMX01PREVfR0VUX0xFQVNFCURSTV9J T1dSKDB4QzgsIHN0cnVjdCBkcm1fbW9kZV9nZXRfbGVhc2UpCj4gICAjZGVmaW5lIERSTV9JT0NU TF9NT0RFX1JFVk9LRV9MRUFTRQlEUk1fSU9XUigweEM5LCBzdHJ1Y3QgZHJtX21vZGVfcmV2b2tl X2xlYXNlKQo+ICAgCj4gKyNkZWZpbmUgRFJNX0lPQ1RMX1NZTkNPQkpfVElNRUxJTkVfV0FJVAlE Uk1fSU9XUigweENBLCBzdHJ1Y3QgZHJtX3N5bmNvYmpfdGltZWxpbmVfd2FpdCkKPiAgIC8qKgo+ ICAgICogRGV2aWNlIHNwZWNpZmljIGlvY3RscyBzaG91bGQgb25seSBiZSBpbiB0aGVpciByZXNw ZWN0aXZlIGhlYWRlcnMKPiAgICAqIFRoZSBkZXZpY2Ugc3BlY2lmaWMgaW9jdGwgcmFuZ2UgaXMg ZnJvbSAweDQwIHRvIDB4OWYuCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVs