From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 2/4] drm/i915: Improve dynamic management/eviction of lrc backing objects Date: Wed, 7 Oct 2015 18:05:46 +0200 Message-ID: <20151007160546.GT3383@phenom.ffwll.local> References: <1444143124-16030-1-git-send-email-nicholas.hoath@intel.com> <1444143124-16030-3-git-send-email-nicholas.hoath@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com [209.85.212.176]) by gabe.freedesktop.org (Postfix) with ESMTPS id E735C6E3D3 for ; Wed, 7 Oct 2015 09:02:53 -0700 (PDT) Received: by wiclk2 with SMTP id lk2so35750423wic.1 for ; Wed, 07 Oct 2015 09:02:52 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1444143124-16030-3-git-send-email-nicholas.hoath@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Nick Hoath Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBPY3QgMDYsIDIwMTUgYXQgMDM6NTI6MDJQTSArMDEwMCwgTmljayBIb2F0aCB3cm90 ZToKPiBTaG92ZWwgYWxsIGNvbnRleHQgcmVsYXRlZCBvYmplY3RzIHRocm91Z2ggdGhlIGFjdGl2 ZSBxdWV1ZSBhbmQgb2JqCj4gbWFuYWdlbWVudC4KPiAKPiAtIEFkZGVkIGNhbGxiYWNrIGluIHZt YV8odW4pYmluZCB0byBhZGQgQ1BVICh1biltYXBwaW5nIGF0IHNhbWUgdGltZQo+ICAgaWYgZGVz aXJlZAo+IC0gSW5zZXJ0ZWQgTFJDIGh3IGNvbnRleHQgJiByaW5nYnVmIHRvIHZtYSBhY3RpdmUg bGlzdAo+IAo+IElzc3VlOiBWSVotNDI3Nwo+IFNpZ25lZC1vZmYtYnk6IE5pY2sgSG9hdGggPG5p Y2hvbGFzLmhvYXRoQGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCAgICAgICAgIHwgIDQgKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0u YyAgICAgICAgIHwgIDMgKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMg ICAgIHwgIDggKysrKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYyAgICAgICAg fCAyOCArKysrKysrKysrKy0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYyB8IDcxICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggfCAgMyAtLQo+ICA2IGZpbGVzIGNoYW5nZWQs IDc5IGluc2VydGlvbnMoKyksIDM4IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaAo+IGluZGV4IDNkMjE3ZjkuLmQ2NjBlZTMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiBAQCAtMjE2OSw2ICsyMTY5LDEwIEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0IHsK PiAgCQkJc3RydWN0IHdvcmtfc3RydWN0ICp3b3JrOwo+ICAJCX0gdXNlcnB0cjsKPiAgCX07Cj4g Kwo+ICsJLyoqIFN1cHBvcnQgZm9yIGF1dG9tYXRpYyBDUFUgc2lkZSBtYXBwaW5nIG9mIG9iamVj dCAqLwo+ICsJaW50ICgqbW1hcCkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwgYm9v bCB1bm1hcCk7CgpJIGRvbid0IHRoaW5rIHdlIG5lZWQgYSBtYXAgaG9vaywgdGhhdCBjYW4gc3Rp bGwgYmUgZG9uZSAoaWYgbm90IGRvbmUgc28KYWxyZWFkeSkgYnkgdGhlIGNhbGxlcnMuIEFsc28g aXQncyBiZXR0ZXIgdG8gcmVuYW1lIHRoaXMgdG8gdm1hX3VuYmluZAooYW5kIGl0IHNob3VsZCBi ZSBhdCB0aGUgdm1hIGxldmVsIEkgdGhpbmspIHNpbmNlIHRoZXJlJ3Mgb3RoZXIgcG90ZW50aWFs CnVzZXJzLiBTbyBleHBsaWNpdCBtYXBpbmcsIGxhenkgdW5tYXBwaW5nIGZvciB0aGUga21hcHMg d2UgbmVlZC4gVGhhdCdzCnRoZSBzYW1lIGRlc2lnbiB3ZSdyZSB1c2luZyBmb3IgYmluZGluZyBv YmplY3RzIGludG8gZ3B1IGFkZHJlc3Mgc3BhY2VzLgoKQWxzbyBDaHJpcyBXaWxzb24gaGFzIHNv bWV0aGluZyBzaW1pbGFyLCBwbGVhc2UgYWxpZ24gd2l0aCBoaW0gb24gdGhlCnByZWNpc2UgZGVz aWduIG9mIHRoaXMgY2FsbGJhY2suCgpUaGFua3MsIERhbmllbAoKPiArCXZvaWQgKm1hcHBhYmxl Owo+ICB9Owo+ICAjZGVmaW5lIHRvX2ludGVsX2JvKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCwgYmFzZSkKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4g aW5kZXggZmM4MjE3MS4uNTZlMGUwMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBA IC0zMjYyLDYgKzMyNjIsOSBAQCBzdGF0aWMgaW50IF9faTkxNV92bWFfdW5iaW5kKHN0cnVjdCBp OTE1X3ZtYSAqdm1hLCBib29sIHdhaXQpCj4gIAlpZiAodm1hLT5waW5fY291bnQpCj4gIAkJcmV0 dXJuIC1FQlVTWTsKPiAgCj4gKwlpZiAob2JqLT5tbWFwKQo+ICsJCW9iai0+bW1hcChvYmosIHRy dWUpOwo+ICsKPiAgCUJVR19PTihvYmotPnBhZ2VzID09IE5VTEwpOwo+ICAKPiAgCWlmICh3YWl0 KSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiBpbmRleCA2MjBkNTdlLi43ODZl YzRiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmMKPiBAQCAtMzQ5NSw2ICsz NDk1LDE0IEBAIGludCBpOTE1X3ZtYV9iaW5kKHN0cnVjdCBpOTE1X3ZtYSAqdm1hLCBlbnVtIGk5 MTVfY2FjaGVfbGV2ZWwgY2FjaGVfbGV2ZWwsCj4gIAo+ICAJdm1hLT5ib3VuZCB8PSBiaW5kX2Zs YWdzOwo+ICAKPiArCWlmICh2bWEtPm9iai0+bW1hcCkgewo+ICsJCXJldCA9IHZtYS0+b2JqLT5t bWFwKHZtYS0+b2JqLCBmYWxzZSk7Cj4gKwkJaWYgKHJldCkgewo+ICsJCQlpOTE1X3ZtYV91bmJp bmQodm1hKTsKPiArCQkJcmV0dXJuIHJldDsKPiArCQl9Cj4gKwl9Cj4gKwo+ICAJcmV0dXJuIDA7 Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBpbmRleCBlOGY1YjZjLi5iODA3 OTI4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHJjLmMKPiBAQCAtNzIzLDYgKzcyMywxOCBA QCBpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZV9hbmRfc3VibWl0KHN0cnVjdCBkcm1faTkxNV9n ZW1fcmVxdWVzdCAqcmVxdWVzdCkKPiAgCj4gIAlpbnRlbF9sb2dpY2FsX3JpbmdfYWR2YW5jZShy ZXF1ZXN0LT5yaW5nYnVmKTsKPiAgCj4gKwkvKiBQdXNoIHRoZSBodyBjb250ZXh0IG9uIHRvIHRo ZSBhY3RpdmUgbGlzdCAqLwo+ICsJaTkxNV92bWFfbW92ZV90b19hY3RpdmUoCj4gKwkJCWk5MTVf Z2VtX29ial90b19nZ3R0KAo+ICsJCQkJcmVxdWVzdC0+Y3R4LT5lbmdpbmVbcmluZy0+aWRdLnN0 YXRlKSwKPiArCQkJcmVxdWVzdCk7Cj4gKwo+ICsJLyogUHVzaCB0aGUgcmluZ2J1ZiBvbiB0byB0 aGUgYWN0aXZlIGxpc3QgKi8KPiArCWk5MTVfdm1hX21vdmVfdG9fYWN0aXZlKAo+ICsJCQlpOTE1 X2dlbV9vYmpfdG9fZ2d0dCgKPiArCQkJcmVxdWVzdC0+Y3R4LT5lbmdpbmVbcmluZy0+aWRdLnJp bmdidWYtPm9iaiksCj4gKwkJCXJlcXVlc3QpOwo+ICsKPiAgCXJlcXVlc3QtPnRhaWwgPSByZXF1 ZXN0LT5yaW5nYnVmLT50YWlsOwo+ICAKPiAgCWlmIChpbnRlbF9yaW5nX3N0b3BwZWQocmluZykp Cj4gQEAgLTEwMDYsMTAgKzEwMTgsMTUgQEAgc3RhdGljIGludCBpbnRlbF9scl9jb250ZXh0X2Rv X3BpbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAJaWYgKHJldCkKPiAgCQlyZXR1 cm4gcmV0Owo+ICAKPiAtCXJldCA9IGludGVsX3Bpbl9hbmRfbWFwX3JpbmdidWZmZXJfb2JqKHJp bmctPmRldiwgcmluZ2J1Zik7Cj4gKwlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4ocmluZ2J1 Zi0+b2JqLCBQQUdFX1NJWkUsCj4gKwkJCVBJTl9NQVBQQUJMRSk7Cj4gIAlpZiAocmV0KQo+ICAJ CWdvdG8gdW5waW5fY3R4X29iajsKPiAgCj4gKwlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0X3Rv X2d0dF9kb21haW4ocmluZ2J1Zi0+b2JqLCB0cnVlKTsKPiArCWlmIChyZXQpCj4gKwkJZ290byB1 bnBpbl9yYl9vYmo7Cj4gKwo+ICAJY3R4X29iai0+ZGlydHkgPSB0cnVlOwo+ICAKPiAgCS8qIElu dmFsaWRhdGUgR3VDIFRMQi4gKi8KPiBAQCAtMTAxOCw2ICsxMDM1LDggQEAgc3RhdGljIGludCBp bnRlbF9scl9jb250ZXh0X2RvX3BpbihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAK PiAgCXJldHVybiByZXQ7Cj4gIAo+ICt1bnBpbl9yYl9vYmo6Cj4gKwlpOTE1X2dlbV9vYmplY3Rf Z2d0dF91bnBpbihyaW5nYnVmLT5vYmopOwo+ICB1bnBpbl9jdHhfb2JqOgo+ICAJaTkxNV9nZW1f b2JqZWN0X2dndHRfdW5waW4oY3R4X29iaik7Cj4gIAo+IEBAIC0xMDUyLDcgKzEwNzEsNyBAQCB2 b2lkIGludGVsX2xyX2NvbnRleHRfdW5waW4oc3RydWN0IGRybV9pOTE1X2dlbV9yZXF1ZXN0ICpy cSkKPiAgCWlmIChjdHhfb2JqKSB7Cj4gIAkJV0FSTl9PTighbXV0ZXhfaXNfbG9ja2VkKCZyaW5n LT5kZXYtPnN0cnVjdF9tdXRleCkpOwo+ICAJCWlmICgtLXJxLT5jdHgtPmVuZ2luZVtyaW5nLT5p ZF0ucGluX2NvdW50ID09IDApIHsKPiAtCQkJaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmoocmlu Z2J1Zik7Cj4gKwkJCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKHJpbmdidWYtPm9iaik7Cj4g IAkJCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKGN0eF9vYmopOwo+ICAJCX0KPiAgCX0KPiBA QCAtMjM2OSw3ICsyMzg4LDcgQEAgdm9pZCBpbnRlbF9scl9jb250ZXh0X2ZyZWUoc3RydWN0IGlu dGVsX2NvbnRleHQgKmN0eCkKPiAgCQkJc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyA9IHJp bmdidWYtPnJpbmc7Cj4gIAo+ICAJCQlpZiAoY3R4ID09IHJpbmctPmRlZmF1bHRfY29udGV4dCkg ewo+IC0JCQkJaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmoocmluZ2J1Zik7Cj4gKwkJCQlpOTE1 X2dlbV9vYmplY3RfZ2d0dF91bnBpbihyaW5nYnVmLT5vYmopOwo+ICAJCQkJaTkxNV9nZW1fb2Jq ZWN0X2dndHRfdW5waW4oY3R4X29iaik7Cj4gIAkJCX0KPiAgCQkJV0FSTl9PTihjdHgtPmVuZ2lu ZVtyaW5nLT5pZF0ucGluX2NvdW50KTsKPiBAQCAtMjUzNiw1ICsyNTU1LDggQEAgdm9pZCBpbnRl bF9scl9jb250ZXh0X3Jlc2V0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAo+ICAJCXJpbmdi dWYtPmhlYWQgPSAwOwo+ICAJCXJpbmdidWYtPnRhaWwgPSAwOwo+ICsKPiArCQlpOTE1X2dlbV9v YmplY3RfZ2d0dF91bnBpbigKPiArCQkJCWN0eC0+ZW5naW5lW3JpbmctPmlkXS5zdGF0ZSk7Cj4g IAl9Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gaW5kZXgg YzgyYzc0Yy4uNzlkZjhjYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVm ZmVyLmMKPiBAQCAtMTk1OCwzOCArMTk1OCwzNSBAQCBzdGF0aWMgaW50IGluaXRfcGh5c19zdGF0 dXNfcGFnZShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICAJcmV0dXJuIDA7Cj4gIH0K PiAgCj4gLXZvaWQgaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmooc3RydWN0IGludGVsX3Jpbmdi dWZmZXIgKnJpbmdidWYpCj4gK3N0YXRpYyBpbnQgaW50ZWxfbW1hcF9yaW5nYnVmZmVyX29iaihz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAo+ICsJCWJvb2wgdW5tYXApCj4gIHsKPiAt CWlvdW5tYXAocmluZ2J1Zi0+dmlydHVhbF9zdGFydCk7Cj4gLQlyaW5nYnVmLT52aXJ0dWFsX3N0 YXJ0ID0gTlVMTDsKPiAtCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKHJpbmdidWYtPm9iaik7 Cj4gLX0KPiAtCj4gLWludCBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVmZmVyX29iaihzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2LAo+IC0JCQkJICAgICBzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmlu Z2J1ZikKPiAtewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShkZXYpOwo+IC0Jc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9IHJpbmdidWYtPm9i ajsKPiAtCWludCByZXQ7Cj4gLQo+IC0JcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKG9iaiwg UEFHRV9TSVpFLCBQSU5fTUFQUEFCTEUpOwo+IC0JaWYgKHJldCkKPiAtCQlyZXR1cm4gcmV0Owo+ IC0KPiAtCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0X2RvbWFpbihvYmosIHRydWUp Owo+IC0JaWYgKHJldCkgewo+IC0JCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKG9iaik7Cj4g LQkJcmV0dXJuIHJldDsKPiAtCX0KPiAtCj4gLQlyaW5nYnVmLT52aXJ0dWFsX3N0YXJ0ID0gaW9y ZW1hcF93YyhkZXZfcHJpdi0+Z3R0Lm1hcHBhYmxlX2Jhc2UgKwo+IC0JCQlpOTE1X2dlbV9vYmpf Z2d0dF9vZmZzZXQob2JqKSwgcmluZ2J1Zi0+c2l6ZSk7Cj4gLQlpZiAocmluZ2J1Zi0+dmlydHVh bF9zdGFydCA9PSBOVUxMKSB7Cj4gLQkJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4ob2JqKTsK PiAtCQlyZXR1cm4gLUVJTlZBTDsKPiArCWludCByZXQgPSAwOwo+ICsJc3RydWN0IGludGVsX3Jp bmdidWZmZXIgKnJpbmdidWYgPQo+ICsJKHN0cnVjdCBpbnRlbF9yaW5nYnVmZmVyICopb2JqLT5t YXBwYWJsZTsKPiArCj4gKwlpZiAoIXVubWFwKSB7Cj4gKwkJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IHJpbmdidWYtPnJpbmctPmRldjsKPiArCQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gKwo+ICsJCVdBUk5fT04ocmluZ2J1Zi0+dmlydHVhbF9z dGFydCAhPSBOVUxMKTsKPiArCQlpZiAocmluZ2J1Zi0+dmlydHVhbF9zdGFydCA9PSBOVUxMKSB7 Cj4gKwkJCXJpbmdidWYtPnZpcnR1YWxfc3RhcnQgPSBpb3JlbWFwX3djKAo+ICsJCQkJCWRldl9w cml2LT5ndHQubWFwcGFibGVfYmFzZSArCj4gKwkJCQkJaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0 KG9iaiksCj4gKwkJCQkJcmluZ2J1Zi0+c2l6ZSk7Cj4gKwkJCWlmIChyaW5nYnVmLT52aXJ0dWFs X3N0YXJ0ID09IE5VTEwpIHsKPiArCQkJCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKG9iaik7 Cj4gKwkJCQlyZXR1cm4gLUVJTlZBTDsKPiArCQkJfQo+ICsJCX0KPiArCX0gZWxzZSB7Cj4gKwkJ aWYgKCFpOTE1X2dlbV9vYmpfaXNfcGlubmVkKHJpbmdidWYtPm9iaikpIHsKPiArCQkJaW91bm1h cChyaW5nYnVmLT52aXJ0dWFsX3N0YXJ0KTsKPiArCQkJcmluZ2J1Zi0+dmlydHVhbF9zdGFydCA9 IE5VTEw7Cj4gKwkJfQo+ICAJfQo+IC0KPiAtCXJldHVybiAwOwo+ICsJcmV0dXJuIHJldDsKPiAg fQo+ICAKPiAgc3RhdGljIHZvaWQgaW50ZWxfZGVzdHJveV9yaW5nYnVmZmVyX29iaihzdHJ1Y3Qg aW50ZWxfcmluZ2J1ZmZlciAqcmluZ2J1ZikKPiBAQCAtMjAxNiw2ICsyMDEzLDkgQEAgc3RhdGlj IGludCBpbnRlbF9hbGxvY19yaW5nYnVmZmVyX29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ ICAKPiAgCXJpbmdidWYtPm9iaiA9IG9iajsKPiAgCj4gKwlvYmotPm1tYXAgPSBpbnRlbF9tbWFw X3JpbmdidWZmZXJfb2JqOwo+ICsJb2JqLT5tYXBwYWJsZSA9IHJpbmdidWY7Cj4gKwo+ICAJcmV0 dXJuIDA7Cj4gIH0KPiAgCj4gQEAgLTIwOTQsNyArMjA5NCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxf aW5pdF9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQlnb3RvIGVycm9y Owo+ICAJfQo+ICAKPiAtCXJldCA9IGludGVsX3Bpbl9hbmRfbWFwX3JpbmdidWZmZXJfb2JqKGRl diwgcmluZ2J1Zik7Cj4gKwlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4ocmluZ2J1Zi0+b2Jq LCBQQUdFX1NJWkUsIFBJTl9NQVBQQUJMRSk7Cj4gIAlpZiAocmV0KSB7Cj4gIAkJRFJNX0VSUk9S KCJGYWlsZWQgdG8gcGluIGFuZCBtYXAgcmluZ2J1ZmZlciAlczogJWRcbiIsCj4gIAkJCQlyaW5n LT5uYW1lLCByZXQpOwo+IEBAIC0yMTAyLDEyICsyMTAyLDE5IEBAIHN0YXRpYyBpbnQgaW50ZWxf aW5pdF9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCWdvdG8gZXJyb3I7 Cj4gIAl9Cj4gIAo+ICsJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKHJp bmdidWYtPm9iaiwgdHJ1ZSk7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gZXJyb3JfdW5waW47Cj4g Kwo+ICAJcmV0ID0gaTkxNV9jbWRfcGFyc2VyX2luaXRfcmluZyhyaW5nKTsKPiAgCWlmIChyZXQp Cj4gIAkJZ290byBlcnJvcjsKPiAgCj4gIAlyZXR1cm4gMDsKPiAgCj4gK2Vycm9yX3VucGluOgo+ ICsJaTkxNV9nZW1fb2JqZWN0X2dndHRfdW5waW4ocmluZ2J1Zi0+b2JqKTsKPiArCWludGVsX2Rl c3Ryb3lfcmluZ2J1ZmZlcl9vYmoocmluZ2J1Zik7Cj4gIGVycm9yOgo+ICAJaW50ZWxfcmluZ2J1 ZmZlcl9mcmVlKHJpbmdidWYpOwo+ICAJcmluZy0+YnVmZmVyID0gTlVMTDsKPiBAQCAtMjEyNiw3 ICsyMTMzLDcgQEAgdm9pZCBpbnRlbF9jbGVhbnVwX3JpbmdfYnVmZmVyKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKnJpbmcpCj4gIAlpbnRlbF9zdG9wX3JpbmdfYnVmZmVyKHJpbmcpOwo+ICAJV0FS Tl9PTighSVNfR0VOMihyaW5nLT5kZXYpICYmIChJOTE1X1JFQURfTU9ERShyaW5nKSAmIE1PREVf SURMRSkgPT0gMCk7Cj4gIAo+IC0JaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmoocmluZy0+YnVm ZmVyKTsKPiArCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKHJpbmctPmJ1ZmZlci0+b2JqKTsK PiAgCWludGVsX3JpbmdidWZmZXJfZnJlZShyaW5nLT5idWZmZXIpOwo+ICAJcmluZy0+YnVmZmVy ID0gTlVMTDsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Jp bmdidWZmZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuaAo+IGlu ZGV4IGQ5OWIxNjcuLjhkYWFmOTkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcmluZ2J1ZmZlci5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmlu Z2J1ZmZlci5oCj4gQEAgLTQyMSw5ICs0MjEsNiBAQCBpbnRlbF93cml0ZV9zdGF0dXNfcGFnZShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nLAo+ICAKPiAgc3RydWN0IGludGVsX3JpbmdidWZm ZXIgKgo+ICBpbnRlbF9lbmdpbmVfY3JlYXRlX3JpbmdidWZmZXIoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lLCBpbnQgc2l6ZSk7Cj4gLWludCBpbnRlbF9waW5fYW5kX21hcF9yaW5nYnVm ZmVyX29iaihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IC0JCQkJICAgICBzdHJ1Y3QgaW50ZWxf cmluZ2J1ZmZlciAqcmluZ2J1Zik7Cj4gLXZvaWQgaW50ZWxfdW5waW5fcmluZ2J1ZmZlcl9vYmoo c3RydWN0IGludGVsX3JpbmdidWZmZXIgKnJpbmdidWYpOwo+ICB2b2lkIGludGVsX3JpbmdidWZm ZXJfZnJlZShzdHJ1Y3QgaW50ZWxfcmluZ2J1ZmZlciAqcmluZyk7Cj4gIAo+ICB2b2lkIGludGVs X3N0b3BfcmluZ19idWZmZXIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Cj4gLS0gCj4g MS45LjEKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4gaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAoKLS0gCkRhbmllbCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0 aW9uCmh0dHA6Ly9ibG9nLmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==