From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 3/4] drm/i915: Add support for stealing purgable stolen pages Date: Tue, 15 Sep 2015 16:14:49 +0100 Message-ID: <55F835E9.6080301@linux.intel.com> References: <1442306007-10792-1-git-send-email-ankitprasad.r.sharma@intel.com> <1442306007-10792-4-git-send-email-ankitprasad.r.sharma@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 2E4AD6E4B9 for ; Tue, 15 Sep 2015 08:15:11 -0700 (PDT) In-Reply-To: <1442306007-10792-4-git-send-email-ankitprasad.r.sharma@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: ankitprasad.r.sharma@intel.com, intel-gfx@lists.freedesktop.org Cc: akash.goel@intel.com, shashidhar.hiremath@intel.com List-Id: intel-gfx@lists.freedesktop.org Ck9uIDA5LzE1LzIwMTUgMDk6MzMgQU0sIGFua2l0cHJhc2FkLnIuc2hhcm1hQGludGVsLmNvbSB3 cm90ZToKPiBGcm9tOiBDaHJpcyBXaWxzb24gPGNocmlzIGF0IGNocmlzLXdpbHNvbi5jby51az4K Pgo+IElmIHdlIHJ1biBvdXQgb2Ygc3RvbGVuIG1lbW9yeSB3aGVuIHRyeWluZyB0byBhbGxvY2F0 ZSBhbiBvYmplY3QsIHNlZSBpZgo+IHdlIGNhbiByZWFwIGVub3VnaCBwdXJnZWFibGUgb2JqZWN0 cyB0byBmcmVlIHVwIGVub3VnaCBjb250aWd1b3VzIGZyZWUKPiBzcGFjZSBmb3IgdGhlIGFsbG9j YXRpb24uIFRoaXMgaXMgaW4gcHJpbmNpcGxlIHZlcnkgbXVjaCBsaWtlIGV2aWN0aW5nCj4gb2Jq ZWN0cyB0byBmcmVlIHVwIGVub3VnaCBjb250aWd1b3VzIHNwYWNlIGluIHRoZSB2bWEgd2hlbiBi aW5kaW5nCj4gYSBuZXcgb2JqZWN0IC0gYW5kIHlvdSB3aWxsIGJlIGZvcmdpdmVuIGZvciB0aGlu a2luZyB0aGF0IHRoZSBjb2RlIGxvb2tzCj4gdmVyeSBzaW1pbGFyLgo+Cj4gQXQgdGhlIG1vbWVu dCwgd2UgZG8gbm90IGFsbG93IHVzZXJzcGFjZSB0byBhbGxvY2F0ZSBvYmplY3RzIGluIHN0b2xl biwKPiBzbyB0aGVyZSBpcyBuZWl0aGVyIHRoZSBtZW1vcnkgcHJlc3N1cmUgdG8gdHJpZ2dlciBz dG9sZW4gZXZpY3Rpb24gbm9yCj4gYW55IHB1cmdlYWJsZSBvYmplY3RzIGluc2lkZSB0aGUgc3Rv bGVuIGFyZW5hLiBIb3dldmVyLCB0aGlzIHdpbGwgY2hhbmdlCj4gaW4gdGhlIG5lYXIgZnV0dXJl LCBhbmQgc28gYmV0dGVyIG1hbmFnZW1lbnQgYW5kIGRlZnJhZ21lbnRhdGlvbiBvZgo+IHN0b2xl biBtZW1vcnkgd2lsbCBiZWNvbWUgYSByZWFsIGlzc3VlLgo+Cj4gdjI6IFJlbWVtYmVyIHRvIHJl bW92ZSB0aGUgZHJtX21tX25vZGUuCj4KPiB2MzogUmViYXNlZCB0byB0aGUgbGF0ZXN0IGRybS1p bnRlbC1uaWdodGx5IChBbmtpdCkKPgo+IHY0OiBjb3JyZWN0ZWQgaWYtZWxzZSBicmFjZXMgZm9y bWF0IChUdnJ0a28va2VybmVsZG9jKQo+Cj4gdjU6IFJlYmFzZWQgdG8gdGhlIGxhdGVzdCBkcm0t aW50ZWwtbmlnaHRseSAoQW5raXQpCj4gQWRkZWQgYSBzZXBlcmF0ZSBsaXN0IHRvIG1haW50YWlu IHB1cmdhYmxlIG9iamVjdHMgZnJvbSBzdG9sZW4gbWVtb3J5Cj4gcmVnaW9uIChDaHJpcy9EYW5p ZWwpCj4KPiBUZXN0Y2FzZTogaWd0L2dlbV9zdG9sZW4KPgo+IFNpZ25lZC1vZmYtYnk6IENocmlz IFdpbHNvbiA8Y2hyaXMgYXQgY2hyaXMtd2lsc29uLmNvLnVrPgo+IFNpZ25lZC1vZmYtYnk6IEFu a2l0cHJhc2FkIFNoYXJtYSA8YW5raXRwcmFzYWQuci5zaGFybWFAaW50ZWwuY29tPgo+IC0tLQo+ ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICAgfCAgIDQgKy0KPiAgIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgIHwgIDE3ICsrKy0KPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAgICAgIHwgIDE2ICsrKwo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMgfCAxNzYgKysrKysrKysrKysrKysrKysrKysr KysrKysrKy0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgICB8 ICAgNCArLQo+ICAgNSBmaWxlcyBjaGFuZ2VkLCAxODcgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRp b25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IGluZGV4IDdhMjhkZTUu LjBkYjhjNDcgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IEBAIC0xNzks NyArMTc5LDcgQEAgZGVzY3JpYmVfb2JqKHN0cnVjdCBzZXFfZmlsZSAqbSwgc3RydWN0IGRybV9p OTE1X2dlbV9vYmplY3QgKm9iaikKPiAgIAkJCXNlcV9wdXRzKG0sICIpIik7Cj4gICAJfQo+ICAg CWlmIChvYmotPnN0b2xlbikKPiAtCQlzZXFfcHJpbnRmKG0sICIgKHN0b2xlbjogJTA4bGx4KSIs IG9iai0+c3RvbGVuLT5zdGFydCk7Cj4gKwkJc2VxX3ByaW50ZihtLCAiIChzdG9sZW46ICUwOGxs eCkiLCBvYmotPnN0b2xlbi0+YmFzZS5zdGFydCk7Cj4gICAJaWYgKG9iai0+cGluX2Rpc3BsYXkg fHwgb2JqLT5mYXVsdF9tYXBwYWJsZSkgewo+ICAgCQljaGFyIHNbM10sICp0ID0gczsKPiAgIAkJ aWYgKG9iai0+cGluX2Rpc3BsYXkpCj4gQEAgLTI1OCw3ICsyNTgsNyBAQCBzdGF0aWMgaW50IG9i al9yYW5rX2J5X3N0b2xlbih2b2lkICpwcml2LAo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpiID0KPiAgIAkJY29udGFpbmVyX29mKEIsIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 LCBvYmpfZXhlY19saW5rKTsKPgo+IC0JcmV0dXJuIGEtPnN0b2xlbi0+c3RhcnQgLSBiLT5zdG9s ZW4tPnN0YXJ0Owo+ICsJcmV0dXJuIGEtPnN0b2xlbi0+YmFzZS5zdGFydCAtIGItPnN0b2xlbi0+ YmFzZS5zdGFydDsKPiAgIH0KPgo+ICAgc3RhdGljIGludCBpOTE1X2dlbV9zdG9sZW5fbGlzdF9p bmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwgdm9pZCAqZGF0YSkKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2 LmgKPiBpbmRleCBlNmVmMDgzLi4zN2VlMzJkIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o Cj4gQEAgLTg0MSw2ICs4NDEsMTIgQEAgc3RydWN0IGk5MTVfY3R4X2hhbmdfc3RhdHMgewo+ICAg CWJvb2wgYmFubmVkOwo+ICAgfTsKPgo+ICtzdHJ1Y3QgaTkxNV9zdG9sZW5fbm9kZSB7Cj4gKwlz dHJ1Y3QgZHJtX21tX25vZGUgYmFzZTsKPiArCXN0cnVjdCBsaXN0X2hlYWQgbW1fbGluazsKPiAr CXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7Cj4gK307Cj4gKwo+ICAgLyogVGhpcyBt dXN0IG1hdGNoIHVwIHdpdGggdGhlIHZhbHVlIHByZXZpb3VzbHkgdXNlZCBmb3IgZXhlY2J1ZjIu cnN2ZDEuICovCj4gICAjZGVmaW5lIERFRkFVTFRfQ09OVEVYVF9IQU5ETEUgMAo+Cj4gQEAgLTEy NjgsNiArMTI3NCwxMyBAQCBzdHJ1Y3QgaTkxNV9nZW1fbW0gewo+ICAgCSAqLwo+ICAgCXN0cnVj dCBsaXN0X2hlYWQgdW5ib3VuZF9saXN0Owo+Cj4gKwkvKioKPiArCSAqIExpc3Qgb2Ygc3RvbGVu IG9iamVjdHMgdGhhdCBoYXZlIGJlZW4gbWFya2VkIGFzIHB1cmdlYWJsZSBhbmQKPiArCSAqIHRo dXMgYXZhaWxhYmxlIGZvciByZWFwaW5nIGlmIHdlIG5lZWQgbW9yZSBzcGFjZSBmb3IgYSBuZXcK PiArCSAqIGFsbG9jYXRpb24uIE9yZGVyZWQgYnkgdGltZSBvZiBtYXJraW5nIHB1cmdlYWJsZS4K PiArCSAqLwo+ICsJc3RydWN0IGxpc3RfaGVhZCBzdG9sZW5fbGlzdDsKPiArCj4gICAJLyoqIFVz YWJsZSBwb3J0aW9uIG9mIHRoZSBHVFQgZm9yIEdFTSAqLwo+ICAgCXVuc2lnbmVkIGxvbmcgc3Rv bGVuX2Jhc2U7IC8qIGxpbWl0ZWQgdG8gbG93IG1lbW9yeSAoMzItYml0KSAqLwo+Cj4gQEAgLTIw MjYsNyArMjAzOSw3IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0IHsKPiAgIAlzdHJ1Y3Qg bGlzdF9oZWFkIHZtYV9saXN0Owo+Cj4gICAJLyoqIFN0b2xlbiBtZW1vcnkgZm9yIHRoaXMgb2Jq ZWN0LCBpbnN0ZWFkIG9mIGJlaW5nIGJhY2tlZCBieSBzaG1lbS4gKi8KPiAtCXN0cnVjdCBkcm1f bW1fbm9kZSAqc3RvbGVuOwo+ICsJc3RydWN0IGk5MTVfc3RvbGVuX25vZGUgKnN0b2xlbjsKPiAg IAlzdHJ1Y3QgbGlzdF9oZWFkIGdsb2JhbF9saXN0Owo+Cj4gICAJc3RydWN0IGxpc3RfaGVhZCBy aW5nX2xpc3RbSTkxNV9OVU1fUklOR1NdOwo+IEBAIC0yMDM0LDYgKzIwNDcsNyBAQCBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCB7Cj4gICAJc3RydWN0IGxpc3RfaGVhZCBvYmpfZXhlY19saW5r Owo+Cj4gICAJc3RydWN0IGxpc3RfaGVhZCBiYXRjaF9wb29sX2xpbms7Cj4gKwlzdHJ1Y3QgbGlz dF9oZWFkIHRtcF9saW5rOwo+Cj4gICAJLyoqCj4gICAJICogVGhpcyBpcyBzZXQgaWYgdGhlIG9i amVjdCBpcyBvbiB0aGUgYWN0aXZlIGxpc3RzIChoYXMgcGVuZGluZwo+IEBAIC0yMTUwLDYgKzIx NjQsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCB7Cj4gICAJfTsKPiAgIH07Cj4gICAj ZGVmaW5lIHRvX2ludGVsX2JvKHgpIGNvbnRhaW5lcl9vZih4LCBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCwgYmFzZSkKPiArI2RlZmluZSBJOTE1X0JPX0lTX0FDVElWRShfX29iaikgKF9fb2Jq LT5hY3RpdmUpCj4KPiAgIHZvaWQgaTkxNV9nZW1fdHJhY2tfZmIoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9sZCwKPiAgIAkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpu ZXcsCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gaW5kZXggNjU2OGE3Zi4uODUwMjViMSAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBAIC00MjI4LDYgKzQyMjgsMjAgQEAgaTkxNV9n ZW1fbWFkdmlzZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAg CWlmIChvYmotPm1hZHYgPT0gSTkxNV9NQURWX0RPTlRORUVEICYmIG9iai0+cGFnZXMgPT0gTlVM TCkKPiAgIAkJaTkxNV9nZW1fb2JqZWN0X3RydW5jYXRlKG9iaik7Cj4KPiArCWlmIChvYmotPnN0 b2xlbikgewo+ICsJCXN3aXRjaCAob2JqLT5tYWR2KSB7Cj4gKwkJY2FzZSBJOTE1X01BRFZfV0lM TE5FRUQ6Cj4gKwkJCWxpc3RfZGVsX2luaXQoJm9iai0+c3RvbGVuLT5tbV9saW5rKTsKPiArCQkJ YnJlYWs7Cj4gKwkJY2FzZSBJOTE1X01BRFZfRE9OVE5FRUQ6Cj4gKwkJCWxpc3RfbW92ZSgmb2Jq LT5zdG9sZW4tPm1tX2xpbmssCj4gKwkJCQkgICZkZXZfcHJpdi0+bW0uc3RvbGVuX2xpc3QpOwo+ ICsJCQlicmVhazsKPiArCQlkZWZhdWx0Ogo+ICsJCQlicmVhazsKPiArCQl9Cj4gKwl9Cj4gKwo+ ICAgCWFyZ3MtPnJldGFpbmVkID0gb2JqLT5tYWR2ICE9IF9fSTkxNV9NQURWX1BVUkdFRDsKPgo+ ICAgb3V0Ogo+IEBAIC00MjQ4LDYgKzQyNjIsNyBAQCB2b2lkIGk5MTVfZ2VtX29iamVjdF9pbml0 KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gICAJSU5JVF9MSVNUX0hFQUQoJm9i ai0+b2JqX2V4ZWNfbGluayk7Cj4gICAJSU5JVF9MSVNUX0hFQUQoJm9iai0+dm1hX2xpc3QpOwo+ ICAgCUlOSVRfTElTVF9IRUFEKCZvYmotPmJhdGNoX3Bvb2xfbGluayk7Cj4gKwlJTklUX0xJU1Rf SEVBRCgmb2JqLT50bXBfbGluayk7Cj4KPiAgIAlvYmotPm9wcyA9IG9wczsKPgo+IEBAIC00ODk4 LDYgKzQ5MTMsNyBAQCBpOTE1X2dlbV9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJ SU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT5jb250ZXh0X2xpc3QpOwo+ICAgCUlOSVRfTElTVF9I RUFEKCZkZXZfcHJpdi0+bW0udW5ib3VuZF9saXN0KTsKPiAgIAlJTklUX0xJU1RfSEVBRCgmZGV2 X3ByaXYtPm1tLmJvdW5kX2xpc3QpOwo+ICsJSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT5tbS5z dG9sZW5fbGlzdCk7Cj4gICAJSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT5tbS5mZW5jZV9saXN0 KTsKPiAgIAlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fUklOR1M7IGkrKykKPiAgIAkJaW5pdF9y aW5nX2xpc3RzKCZkZXZfcHJpdi0+cmluZ1tpXSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW1fc3RvbGVuLmMKPiBpbmRleCA5OWYyYmNlLi40MzBlMGIwIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fc3RvbGVuLmMKPiBAQCAtNTIsOCArNTIsOCBAQCBpbnQgaTkxNV9nZW1f c3RvbGVuX2luc2VydF9ub2RlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAg IAkJcmV0dXJuIC1FTk9ERVY7Cj4KPiAgIAltdXRleF9sb2NrKCZkZXZfcHJpdi0+bW0uc3RvbGVu X2xvY2spOwo+IC0JcmV0ID0gZHJtX21tX2luc2VydF9ub2RlKCZkZXZfcHJpdi0+bW0uc3RvbGVu LCBub2RlLCBzaXplLCBhbGlnbm1lbnQsCj4gLQkJCQkgRFJNX01NX1NFQVJDSF9ERUZBVUxUKTsK PiArCXJldCA9IGRybV9tbV9pbnNlcnRfbm9kZSgmZGV2X3ByaXYtPm1tLnN0b2xlbiwgbm9kZSwK PiArCQkJCSBzaXplLCBhbGlnbm1lbnQsIERSTV9NTV9TRUFSQ0hfREVGQVVMVCk7CgpUaGVyZSBp cyBubyBjaGFuZ2UgaGVyZS4KCj4gICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+bW0uc3RvbGVu X2xvY2spOwo+Cj4gICAJcmV0dXJuIHJldDsKPiBAQCAtNDA3LDE4ICs0MDcsMTkgQEAgc3RhdGlj IHZvaWQgaTkxNV9nZW1fb2JqZWN0X3B1dF9wYWdlc19zdG9sZW4oc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaikKPiAgIAlrZnJlZShvYmotPnBhZ2VzKTsKPiAgIH0KPgo+IC0KID4KPiAg IHN0YXRpYyB2b2lkCj4gICBpOTE1X2dlbV9vYmplY3RfcmVsZWFzZV9zdG9sZW4oc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaikKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBvYmotPmJhc2UuZGV2LT5kZXZfcHJpdmF0ZTsKPgo+ICAgCWlmIChvYmot PnN0b2xlbikgewo+IC0JCWk5MTVfZ2VtX3N0b2xlbl9yZW1vdmVfbm9kZShkZXZfcHJpdiwgb2Jq LT5zdG9sZW4pOwo+ICsJCWxpc3RfZGVsKCZvYmotPnN0b2xlbi0+bW1fbGluayk7Cj4gKwkJaTkx NV9nZW1fc3RvbGVuX3JlbW92ZV9ub2RlKGRldl9wcml2LCAmb2JqLT5zdG9sZW4tPmJhc2UpOwo+ ICAgCQlrZnJlZShvYmotPnN0b2xlbik7Cj4gICAJCW9iai0+c3RvbGVuID0gTlVMTDsKPiAgIAl9 Cj4gICB9Cj4gKwo+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29w cyBpOTE1X2dlbV9vYmplY3Rfc3RvbGVuX29wcyA9IHsKPiAgIAkuZ2V0X3BhZ2VzID0gaTkxNV9n ZW1fb2JqZWN0X2dldF9wYWdlc19zdG9sZW4sCj4gICAJLnB1dF9wYWdlcyA9IGk5MTVfZ2VtX29i amVjdF9wdXRfcGFnZXNfc3RvbGVuLAo+IEBAIC00MjcsNyArNDI4LDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0X29wcyBpOTE1X2dlbV9vYmplY3Rfc3RvbGVuX29w cyA9IHsKPgo+ICAgc3RhdGljIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICoKPiAgIF9pOTE1 X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+IC0JCQkg ICAgICAgc3RydWN0IGRybV9tbV9ub2RlICpzdG9sZW4pCj4gKwkJCSAgICAgICBzdHJ1Y3QgaTkx NV9zdG9sZW5fbm9kZSAqc3RvbGVuKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmo7Cj4KPiBAQCAtNDM1LDE3ICs0MzYsMjEgQEAgX2k5MTVfZ2VtX29iamVjdF9jcmVh dGVfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJaWYgKG9iaiA9PSBOVUxMKQo+ ICAgCQlyZXR1cm4gTlVMTDsKPgo+IC0JZHJtX2dlbV9wcml2YXRlX29iamVjdF9pbml0KGRldiwg Jm9iai0+YmFzZSwgc3RvbGVuLT5zaXplKTsKPiArCWRybV9nZW1fcHJpdmF0ZV9vYmplY3RfaW5p dChkZXYsICZvYmotPmJhc2UsIHN0b2xlbi0+YmFzZS5zaXplKTsKPiAgIAlpOTE1X2dlbV9vYmpl Y3RfaW5pdChvYmosICZpOTE1X2dlbV9vYmplY3Rfc3RvbGVuX29wcyk7Cj4KPiAgIAlvYmotPnBh Z2VzID0gaTkxNV9wYWdlc19jcmVhdGVfZm9yX3N0b2xlbihkZXYsCj4gLQkJCQkJCSAgc3RvbGVu LT5zdGFydCwgc3RvbGVuLT5zaXplKTsKPiArCQkJCQkJICBzdG9sZW4tPmJhc2Uuc3RhcnQsCj4g KwkJCQkJCSAgc3RvbGVuLT5iYXNlLnNpemUpOwo+ICAgCWlmIChvYmotPnBhZ2VzID09IE5VTEwp Cj4gICAJCWdvdG8gY2xlYW51cDsKPgo+ICAgCWk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXMob2Jq KTsKPiAgIAlvYmotPnN0b2xlbiA9IHN0b2xlbjsKPgo+ICsJc3RvbGVuLT5vYmogPSBvYmo7Cj4g KwlJTklUX0xJU1RfSEVBRCgmc3RvbGVuLT5tbV9saW5rKTsKPiArCj4gICAJb2JqLT5iYXNlLnJl YWRfZG9tYWlucyA9IEk5MTVfR0VNX0RPTUFJTl9DUFUgfCBJOTE1X0dFTV9ET01BSU5fR1RUOwo+ ICAgCW9iai0+Y2FjaGVfbGV2ZWwgPSBIQVNfTExDKGRldikgPyBJOTE1X0NBQ0hFX0xMQyA6IEk5 MTVfQ0FDSEVfTk9ORTsKPgo+IEBAIC00NTYsMzYgKzQ2MSwxNTcgQEAgY2xlYW51cDoKPiAgIAly ZXR1cm4gTlVMTDsKPiAgIH0KPgo+IC1zdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqCj4gLWk5 MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHU2NCBz aXplKQo+ICtzdGF0aWMgYm9vbCBtYXJrX2ZyZWUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaiwgc3RydWN0IGxpc3RfaGVhZCAqdW53aW5kKQo+ICt7Cj4gKwlpZiAob2JqLT5zdG9sZW4g PT0gTlVMTCkKPiArCQlyZXR1cm4gZmFsc2U7CgpBcyBDaHJpcyBzYWlkLCBqdXN0IFdBUk5fT04g aW5zdGVhZCBvZiBCVUdfT04gcGxlYXNlLgoKPiArCWlmIChvYmotPm1hZHYgIT0gSTkxNV9NQURW X0RPTlRORUVEKQo+ICsJCXJldHVybiBmYWxzZTsKPiArCj4gKwlpZiAob2JqLT5waW5fZGlzcGxh eSkKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwo+ICsJaWYgKEk5MTVfQk9fSVNfQUNUSVZFKG9iaikp Cj4gKwkJcmV0dXJuIGZhbHNlOwoKQ2hyaXMgYWxyZWFkeSBzcG90dGVkIHRoaXMgd2lsbCBwcmV2 ZW50IGNhbGxlcnMgZnJvbSB3b3JraW5nIGFzIHRoZXkgZXhwZWN0LgoKPiArCWxpc3RfYWRkKCZv YmotPnRtcF9saW5rLCB1bndpbmQpOwo+ICsJcmV0dXJuIGRybV9tbV9zY2FuX2FkZF9ibG9jaygm b2JqLT5zdG9sZW4tPmJhc2UpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50Cj4gK3N0b2xlbl9ldmlj dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHU2NCBzaXplKQo+ICAgewo+IC0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAg IAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwo+IC0Jc3RydWN0IGRybV9tbV9ub2Rl ICpzdG9sZW47Cj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIHVud2luZCwgZXZpY3Q7Cj4gKwlzdHJ1Y3Qg aTkxNV9zdG9sZW5fbm9kZSAqaXRlcjsKPiAgIAlpbnQgcmV0Owo+Cj4gLQlpZiAoIWRybV9tbV9p bml0aWFsaXplZCgmZGV2X3ByaXYtPm1tLnN0b2xlbikpCj4gLQkJcmV0dXJuIE5VTEw7Cj4gKwlk cm1fbW1faW5pdF9zY2FuKCZkZXZfcHJpdi0+bW0uc3RvbGVuLCBzaXplLCAwLCAwKTsKPiArCUlO SVRfTElTVF9IRUFEKCZ1bndpbmQpOwo+ICsKPiArCWxpc3RfZm9yX2VhY2hfZW50cnkoaXRlciwg JmRldl9wcml2LT5tbS5zdG9sZW5fbGlzdCwgbW1fbGluaykgewo+ICsJCWlmIChJOTE1X0JPX0lT X0FDVElWRShpdGVyLT5vYmopKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJaWYgKG1hcmtfZnJl ZShpdGVyLT5vYmosICZ1bndpbmQpKQo+ICsJCQlnb3RvIGZvdW5kOwo+ICsJfQo+ICsKPiArCWxp c3RfZm9yX2VhY2hfZW50cnkoaXRlciwgJmRldl9wcml2LT5tbS5zdG9sZW5fbGlzdCwgbW1fbGlu aykgewo+ICsJCWlmICghSTkxNV9CT19JU19BQ1RJVkUoaXRlci0+b2JqKSkKPiArCQkJY29udGlu dWU7Cj4gKwo+ICsJCWlmIChtYXJrX2ZyZWUoaXRlci0+b2JqLCAmdW53aW5kKSkKPiArCQkJZ290 byBmb3VuZDsKPiArCX0KID4gKwo+ICtmb3VuZDoKPiArCUlOSVRfTElTVF9IRUFEKCZldmljdCk7 Cj4gKwl3aGlsZSAoIWxpc3RfZW1wdHkoJnVud2luZCkpIHsKPiArCQlvYmogPSBsaXN0X2ZpcnN0 X2VudHJ5KCZ1bndpbmQsCj4gKwkJCQkgICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qs Cj4gKwkJCQkgICAgICAgdG1wX2xpbmspOwo+ICsJCWxpc3RfZGVsX2luaXQoJm9iai0+dG1wX2xp bmspOwo+ICsKPiArCQlpZiAoZHJtX21tX3NjYW5fcmVtb3ZlX2Jsb2NrKCZvYmotPnN0b2xlbi0+ YmFzZSkpIHsKPiArCQkJbGlzdF9hZGQoJm9iai0+dG1wX2xpbmssICZldmljdCk7Cj4gKwkJCWRy bV9nZW1fb2JqZWN0X3JlZmVyZW5jZSgmb2JqLT5iYXNlKTsKPiArCQl9CgpJbiB3aGF0IGNpcmN1 bXN0YW5jZXMgY2FuIGRybV9tbV9zY2FuX3JlbW92ZV9ibG9jayBmYWlsPwoKPiArCX0KPiArCj4g KwlyZXQgPSAwOwo+ICsJd2hpbGUgKCFsaXN0X2VtcHR5KCZldmljdCkpIHsKPiArCQlvYmogPSBs aXN0X2ZpcnN0X2VudHJ5KCZldmljdCwKPiArCQkJCSAgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCwKPiArCQkJCSAgICAgICB0bXBfbGluayk7Cj4gKwkJbGlzdF9kZWxfaW5pdCgmb2Jq LT50bXBfbGluayk7Cj4gKwo+ICsJCWlmIChyZXQgPT0gMCkgewo+ICsJCQlzdHJ1Y3QgaTkxNV92 bWEgKnZtYSwgKnZtYV9uZXh0Owo+ICsKPiArCQkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHZt YSwgdm1hX25leHQsCj4gKwkJCQkJCSAmb2JqLT52bWFfbGlzdCwKPiArCQkJCQkJIHZtYV9saW5r KQo+ICsJCQkJaWYgKGk5MTVfdm1hX3VuYmluZCh2bWEpKQo+ICsJCQkJCWJyZWFrOwoKQmVjYXVz ZSBvZiBWTUEgdW5iaW5kaW5nIHN0b2xlbiBjcmVhdGlvbiBub3cgYWdhaW4gbmVlZHMgc3RydWN0 X211dGV4LiBJIAp0aGluayBwdXR0aW5nIGhlbGQgYXNzZXJ0aW9uIHNvbWV3aGVyZSBpbiB0aGUg Y2FsbCBjaGFpbiBpcyBub3cgYXBwcm9wcmlhdGUuCgpUaGUgcmVzdCBsb29rZWQgZ29vZCB0byBt ZS4KClJlZ2FyZHMsCgpUdnJ0a28KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK