From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 02/10] drm/i915: Move i915_gem_retire_work_handler Date: Wed, 17 Jan 2018 10:33:44 +0000 Message-ID: <48063a06-4a35-f5d1-3517-e107b887307e@linux.intel.com> References: <20180115212455.24046-1-chris@chris-wilson.co.uk> <20180115212455.24046-3-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id C6E076E3F0 for ; Wed, 17 Jan 2018 10:33:47 +0000 (UTC) In-Reply-To: <20180115212455.24046-3-chris@chris-wilson.co.uk> Content-Language: en-GB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE1LzAxLzIwMTggMjE6MjQsIENocmlzIFdpbHNvbiB3cm90ZToKPiBJbiBwcmVwYXJhdGlv biBmb3IgdGhlIG5leHQgcGF0Y2gsIG1vdmUgaTkxNV9nZW1fcmV0aXJlX3dvcmtfaGFuZGxlcigp Cj4gbGF0ZXIgdG8gYXZvaWQgYSBmb3J3YXJkIGRlY2xhcmF0aW9uLgo+IAo+IFNpZ25lZC1vZmYt Ynk6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IC0tLQo+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYyB8IDIyOCArKysrKysrKysrKysrKysrKysrKy0t LS0tLS0tLS0tLS0tLS0tLS0tCj4gICAxIGZpbGUgY2hhbmdlZCwgMTE0IGluc2VydGlvbnMoKyks IDExNCBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMKPiBpbmRleCA4Nzkz N2M0ZjlkZmYuLmE4ODQwYTUxNDM3NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBA IC0zMzEwLDEyMCArMzMxMCw2IEBAIGJvb2wgaTkxNV9nZW1fdW5zZXRfd2VkZ2VkKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1KQo+ICAgCXJldHVybiB0cnVlOwo+ICAgfQo+ICAgCj4gLXN0 YXRpYyB2b2lkCj4gLWk5MTVfZ2VtX3JldGlyZV93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKQo+IC17Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQo+ IC0JCWNvbnRhaW5lcl9vZih3b3JrLCB0eXBlb2YoKmRldl9wcml2KSwgZ3QucmV0aXJlX3dvcmsu d29yayk7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gLQo+ IC0JLyogQ29tZSBiYWNrIGxhdGVyIGlmIHRoZSBkZXZpY2UgaXMgYnVzeS4uLiAqLwo+IC0JaWYg KG11dGV4X3RyeWxvY2soJmRldi0+c3RydWN0X211dGV4KSkgewo+IC0JCWk5MTVfZ2VtX3JldGly ZV9yZXF1ZXN0cyhkZXZfcHJpdik7Cj4gLQkJbXV0ZXhfdW5sb2NrKCZkZXYtPnN0cnVjdF9tdXRl eCk7Cj4gLQl9Cj4gLQo+IC0JLyogS2VlcCB0aGUgcmV0aXJlIGhhbmRsZXIgcnVubmluZyB1bnRp bCB3ZSBhcmUgZmluYWxseSBpZGxlLgo+IC0JICogV2UgZG8gbm90IG5lZWQgdG8gZG8gdGhpcyB0 ZXN0IHVuZGVyIGxvY2tpbmcgYXMgaW4gdGhlIHdvcnN0LWNhc2UKPiAtCSAqIHdlIHF1ZXVlIHRo ZSByZXRpcmUgd29ya2VyIG9uY2UgdG9vIG9mdGVuLgo+IC0JICovCj4gLQlpZiAoUkVBRF9PTkNF KGRldl9wcml2LT5ndC5hd2FrZSkpIHsKPiAtCQlpOTE1X3F1ZXVlX2hhbmdjaGVjayhkZXZfcHJp dik7Cj4gLQkJcXVldWVfZGVsYXllZF93b3JrKGRldl9wcml2LT53cSwKPiAtCQkJCSAgICZkZXZf cHJpdi0+Z3QucmV0aXJlX3dvcmssCj4gLQkJCQkgICByb3VuZF9qaWZmaWVzX3VwX3JlbGF0aXZl KEhaKSk7Cj4gLQl9Cj4gLX0KPiAtCj4gLXN0YXRpYyBpbmxpbmUgYm9vbAo+IC1uZXdfcmVxdWVz dHNfc2luY2VfbGFzdF9yZXRpcmUoY29uc3Qgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUp Cj4gLXsKPiAtCXJldHVybiAoUkVBRF9PTkNFKGk5MTUtPmd0LmFjdGl2ZV9yZXF1ZXN0cykgfHwK PiAtCQl3b3JrX3BlbmRpbmcoJmk5MTUtPmd0LmlkbGVfd29yay53b3JrKSk7Cj4gLX0KPiAtCj4g LXN0YXRpYyB2b2lkCj4gLWk5MTVfZ2VtX2lkbGVfd29ya19oYW5kbGVyKHN0cnVjdCB3b3JrX3N0 cnVjdCAqd29yaykKPiAtewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0K PiAtCQljb250YWluZXJfb2Yod29yaywgdHlwZW9mKCpkZXZfcHJpdiksIGd0LmlkbGVfd29yay53 b3JrKTsKPiAtCWJvb2wgcmVhcm1faGFuZ2NoZWNrOwo+IC0Ja3RpbWVfdCBlbmQ7Cj4gLQo+IC0J aWYgKCFSRUFEX09OQ0UoZGV2X3ByaXYtPmd0LmF3YWtlKSkKPiAtCQlyZXR1cm47Cj4gLQo+IC0J LyoKPiAtCSAqIFdhaXQgZm9yIGxhc3QgZXhlY2xpc3RzIGNvbnRleHQgY29tcGxldGUsIGJ1dCBi YWlsIG91dCBpbiBjYXNlIGEKPiAtCSAqIG5ldyByZXF1ZXN0IGlzIHN1Ym1pdHRlZC4KPiAtCSAq Lwo+IC0JZW5kID0ga3RpbWVfYWRkX21zKGt0aW1lX2dldCgpLCBJOTE1X0lETEVfRU5HSU5FU19U SU1FT1VUKTsKPiAtCWRvIHsKPiAtCQlpZiAobmV3X3JlcXVlc3RzX3NpbmNlX2xhc3RfcmV0aXJl KGRldl9wcml2KSkKPiAtCQkJcmV0dXJuOwo+IC0KPiAtCQlpZiAoaW50ZWxfZW5naW5lc19hcmVf aWRsZShkZXZfcHJpdikpCj4gLQkJCWJyZWFrOwo+IC0KPiAtCQl1c2xlZXBfcmFuZ2UoMTAwLCA1 MDApOwo+IC0JfSB3aGlsZSAoa3RpbWVfYmVmb3JlKGt0aW1lX2dldCgpLCBlbmQpKTsKPiAtCj4g LQlyZWFybV9oYW5nY2hlY2sgPQo+IC0JCWNhbmNlbF9kZWxheWVkX3dvcmtfc3luYygmZGV2X3By aXYtPmdwdV9lcnJvci5oYW5nY2hlY2tfd29yayk7Cj4gLQo+IC0JaWYgKCFtdXRleF90cnlsb2Nr KCZkZXZfcHJpdi0+ZHJtLnN0cnVjdF9tdXRleCkpIHsKPiAtCQkvKiBDdXJyZW50bHkgYnVzeSwg Y29tZSBiYWNrIGxhdGVyICovCj4gLQkJbW9kX2RlbGF5ZWRfd29yayhkZXZfcHJpdi0+d3EsCj4g LQkJCQkgJmRldl9wcml2LT5ndC5pZGxlX3dvcmssCj4gLQkJCQkgbXNlY3NfdG9famlmZmllcyg1 MCkpOwo+IC0JCWdvdG8gb3V0X3JlYXJtOwo+IC0JfQo+IC0KPiAtCS8qCj4gLQkgKiBOZXcgcmVx dWVzdCByZXRpcmVkIGFmdGVyIHRoaXMgd29yayBoYW5kbGVyIHN0YXJ0ZWQsIGV4dGVuZCBhY3Rp dmUKPiAtCSAqIHBlcmlvZCB1bnRpbCBuZXh0IGluc3RhbmNlIG9mIHRoZSB3b3JrLgo+IC0JICov Cj4gLQlpZiAobmV3X3JlcXVlc3RzX3NpbmNlX2xhc3RfcmV0aXJlKGRldl9wcml2KSkKPiAtCQln b3RvIG91dF91bmxvY2s7Cj4gLQo+IC0JLyoKPiAtCSAqIEJlIHBhcmFub2lkIGFuZCBmbHVzaCBh IGNvbmN1cnJlbnQgaW50ZXJydXB0IHRvIG1ha2Ugc3VyZQo+IC0JICogd2UgZG9uJ3QgcmVhY3Rp dmF0ZSBhbnkgaXJxIHRhc2tsZXRzIGFmdGVyIHBhcmtpbmcuCj4gLQkgKgo+IC0JICogRklYTUU6 IE5vdGUgdGhhdCBldmVuIHRob3VnaCB3ZSBoYXZlIHdhaXRlZCBmb3IgZXhlY2xpc3RzIHRvIGJl IGlkbGUsCj4gLQkgKiB0aGVyZSBtYXkgc3RpbGwgYmUgYW4gaW4tZmxpZ2h0IGludGVycnVwdCBl dmVuIHRob3VnaCB0aGUgQ1NCCj4gLQkgKiBpcyBub3cgZW1wdHkuIHN5bmNocm9uaXplX2lycSgp IG1ha2VzIHN1cmUgdGhhdCBhIHJlc2lkdWFsIGludGVycnVwdAo+IC0JICogaXMgY29tcGxldGVk IGJlZm9yZSB3ZSBjb250aW51ZSwgYnV0IGl0IGRvZXNuJ3QgcHJldmVudCB0aGUgSFcgZnJvbQo+ IC0JICogcmFpc2luZyBhIHNwdXJpb3VzIGludGVycnVwdCBsYXRlci4gVG8gY29tcGxldGUgdGhl IHNoaWVsZCB3ZSBzaG91bGQKPiAtCSAqIGNvb3JkaW5hdGUgZGlzYWJsaW5nIHRoZSBDUyBpcnEg d2l0aCBmbHVzaGluZyB0aGUgaW50ZXJydXB0cy4KPiAtCSAqLwo+IC0Jc3luY2hyb25pemVfaXJx KGRldl9wcml2LT5kcm0uaXJxKTsKPiAtCj4gLQlpbnRlbF9lbmdpbmVzX3BhcmsoZGV2X3ByaXYp Owo+IC0JaTkxNV9nZW1fdGltZWxpbmVzX3BhcmsoZGV2X3ByaXYpOwo+IC0KPiAtCWk5MTVfcG11 X2d0X3BhcmtlZChkZXZfcHJpdik7Cj4gLQo+IC0JR0VNX0JVR19PTighZGV2X3ByaXYtPmd0LmF3 YWtlKTsKPiAtCWRldl9wcml2LT5ndC5hd2FrZSA9IGZhbHNlOwo+IC0JcmVhcm1faGFuZ2NoZWNr ID0gZmFsc2U7Cj4gLQo+IC0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNikKPiAtCQlnZW42 X3Jwc19pZGxlKGRldl9wcml2KTsKPiAtCj4gLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZf cHJpdiwgUE9XRVJfRE9NQUlOX0dUX0lSUSk7Cj4gLQo+IC0JaW50ZWxfcnVudGltZV9wbV9wdXQo ZGV2X3ByaXYpOwo+IC1vdXRfdW5sb2NrOgo+IC0JbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZHJt LnN0cnVjdF9tdXRleCk7Cj4gLQo+IC1vdXRfcmVhcm06Cj4gLQlpZiAocmVhcm1faGFuZ2NoZWNr KSB7Cj4gLQkJR0VNX0JVR19PTighZGV2X3ByaXYtPmd0LmF3YWtlKTsKPiAtCQlpOTE1X3F1ZXVl X2hhbmdjaGVjayhkZXZfcHJpdik7Cj4gLQl9Cj4gLX0KPiAtCj4gICB2b2lkIGk5MTVfZ2VtX2Ns b3NlX29iamVjdChzdHJ1Y3QgZHJtX2dlbV9vYmplY3QgKmdlbSwgc3RydWN0IGRybV9maWxlICpm aWxlKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0gdG9faTkxNShn ZW0tPmRldik7Cj4gQEAgLTQ3OTgsNiArNDY4NCwxMjAgQEAgdm9pZCBpOTE1X2dlbV9zYW5pdGl6 ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKPiAgIAl9Cj4gICB9Cj4gICAKPiArc3Rh dGljIHZvaWQKPiAraTkxNV9nZW1fcmV0aXJlX3dvcmtfaGFuZGxlcihzdHJ1Y3Qgd29ya19zdHJ1 Y3QgKndvcmspCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9Cj4g KwkJY29udGFpbmVyX29mKHdvcmssIHR5cGVvZigqZGV2X3ByaXYpLCBndC5yZXRpcmVfd29yay53 b3JrKTsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKPiArCj4g KwkvKiBDb21lIGJhY2sgbGF0ZXIgaWYgdGhlIGRldmljZSBpcyBidXN5Li4uICovCj4gKwlpZiAo bXV0ZXhfdHJ5bG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpKSB7Cj4gKwkJaTkxNV9nZW1fcmV0aXJl X3JlcXVlc3RzKGRldl9wcml2KTsKPiArCQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4 KTsKPiArCX0KPiArCj4gKwkvKiBLZWVwIHRoZSByZXRpcmUgaGFuZGxlciBydW5uaW5nIHVudGls IHdlIGFyZSBmaW5hbGx5IGlkbGUuCj4gKwkgKiBXZSBkbyBub3QgbmVlZCB0byBkbyB0aGlzIHRl c3QgdW5kZXIgbG9ja2luZyBhcyBpbiB0aGUgd29yc3QtY2FzZQo+ICsJICogd2UgcXVldWUgdGhl IHJldGlyZSB3b3JrZXIgb25jZSB0b28gb2Z0ZW4uCj4gKwkgKi8KPiArCWlmIChSRUFEX09OQ0Uo ZGV2X3ByaXYtPmd0LmF3YWtlKSkgewo+ICsJCWk5MTVfcXVldWVfaGFuZ2NoZWNrKGRldl9wcml2 KTsKPiArCQlxdWV1ZV9kZWxheWVkX3dvcmsoZGV2X3ByaXYtPndxLAo+ICsJCQkJICAgJmRldl9w cml2LT5ndC5yZXRpcmVfd29yaywKPiArCQkJCSAgIHJvdW5kX2ppZmZpZXNfdXBfcmVsYXRpdmUo SFopKTsKPiArCX0KPiArfQo+ICsKPiArc3RhdGljIGlubGluZSBib29sCj4gK25ld19yZXF1ZXN0 c19zaW5jZV9sYXN0X3JldGlyZShjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkK PiArewo+ICsJcmV0dXJuIChSRUFEX09OQ0UoaTkxNS0+Z3QuYWN0aXZlX3JlcXVlc3RzKSB8fAo+ ICsJCXdvcmtfcGVuZGluZygmaTkxNS0+Z3QuaWRsZV93b3JrLndvcmspKTsKPiArfQo+ICsKPiAr c3RhdGljIHZvaWQKPiAraTkxNV9nZW1faWRsZV93b3JrX2hhbmRsZXIoc3RydWN0IHdvcmtfc3Ry dWN0ICp3b3JrKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQo+ ICsJCWNvbnRhaW5lcl9vZih3b3JrLCB0eXBlb2YoKmRldl9wcml2KSwgZ3QuaWRsZV93b3JrLndv cmspOwo+ICsJYm9vbCByZWFybV9oYW5nY2hlY2s7Cj4gKwlrdGltZV90IGVuZDsKPiArCj4gKwlp ZiAoIVJFQURfT05DRShkZXZfcHJpdi0+Z3QuYXdha2UpKQo+ICsJCXJldHVybjsKPiArCj4gKwkv Kgo+ICsJICogV2FpdCBmb3IgbGFzdCBleGVjbGlzdHMgY29udGV4dCBjb21wbGV0ZSwgYnV0IGJh aWwgb3V0IGluIGNhc2UgYQo+ICsJICogbmV3IHJlcXVlc3QgaXMgc3VibWl0dGVkLgo+ICsJICov Cj4gKwllbmQgPSBrdGltZV9hZGRfbXMoa3RpbWVfZ2V0KCksIEk5MTVfSURMRV9FTkdJTkVTX1RJ TUVPVVQpOwo+ICsJZG8gewo+ICsJCWlmIChuZXdfcmVxdWVzdHNfc2luY2VfbGFzdF9yZXRpcmUo ZGV2X3ByaXYpKQo+ICsJCQlyZXR1cm47Cj4gKwo+ICsJCWlmIChpbnRlbF9lbmdpbmVzX2FyZV9p ZGxlKGRldl9wcml2KSkKPiArCQkJYnJlYWs7Cj4gKwo+ICsJCXVzbGVlcF9yYW5nZSgxMDAsIDUw MCk7Cj4gKwl9IHdoaWxlIChrdGltZV9iZWZvcmUoa3RpbWVfZ2V0KCksIGVuZCkpOwo+ICsKPiAr CXJlYXJtX2hhbmdjaGVjayA9Cj4gKwkJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZkZXZfcHJp di0+Z3B1X2Vycm9yLmhhbmdjaGVja193b3JrKTsKPiArCj4gKwlpZiAoIW11dGV4X3RyeWxvY2so JmRldl9wcml2LT5kcm0uc3RydWN0X211dGV4KSkgewo+ICsJCS8qIEN1cnJlbnRseSBidXN5LCBj b21lIGJhY2sgbGF0ZXIgKi8KPiArCQltb2RfZGVsYXllZF93b3JrKGRldl9wcml2LT53cSwKPiAr CQkJCSAmZGV2X3ByaXYtPmd0LmlkbGVfd29yaywKPiArCQkJCSBtc2Vjc190b19qaWZmaWVzKDUw KSk7Cj4gKwkJZ290byBvdXRfcmVhcm07Cj4gKwl9Cj4gKwo+ICsJLyoKPiArCSAqIE5ldyByZXF1 ZXN0IHJldGlyZWQgYWZ0ZXIgdGhpcyB3b3JrIGhhbmRsZXIgc3RhcnRlZCwgZXh0ZW5kIGFjdGl2 ZQo+ICsJICogcGVyaW9kIHVudGlsIG5leHQgaW5zdGFuY2Ugb2YgdGhlIHdvcmsuCj4gKwkgKi8K PiArCWlmIChuZXdfcmVxdWVzdHNfc2luY2VfbGFzdF9yZXRpcmUoZGV2X3ByaXYpKQo+ICsJCWdv dG8gb3V0X3VubG9jazsKPiArCj4gKwkvKgo+ICsJICogQmUgcGFyYW5vaWQgYW5kIGZsdXNoIGEg Y29uY3VycmVudCBpbnRlcnJ1cHQgdG8gbWFrZSBzdXJlCj4gKwkgKiB3ZSBkb24ndCByZWFjdGl2 YXRlIGFueSBpcnEgdGFza2xldHMgYWZ0ZXIgcGFya2luZy4KPiArCSAqCj4gKwkgKiBGSVhNRTog Tm90ZSB0aGF0IGV2ZW4gdGhvdWdoIHdlIGhhdmUgd2FpdGVkIGZvciBleGVjbGlzdHMgdG8gYmUg aWRsZSwKPiArCSAqIHRoZXJlIG1heSBzdGlsbCBiZSBhbiBpbi1mbGlnaHQgaW50ZXJydXB0IGV2 ZW4gdGhvdWdoIHRoZSBDU0IKPiArCSAqIGlzIG5vdyBlbXB0eS4gc3luY2hyb25pemVfaXJxKCkg bWFrZXMgc3VyZSB0aGF0IGEgcmVzaWR1YWwgaW50ZXJydXB0Cj4gKwkgKiBpcyBjb21wbGV0ZWQg YmVmb3JlIHdlIGNvbnRpbnVlLCBidXQgaXQgZG9lc24ndCBwcmV2ZW50IHRoZSBIVyBmcm9tCj4g KwkgKiByYWlzaW5nIGEgc3B1cmlvdXMgaW50ZXJydXB0IGxhdGVyLiBUbyBjb21wbGV0ZSB0aGUg c2hpZWxkIHdlIHNob3VsZAo+ICsJICogY29vcmRpbmF0ZSBkaXNhYmxpbmcgdGhlIENTIGlycSB3 aXRoIGZsdXNoaW5nIHRoZSBpbnRlcnJ1cHRzLgo+ICsJICovCj4gKwlzeW5jaHJvbml6ZV9pcnEo ZGV2X3ByaXYtPmRybS5pcnEpOwo+ICsKPiArCWludGVsX2VuZ2luZXNfcGFyayhkZXZfcHJpdik7 Cj4gKwlpOTE1X2dlbV90aW1lbGluZXNfcGFyayhkZXZfcHJpdik7Cj4gKwo+ICsJaTkxNV9wbXVf Z3RfcGFya2VkKGRldl9wcml2KTsKPiArCj4gKwlHRU1fQlVHX09OKCFkZXZfcHJpdi0+Z3QuYXdh a2UpOwo+ICsJZGV2X3ByaXYtPmd0LmF3YWtlID0gZmFsc2U7Cj4gKwlyZWFybV9oYW5nY2hlY2sg PSBmYWxzZTsKPiArCj4gKwlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA2KQo+ICsJCWdlbjZf cnBzX2lkbGUoZGV2X3ByaXYpOwo+ICsKPiArCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9w cml2LCBQT1dFUl9ET01BSU5fR1RfSVJRKTsKPiArCj4gKwlpbnRlbF9ydW50aW1lX3BtX3B1dChk ZXZfcHJpdik7Cj4gK291dF91bmxvY2s6Cj4gKwltdXRleF91bmxvY2soJmRldl9wcml2LT5kcm0u c3RydWN0X211dGV4KTsKPiArCj4gK291dF9yZWFybToKPiArCWlmIChyZWFybV9oYW5nY2hlY2sp IHsKPiArCQlHRU1fQlVHX09OKCFkZXZfcHJpdi0+Z3QuYXdha2UpOwo+ICsJCWk5MTVfcXVldWVf aGFuZ2NoZWNrKGRldl9wcml2KTsKPiArCX0KPiArfQo+ICsKPiAgIGludCBpOTE1X2dlbV9zdXNw ZW5kKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgIHsKPiAgIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4gCgpSZXZpZXdlZC1ieTogVHZydGtv IFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClJlZ2FyZHMsCgpUdnJ0a28KX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1h aWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==