From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 6/9] drm/i915: Add support for stealing purgable stolen pages Date: Thu, 17 Dec 2015 10:51:09 +0000 Message-ID: <5672939D.2010605@linux.intel.com> References: <1450071971-30321-1-git-send-email-ankitprasad.r.sharma@intel.com> <1450071971-30321-7-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 mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTP id 129716E984 for ; Thu, 17 Dec 2015 02:51:11 -0800 (PST) In-Reply-To: <1450071971-30321-7-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 CgpPbiAxNC8xMi8xNSAwNTo0NiwgYW5raXRwcmFzYWQuci5zaGFybWFAaW50ZWwuY29tIHdyb3Rl Ogo+IEZyb206IENocmlzIFdpbHNvbiA8Y2hyaXMgYXQgY2hyaXMtd2lsc29uLmNvLnVrPgo+Cj4g SWYgd2UgcnVuIG91dCBvZiBzdG9sZW4gbWVtb3J5IHdoZW4gdHJ5aW5nIHRvIGFsbG9jYXRlIGFu IG9iamVjdCwgc2VlIGlmCj4gd2UgY2FuIHJlYXAgZW5vdWdoIHB1cmdlYWJsZSBvYmplY3RzIHRv IGZyZWUgdXAgZW5vdWdoIGNvbnRpZ3VvdXMgZnJlZQo+IHNwYWNlIGZvciB0aGUgYWxsb2NhdGlv bi4gVGhpcyBpcyBpbiBwcmluY2lwbGUgdmVyeSBtdWNoIGxpa2UgZXZpY3RpbmcKPiBvYmplY3Rz IHRvIGZyZWUgdXAgZW5vdWdoIGNvbnRpZ3VvdXMgc3BhY2UgaW4gdGhlIHZtYSB3aGVuIGJpbmRp bmcKPiBhIG5ldyBvYmplY3QgLSBhbmQgeW91IHdpbGwgYmUgZm9yZ2l2ZW4gZm9yIHRoaW5raW5n IHRoYXQgdGhlIGNvZGUgbG9va3MKPiB2ZXJ5IHNpbWlsYXIuCj4KPiBBdCB0aGUgbW9tZW50LCB3 ZSBkbyBub3QgYWxsb3cgdXNlcnNwYWNlIHRvIGFsbG9jYXRlIG9iamVjdHMgaW4gc3RvbGVuLAo+ IHNvIHRoZXJlIGlzIG5laXRoZXIgdGhlIG1lbW9yeSBwcmVzc3VyZSB0byB0cmlnZ2VyIHN0b2xl biBldmljdGlvbiBub3IKPiBhbnkgcHVyZ2VhYmxlIG9iamVjdHMgaW5zaWRlIHRoZSBzdG9sZW4g YXJlbmEuIEhvd2V2ZXIsIHRoaXMgd2lsbCBjaGFuZ2UKPiBpbiB0aGUgbmVhciBmdXR1cmUsIGFu ZCBzbyBiZXR0ZXIgbWFuYWdlbWVudCBhbmQgZGVmcmFnbWVudGF0aW9uIG9mCj4gc3RvbGVuIG1l bW9yeSB3aWxsIGJlY29tZSBhIHJlYWwgaXNzdWUuCj4KPiB2MjogUmVtZW1iZXIgdG8gcmVtb3Zl IHRoZSBkcm1fbW1fbm9kZS4KPgo+IHYzOiBSZWJhc2VkIHRvIHRoZSBsYXRlc3QgZHJtLWludGVs LW5pZ2h0bHkgKEFua2l0KQo+Cj4gdjQ6IGNvcnJlY3RlZCBpZi1lbHNlIGJyYWNlcyBmb3JtYXQg KFR2cnRrby9rZXJuZWxkb2MpCj4KPiB2NTogUmViYXNlZCB0byB0aGUgbGF0ZXN0IGRybS1pbnRl bC1uaWdodGx5IChBbmtpdCkKPiBBZGRlZCBhIHNlcGVyYXRlIGxpc3QgdG8gbWFpbnRhaW4gcHVy Z2FibGUgb2JqZWN0cyBmcm9tIHN0b2xlbiBtZW1vcnkKPiByZWdpb24gKENocmlzL0RhbmllbCkK Pgo+IHY2OiBDb21waWxlciBvcHRpbWl6YXRpb24gKG1lcmdpbmcgMiBzaW5nbGUgbG9vcHMgaW50 byBvbmUgZm9yKCkgbG9vcCksCj4gY29ycmVjdGVkIGNvZGUgZm9yIG9iamVjdCBldmljdGlvbiwg cmV0aXJlX3JlcXVlc3RzIGJlZm9yZSBzdGFydGluZwo+IG9iamVjdCBldmljdGlvbiAoQ2hyaXMp Cj4KPiB2NzogQWRkZWQga2VybmVsIGRvYyBmb3IgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9s ZW4oKQo+Cj4gdjg6IENoZWNrIGZvciBzdHJ1Y3RfbXV0ZXggbG9jayBiZWZvcmUgY3JlYXRpbmcg b2JqZWN0IGZyb20gc3RvbGVuCj4gcmVnaW9uIChUdnJ0a28pCj4KPiB2OTogUmVuYW1lZCB2YXJp YWJsZXMgdG8gbWFrZSB1c2FnZSBjbGVhciwgYWRkZWQgY29tbWVudCwgcmVtb3ZlZCBvbmV0aW1l Cj4gdXNlZCBtYWNybyAoVHZydGtvKQo+Cj4gdjEwOiBBdm9pZCBtYXNraW5nIG9mIGVycm9yIHdo ZW4gc3RvbGVuX2FsbG9jIGZhaWxzIChUdnJ0a28pCj4KPiBUZXN0Y2FzZTogaWd0L2dlbV9zdG9s ZW4KPgo+IFNpZ25lZC1vZmYtYnk6IENocmlzIFdpbHNvbiA8Y2hyaXMgYXQgY2hyaXMtd2lsc29u LmNvLnVrPgo+IFNpZ25lZC1vZmYtYnk6IEFua2l0cHJhc2FkIFNoYXJtYSA8YW5raXRwcmFzYWQu ci5zaGFybWFAaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k ZWJ1Z2ZzLmMgICAgfCAgIDYgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2Lmgg ICAgICAgIHwgIDE3ICsrKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgICAg ICAgIHwgIDE2ICsrKysKPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5j IHwgMTcwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQo+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgICAgfCAgIDQgKy0KPiAgIDUgZmlsZXMgY2hhbmdlZCwg MTg4IGluc2VydGlvbnMoKyksIDI1IGRlbGV0aW9ucygtKQoKClJldmlld2VkLWJ5OiBUdnJ0a28g VXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgoKUmVnYXJkcywKClR2cnRrbwoKCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBpbmRleCBhODcyMWZjLi5mMGFhM2Q0IDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiBAQCAtMTc0LDcgKzE3NCw3IEBA IGRlc2NyaWJlX29iaihzdHJ1Y3Qgc2VxX2ZpbGUgKm0sIHN0cnVjdCBkcm1faTkxNV9nZW1fb2Jq ZWN0ICpvYmopCj4gICAJCQlzZXFfcHV0cyhtLCAiKSIpOwo+ICAgCX0KPiAgIAlpZiAob2JqLT5z dG9sZW4pCj4gLQkJc2VxX3ByaW50ZihtLCAiIChzdG9sZW46ICUwOGxseCkiLCBvYmotPnN0b2xl bi0+c3RhcnQpOwo+ICsJCXNlcV9wcmludGYobSwgIiAoc3RvbGVuOiAlMDhsbHgpIiwgb2JqLT5z dG9sZW4tPmJhc2Uuc3RhcnQpOwo+ICAgCWlmIChvYmotPnBpbl9kaXNwbGF5IHx8IG9iai0+ZmF1 bHRfbWFwcGFibGUpIHsKPiAgIAkJY2hhciBzWzNdLCAqdCA9IHM7Cj4gICAJCWlmIChvYmotPnBp bl9kaXNwbGF5KQo+IEBAIC0yNTMsOSArMjUzLDkgQEAgc3RhdGljIGludCBvYmpfcmFua19ieV9z dG9sZW4odm9pZCAqcHJpdiwKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqYiA9Cj4g ICAJCWNvbnRhaW5lcl9vZihCLCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCwgb2JqX2V4ZWNf bGluayk7Cj4KPiAtCWlmIChhLT5zdG9sZW4tPnN0YXJ0IDwgYi0+c3RvbGVuLT5zdGFydCkKPiAr CWlmIChhLT5zdG9sZW4tPmJhc2Uuc3RhcnQgPCBiLT5zdG9sZW4tPmJhc2Uuc3RhcnQpCj4gICAJ CXJldHVybiAtMTsKPiAtCWlmIChhLT5zdG9sZW4tPnN0YXJ0ID4gYi0+c3RvbGVuLT5zdGFydCkK PiArCWlmIChhLT5zdG9sZW4tPmJhc2Uuc3RhcnQgPiBiLT5zdG9sZW4tPmJhc2Uuc3RhcnQpCj4g ICAJCXJldHVybiAxOwo+ICAgCXJldHVybiAwOwo+ICAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+IGluZGV4IGRjZGZiOTcuLjQ3OTcwM2IgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK PiBAQCAtODQxLDYgKzg0MSwxMiBAQCBzdHJ1Y3QgaTkxNV9jdHhfaGFuZ19zdGF0cyB7Cj4gICAJ Ym9vbCBiYW5uZWQ7Cj4gICB9Owo+Cj4gK3N0cnVjdCBpOTE1X3N0b2xlbl9ub2RlIHsKPiArCXN0 cnVjdCBkcm1fbW1fbm9kZSBiYXNlOwo+ICsJc3RydWN0IGxpc3RfaGVhZCBtbV9saW5rOwo+ICsJ c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKPiArfTsKPiArCj4gICAvKiBUaGlzIG11 c3QgbWF0Y2ggdXAgd2l0aCB0aGUgdmFsdWUgcHJldmlvdXNseSB1c2VkIGZvciBleGVjYnVmMi5y c3ZkMS4gKi8KPiAgICNkZWZpbmUgREVGQVVMVF9DT05URVhUX0hBTkRMRSAwCj4KPiBAQCAtMTI1 MSw2ICsxMjU3LDEzIEBAIHN0cnVjdCBpOTE1X2dlbV9tbSB7Cj4gICAJICovCj4gICAJc3RydWN0 IGxpc3RfaGVhZCB1bmJvdW5kX2xpc3Q7Cj4KPiArCS8qKgo+ICsJICogTGlzdCBvZiBzdG9sZW4g b2JqZWN0cyB0aGF0IGhhdmUgYmVlbiBtYXJrZWQgYXMgcHVyZ2VhYmxlIGFuZAo+ICsJICogdGh1 cyBhdmFpbGFibGUgZm9yIHJlYXBpbmcgaWYgd2UgbmVlZCBtb3JlIHNwYWNlIGZvciBhIG5ldwo+ ICsJICogYWxsb2NhdGlvbi4gT3JkZXJlZCBieSB0aW1lIG9mIG1hcmtpbmcgcHVyZ2VhYmxlLgo+ ICsJICovCj4gKwlzdHJ1Y3QgbGlzdF9oZWFkIHN0b2xlbl9saXN0Owo+ICsKPiAgIAkvKiogVXNh YmxlIHBvcnRpb24gb2YgdGhlIEdUVCBmb3IgR0VNICovCj4gICAJdW5zaWduZWQgbG9uZyBzdG9s ZW5fYmFzZTsgLyogbGltaXRlZCB0byBsb3cgbWVtb3J5ICgzMi1iaXQpICovCj4KPiBAQCAtMjAz MSw3ICsyMDQ0LDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qgewo+ICAgCXN0cnVjdCBs aXN0X2hlYWQgdm1hX2xpc3Q7Cj4KPiAgIAkvKiogU3RvbGVuIG1lbW9yeSBmb3IgdGhpcyBvYmpl Y3QsIGluc3RlYWQgb2YgYmVpbmcgYmFja2VkIGJ5IHNobWVtLiAqLwo+IC0Jc3RydWN0IGRybV9t bV9ub2RlICpzdG9sZW47Cj4gKwlzdHJ1Y3QgaTkxNV9zdG9sZW5fbm9kZSAqc3RvbGVuOwo+ICAg CXN0cnVjdCBsaXN0X2hlYWQgZ2xvYmFsX2xpc3Q7Cj4KPiAgIAlzdHJ1Y3QgbGlzdF9oZWFkIHJp bmdfbGlzdFtJOTE1X05VTV9SSU5HU107Cj4gQEAgLTIwMzksNiArMjA1Miw4IEBAIHN0cnVjdCBk cm1faTkxNV9nZW1fb2JqZWN0IHsKPiAgIAlzdHJ1Y3QgbGlzdF9oZWFkIG9ial9leGVjX2xpbms7 Cj4KPiAgIAlzdHJ1Y3QgbGlzdF9oZWFkIGJhdGNoX3Bvb2xfbGluazsKPiArCS8qKiBVc2VkIGR1 cmluZyBzdG9sZW4gbWVtb3J5IGFsbG9jYXRpb25zIHRvIHRlbXBvcmFyaWx5IGhvbGQgYSByZWYg Ki8KPiArCXN0cnVjdCBsaXN0X2hlYWQgc3RvbGVuX2xpbms7Cj4KPiAgIAkvKioKPiAgIAkgKiBU aGlzIGlzIHNldCBpZiB0aGUgb2JqZWN0IGlzIG9uIHRoZSBhY3RpdmUgbGlzdHMgKGhhcyBwZW5k aW5nCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gaW5kZXggMDU1MDVkZS4uOGE1MDhjZCAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBAIC00NDExLDYgKzQ0MTEsMjAgQEAgaTkxNV9n ZW1fbWFkdmlzZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAg CWlmIChvYmotPm1hZHYgPT0gSTkxNV9NQURWX0RPTlRORUVEICYmIG9iai0+cGFnZXMgPT0gTlVM TCkKPiAgIAkJaTkxNV9nZW1fb2JqZWN0X3RydW5jYXRlKG9iaik7Cj4KPiArCWlmIChvYmotPnN0 b2xlbikgewo+ICsJCXN3aXRjaCAob2JqLT5tYWR2KSB7Cj4gKwkJY2FzZSBJOTE1X01BRFZfV0lM TE5FRUQ6Cj4gKwkJCWxpc3RfZGVsX2luaXQoJm9iai0+c3RvbGVuLT5tbV9saW5rKTsKPiArCQkJ YnJlYWs7Cj4gKwkJY2FzZSBJOTE1X01BRFZfRE9OVE5FRUQ6Cj4gKwkJCWxpc3RfbW92ZSgmb2Jq LT5zdG9sZW4tPm1tX2xpbmssCj4gKwkJCQkgICZkZXZfcHJpdi0+bW0uc3RvbGVuX2xpc3QpOwo+ ICsJCQlicmVhazsKPiArCQlkZWZhdWx0Ogo+ICsJCQlicmVhazsKPiArCQl9Cj4gKwl9Cj4gKwo+ ICAgCWFyZ3MtPnJldGFpbmVkID0gb2JqLT5tYWR2ICE9IF9fSTkxNV9NQURWX1BVUkdFRDsKPgo+ ICAgb3V0Ogo+IEBAIC00NDMxLDYgKzQ0NDUsNyBAQCB2b2lkIGk5MTVfZ2VtX29iamVjdF9pbml0 KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gICAJSU5JVF9MSVNUX0hFQUQoJm9i ai0+b2JqX2V4ZWNfbGluayk7Cj4gICAJSU5JVF9MSVNUX0hFQUQoJm9iai0+dm1hX2xpc3QpOwo+ ICAgCUlOSVRfTElTVF9IRUFEKCZvYmotPmJhdGNoX3Bvb2xfbGluayk7Cj4gKwlJTklUX0xJU1Rf SEVBRCgmb2JqLT5zdG9sZW5fbGluayk7Cj4KPiAgIAlvYmotPm9wcyA9IG9wczsKPgo+IEBAIC01 MDQ2LDYgKzUwNjEsNyBAQCBpOTE1X2dlbV9sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4g ICAJSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT5jb250ZXh0X2xpc3QpOwo+ICAgCUlOSVRfTElT VF9IRUFEKCZkZXZfcHJpdi0+bW0udW5ib3VuZF9saXN0KTsKPiAgIAlJTklUX0xJU1RfSEVBRCgm ZGV2X3ByaXYtPm1tLmJvdW5kX2xpc3QpOwo+ICsJSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT5t bS5zdG9sZW5fbGlzdCk7Cj4gICAJSU5JVF9MSVNUX0hFQUQoJmRldl9wcml2LT5tbS5mZW5jZV9s aXN0KTsKPiAgIAlmb3IgKGkgPSAwOyBpIDwgSTkxNV9OVU1fUklOR1M7IGkrKykKPiAgIAkJaW5p dF9yaW5nX2xpc3RzKCZkZXZfcHJpdi0+cmluZ1tpXSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9nZW1fc3RvbGVuLmMKPiBpbmRleCAzNjYwODBiOS4uMDE0ZDQ3OCAxMDA2NDQKPiAtLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9zdG9sZW4uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX3N0b2xlbi5jCj4gQEAgLTU0Miw3ICs1NDIsOCBAQCBpOTE1X2dl bV9vYmplY3RfcmVsZWFzZV9zdG9sZW4oc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikK PiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBvYmotPmJhc2UuZGV2LT5k ZXZfcHJpdmF0ZTsKPgo+ICAgCWlmIChvYmotPnN0b2xlbikgewo+IC0JCWk5MTVfZ2VtX3N0b2xl bl9yZW1vdmVfbm9kZShkZXZfcHJpdiwgb2JqLT5zdG9sZW4pOwo+ICsJCWxpc3RfZGVsKCZvYmot PnN0b2xlbi0+bW1fbGluayk7Cj4gKwkJaTkxNV9nZW1fc3RvbGVuX3JlbW92ZV9ub2RlKGRldl9w cml2LCAmb2JqLT5zdG9sZW4tPmJhc2UpOwo+ICAgCQlrZnJlZShvYmotPnN0b2xlbik7Cj4gICAJ CW9iai0+c3RvbGVuID0gTlVMTDsKPiAgIAl9Cj4gQEAgLTU1NSw3ICs1NTYsNyBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Rfb3BzIGk5MTVfZ2VtX29iamVjdF9zdG9s ZW5fb3BzID0gewo+Cj4gICBzdGF0aWMgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKgo+ICAg X2k5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g LQkJCSAgICAgICBzdHJ1Y3QgZHJtX21tX25vZGUgKnN0b2xlbikKPiArCQkJICAgICAgIHN0cnVj dCBpOTE1X3N0b2xlbl9ub2RlICpzdG9sZW4pCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iajsKPgo+IEBAIC01NjMsMTEgKzU2NCwxMiBAQCBfaTkxNV9nZW1fb2JqZWN0 X2NyZWF0ZV9zdG9sZW4oc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAlpZiAob2JqID09IE5V TEwpCj4gICAJCXJldHVybiBFUlJfUFRSKC1FTk9NRU0pOwo+Cj4gLQlkcm1fZ2VtX3ByaXZhdGVf b2JqZWN0X2luaXQoZGV2LCAmb2JqLT5iYXNlLCBzdG9sZW4tPnNpemUpOwo+ICsJZHJtX2dlbV9w cml2YXRlX29iamVjdF9pbml0KGRldiwgJm9iai0+YmFzZSwgc3RvbGVuLT5iYXNlLnNpemUpOwo+ ICAgCWk5MTVfZ2VtX29iamVjdF9pbml0KG9iaiwgJmk5MTVfZ2VtX29iamVjdF9zdG9sZW5fb3Bz KTsKPgo+ICAgCW9iai0+cGFnZXMgPSBpOTE1X3BhZ2VzX2NyZWF0ZV9mb3Jfc3RvbGVuKGRldiwK PiAtCQkJCQkJICBzdG9sZW4tPnN0YXJ0LCBzdG9sZW4tPnNpemUpOwo+ICsJCQkJCQkgIHN0b2xl bi0+YmFzZS5zdGFydCwKPiArCQkJCQkJICBzdG9sZW4tPmJhc2Uuc2l6ZSk7Cj4gICAJaWYgKElT X0VSUihvYmotPnBhZ2VzKSkgewo+ICAgCQlpOTE1X2dlbV9vYmplY3RfZnJlZShvYmopOwo+ICAg CQlyZXR1cm4gKHZvaWQqKSBvYmotPnBhZ2VzOwo+IEBAIC01NzksMjQgKzU4MSwxMTEgQEAgX2k5 MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAJ aTkxNV9nZW1fb2JqZWN0X3Bpbl9wYWdlcyhvYmopOwo+ICAgCW9iai0+c3RvbGVuID0gc3RvbGVu Owo+Cj4gKwlzdG9sZW4tPm9iaiA9IG9iajsKPiArCUlOSVRfTElTVF9IRUFEKCZzdG9sZW4tPm1t X2xpbmspOwo+ICsKPiAgIAlvYmotPmJhc2UucmVhZF9kb21haW5zID0gSTkxNV9HRU1fRE9NQUlO X0NQVSB8IEk5MTVfR0VNX0RPTUFJTl9HVFQ7Cj4gICAJb2JqLT5jYWNoZV9sZXZlbCA9IEhBU19M TEMoZGV2KSA/IEk5MTVfQ0FDSEVfTExDIDogSTkxNV9DQUNIRV9OT05FOwo+Cj4gICAJcmV0dXJu IG9iajsKPiAgIH0KPgo+IC1zdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqCj4gLWk5MTVfZ2Vt X29iamVjdF9jcmVhdGVfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHU2NCBzaXplKQo+ ICtzdGF0aWMgYm9vbAo+ICttYXJrX2ZyZWUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9i aiwgc3RydWN0IGxpc3RfaGVhZCAqdW53aW5kKQo+ICt7Cj4gKwlCVUdfT04ob2JqLT5zdG9sZW4g PT0gTlVMTCk7Cj4gKwo+ICsJaWYgKG9iai0+bWFkdiAhPSBJOTE1X01BRFZfRE9OVE5FRUQpCj4g KwkJcmV0dXJuIGZhbHNlOwo+ICsKPiArCWlmIChvYmotPnBpbl9kaXNwbGF5KQo+ICsJCXJldHVy biBmYWxzZTsKPiArCj4gKwlsaXN0X2FkZCgmb2JqLT5zdG9sZW5fbGluaywgdW53aW5kKTsKPiAr CXJldHVybiBkcm1fbW1fc2Nhbl9hZGRfYmxvY2soJm9iai0+c3RvbGVuLT5iYXNlKTsKPiArfQo+ ICsKPiArc3RhdGljIGludAo+ICtzdG9sZW5fZXZpY3Qoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LCB1NjQgc2l6ZSkKPiAgIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gICAJc3RydWN0IGRybV9pOTE1X2dlbV9vYmpl Y3QgKm9iajsKPiAtCXN0cnVjdCBkcm1fbW1fbm9kZSAqc3RvbGVuOwo+IC0JaW50IHJldDsKPiAr CXN0cnVjdCBsaXN0X2hlYWQgdW53aW5kLCBldmljdDsKPiArCXN0cnVjdCBpOTE1X3N0b2xlbl9u b2RlICppdGVyOwo+ICsJaW50IHJldCwgYWN0aXZlOwo+Cj4gLQlpZiAoIWRybV9tbV9pbml0aWFs aXplZCgmZGV2X3ByaXYtPm1tLnN0b2xlbikpCj4gLQkJcmV0dXJuIEVSUl9QVFIoLUVOT0RFVik7 Cj4gKwlkcm1fbW1faW5pdF9zY2FuKCZkZXZfcHJpdi0+bW0uc3RvbGVuLCBzaXplLCAwLCAwKTsK PiArCUlOSVRfTElTVF9IRUFEKCZ1bndpbmQpOwo+ICsKPiArCS8qIFJldGlyZSBhbGwgcmVxdWVz dHMgYmVmb3JlIGNyZWF0aW5nIHRoZSBldmljdCBsaXN0ICovCj4gKwlpOTE1X2dlbV9yZXRpcmVf cmVxdWVzdHMoZGV2X3ByaXYtPmRldik7Cj4gKwo+ICsJZm9yIChhY3RpdmUgPSAwOyBhY3RpdmUg PD0gMTsgYWN0aXZlKyspIHsKPiArCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGl0ZXIsICZkZXZfcHJp di0+bW0uc3RvbGVuX2xpc3QsIG1tX2xpbmspIHsKPiArCQkJaWYgKGl0ZXItPm9iai0+YWN0aXZl ICE9IGFjdGl2ZSkKPiArCQkJCWNvbnRpbnVlOwo+ICsKPiArCQkJaWYgKG1hcmtfZnJlZShpdGVy LT5vYmosICZ1bndpbmQpKQo+ICsJCQkJZ290byBmb3VuZDsKPiArCQl9Cj4gKwl9Cj4gKwo+ICtm b3VuZDoKPiArCUlOSVRfTElTVF9IRUFEKCZldmljdCk7Cj4gKwl3aGlsZSAoIWxpc3RfZW1wdHko JnVud2luZCkpIHsKPiArCQlvYmogPSBsaXN0X2ZpcnN0X2VudHJ5KCZ1bndpbmQsCj4gKwkJCQkg ICAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QsCj4gKwkJCQkgICAgICAgc3RvbGVuX2xp bmspOwo+ICsJCWxpc3RfZGVsKCZvYmotPnN0b2xlbl9saW5rKTsKPiArCj4gKwkJaWYgKGRybV9t bV9zY2FuX3JlbW92ZV9ibG9jaygmb2JqLT5zdG9sZW4tPmJhc2UpKSB7Cj4gKwkJCWxpc3RfYWRk KCZvYmotPnN0b2xlbl9saW5rLCAmZXZpY3QpOwo+ICsJCQlkcm1fZ2VtX29iamVjdF9yZWZlcmVu Y2UoJm9iai0+YmFzZSk7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCXJldCA9IDA7Cj4gKwl3aGlsZSAo IWxpc3RfZW1wdHkoJmV2aWN0KSkgewo+ICsJCW9iaiA9IGxpc3RfZmlyc3RfZW50cnkoJmV2aWN0 LAo+ICsJCQkJICAgICAgIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0LAo+ICsJCQkJICAgICAg IHN0b2xlbl9saW5rKTsKPiArCQlsaXN0X2RlbCgmb2JqLT5zdG9sZW5fbGluayk7Cj4gKwo+ICsJ CWlmIChyZXQgPT0gMCkgewo+ICsJCQlzdHJ1Y3QgaTkxNV92bWEgKnZtYSwgKnZtYV9uZXh0Owo+ ICsKPiArCQkJbGlzdF9mb3JfZWFjaF9lbnRyeV9zYWZlKHZtYSwgdm1hX25leHQsCj4gKwkJCQkJ CSAmb2JqLT52bWFfbGlzdCwKPiArCQkJCQkJIHZtYV9saW5rKQo+ICsJCQkJaWYgKGk5MTVfdm1h X3VuYmluZCh2bWEpKQo+ICsJCQkJCWJyZWFrOwo+ICsKPiArCQkJLyogU3RvbGVuIHBpbnMgaXRz IHBhZ2VzIHRvIHByZXZlbnQgdGhlCj4gKwkJCSAqIG5vcm1hbCBzaHJpbmtlciBmcm9tIHByb2Nl c3Npbmcgc3RvbGVuCj4gKwkJCSAqIG9iamVjdHMuCj4gKwkJCSAqLwo+ICsJCQlpOTE1X2dlbV9v YmplY3RfdW5waW5fcGFnZXMob2JqKTsKPiArCj4gKwkJCXJldCA9IGk5MTVfZ2VtX29iamVjdF9w dXRfcGFnZXMob2JqKTsKPiArCQkJaWYgKHJldCA9PSAwKSB7Cj4gKwkJCQlpOTE1X2dlbV9vYmpl Y3RfcmVsZWFzZV9zdG9sZW4ob2JqKTsKPiArCQkJCW9iai0+bWFkdiA9IF9fSTkxNV9NQURWX1BV UkdFRDsKPiArCQkJfSBlbHNlIHsKPiArCQkJCWk5MTVfZ2VtX29iamVjdF9waW5fcGFnZXMob2Jq KTsKPiArCQkJfQo+ICsJCX0KPiArCj4gKwkJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJm9i ai0+YmFzZSk7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiArc3RhdGljIHN0 cnVjdCBpOTE1X3N0b2xlbl9ub2RlICoKPiArc3RvbGVuX2FsbG9jKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwgdTY0IHNpemUpCj4gK3sKPiArCXN0cnVjdCBpOTE1X3N0b2xlbl9u b2RlICpzdG9sZW47Cj4gKwlpbnQgcmV0Owo+Cj4gLQlEUk1fREVCVUdfS01TKCJjcmVhdGluZyBz dG9sZW4gb2JqZWN0OiBzaXplPSVsbHhcbiIsIHNpemUpOwo+ICAgCWlmIChzaXplID09IDApCj4g ICAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwo+Cj4gQEAgLTYwNCwxNyArNjkzLDYwIEBAIGk5 MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHU2NCBz aXplKQo+ICAgCWlmICghc3RvbGVuKQo+ICAgCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPgo+ IC0JcmV0ID0gaTkxNV9nZW1fc3RvbGVuX2luc2VydF9ub2RlKGRldl9wcml2LCBzdG9sZW4sIHNp emUsIDQwOTYpOwo+ICsJcmV0ID0gaTkxNV9nZW1fc3RvbGVuX2luc2VydF9ub2RlKGRldl9wcml2 LCAmc3RvbGVuLT5iYXNlLCBzaXplLCA0MDk2KTsKPiArCWlmIChyZXQgPT0gMCkKPiArCQlnb3Rv IG91dDsKPiArCj4gKwkvKiBObyBtb3JlIHN0b2xlbiBtZW1vcnkgYXZhaWxhYmxlLCBvciB0b28g ZnJhZ21lbnRlZC4KPiArCSAqIFRyeSBldmljdGluZyBwdXJnZWFibGUgb2JqZWN0cyBhbmQgc2Vh cmNoIGFnYWluLgo+ICsJICovCj4gKwlyZXQgPSBzdG9sZW5fZXZpY3QoZGV2X3ByaXYsIHNpemUp Owo+ICsJaWYgKHJldCA9PSAwKQo+ICsJCXJldCA9IGk5MTVfZ2VtX3N0b2xlbl9pbnNlcnRfbm9k ZShkZXZfcHJpdiwgJnN0b2xlbi0+YmFzZSwKPiArCQkJCQkJICBzaXplLCA0MDk2KTsKPiArb3V0 Ogo+ICAgCWlmIChyZXQpIHsKPiAgIAkJa2ZyZWUoc3RvbGVuKTsKPiAgIAkJcmV0dXJuIEVSUl9Q VFIocmV0KTsKPiAgIAl9Cj4KPiArCXJldHVybiBzdG9sZW47Cj4gK30KPiArCj4gKy8qKgo+ICsg KiBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbigpIC0gY3JlYXRlcyBvYmplY3QgdXNpbmcg dGhlIHN0b2xlbiBtZW1vcnkKPiArICogQGRldjoJZHJtIGRldmljZQo+ICsgKiBAc2l6ZToJc2l6 ZSBvZiB0aGUgb2JqZWN0IHJlcXVlc3RlZAo+ICsgKgo+ICsgKiBpOTE1X2dlbV9vYmplY3RfY3Jl YXRlX3N0b2xlbigpIHRyaWVzIHRvIGFsbG9jYXRlIG1lbW9yeSBmb3IgdGhlIG9iamVjdAo+ICsg KiBmcm9tIHRoZSBzdG9sZW4gbWVtb3J5IHJlZ2lvbi4gSWYgbm90IGVub3VnaCBtZW1vcnkgaXMg Zm91bmQsIGl0IHRyaWVzCj4gKyAqIGV2aWN0aW5nIHB1cmdlYWJsZSBvYmplY3RzIGFuZCBzZWFy Y2hpbmcgYWdhaW4uCj4gKyAqCj4gKyAqIFJldHVybnM6IE9iamVjdCBwb2ludGVyIC0gc3VjY2Vz cyBhbmQgZXJyb3IgcG9pbnRlciAtIGZhaWx1cmUKPiArICovCj4gK3N0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICoKPiAraTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdTY0IHNpemUpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqOwo+ICsJc3RydWN0IGk5MTVfc3RvbGVuX25vZGUgKnN0b2xlbjsKPiArCj4gKwlXQVJO X09OKCFtdXRleF9pc19sb2NrZWQoJmRldi0+c3RydWN0X211dGV4KSk7Cj4gKwo+ICsJaWYgKCFk cm1fbW1faW5pdGlhbGl6ZWQoJmRldl9wcml2LT5tbS5zdG9sZW4pKQo+ICsJCXJldHVybiBFUlJf UFRSKC1FTk9ERVYpOwo+ICsKPiArCURSTV9ERUJVR19LTVMoImNyZWF0aW5nIHN0b2xlbiBvYmpl Y3Q6IHNpemU9JWxseFxuIiwgc2l6ZSk7Cj4gKwo+ICsJc3RvbGVuID0gc3RvbGVuX2FsbG9jKGRl dl9wcml2LCBzaXplKTsKPiArCWlmIChJU19FUlIoc3RvbGVuKSkKPiArCQlyZXR1cm4gKHZvaWQq KSBzdG9sZW47Cj4gKwo+ICAgCW9iaiA9IF9pOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbihk ZXYsIHN0b2xlbik7Cj4gICAJaWYgKCFJU19FUlIob2JqKSkKPiAgIAkJcmV0dXJuIG9iajsKPgo+ IC0JaTkxNV9nZW1fc3RvbGVuX3JlbW92ZV9ub2RlKGRldl9wcml2LCBzdG9sZW4pOwo+ICsJaTkx NV9nZW1fc3RvbGVuX3JlbW92ZV9ub2RlKGRldl9wcml2LCAmc3RvbGVuLT5iYXNlKTsKPiAgIAlr ZnJlZShzdG9sZW4pOwo+ICAgCXJldHVybiBvYmo7Cj4gICB9Cj4gQEAgLTYyOCw3ICs3NjAsNyBA QCBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3N0b2xlbl9mb3JfcHJlYWxsb2NhdGVkKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsCj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKPiAgIAlzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICpnZ3R0ID0g JmRldl9wcml2LT5ndHQuYmFzZTsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq Owo+IC0Jc3RydWN0IGRybV9tbV9ub2RlICpzdG9sZW47Cj4gKwlzdHJ1Y3QgaTkxNV9zdG9sZW5f bm9kZSAqc3RvbGVuOwo+ICAgCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwo+ICAgCWludCByZXQ7Cj4K PiBAQCAtNjQ3LDEwICs3NzksMTAgQEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW5fZm9y X3ByZWFsbG9jYXRlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCWlmICghc3RvbGVuKQo+ ICAgCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPgo+IC0Jc3RvbGVuLT5zdGFydCA9IHN0b2xl bl9vZmZzZXQ7Cj4gLQlzdG9sZW4tPnNpemUgPSBzaXplOwo+ICsJc3RvbGVuLT5iYXNlLnN0YXJ0 ID0gc3RvbGVuX29mZnNldDsKPiArCXN0b2xlbi0+YmFzZS5zaXplID0gc2l6ZTsKPiAgIAltdXRl eF9sb2NrKCZkZXZfcHJpdi0+bW0uc3RvbGVuX2xvY2spOwo+IC0JcmV0ID0gZHJtX21tX3Jlc2Vy dmVfbm9kZSgmZGV2X3ByaXYtPm1tLnN0b2xlbiwgc3RvbGVuKTsKPiArCXJldCA9IGRybV9tbV9y ZXNlcnZlX25vZGUoJmRldl9wcml2LT5tbS5zdG9sZW4sICZzdG9sZW4tPmJhc2UpOwo+ICAgCW11 dGV4X3VubG9jaygmZGV2X3ByaXYtPm1tLnN0b2xlbl9sb2NrKTsKPiAgIAlpZiAocmV0KSB7Cj4g ICAJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBhbGxvY2F0ZSBzdG9sZW4gc3BhY2VcbiIpOwo+ IEBAIC02NjEsNyArNzkzLDcgQEAgaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW5fZm9yX3By ZWFsbG9jYXRlZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCW9iaiA9IF9pOTE1X2dlbV9v YmplY3RfY3JlYXRlX3N0b2xlbihkZXYsIHN0b2xlbik7Cj4gICAJaWYgKElTX0VSUihvYmopKSB7 Cj4gICAJCURSTV9ERUJVR19LTVMoImZhaWxlZCB0byBhbGxvY2F0ZSBzdG9sZW4gb2JqZWN0XG4i KTsKPiAtCQlpOTE1X2dlbV9zdG9sZW5fcmVtb3ZlX25vZGUoZGV2X3ByaXYsIHN0b2xlbik7Cj4g KwkJaTkxNV9nZW1fc3RvbGVuX3JlbW92ZV9ub2RlKGRldl9wcml2LCAmc3RvbGVuLT5iYXNlKTsK PiAgIAkJa2ZyZWUoc3RvbGVuKTsKPiAgIAkJcmV0dXJuIG9iajsKPiAgIAl9Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jCj4gaW5kZXggMGFmYjgxOS4uYzk0YjM5YiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcG0uYwo+IEBAIC01MTE5LDcgKzUxMTksNyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3 X2NoZWNrX3BjdHgoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAgCXVuc2ln bmVkIGxvbmcgcGN0eF9hZGRyID0gSTkxNV9SRUFEKFZMVl9QQ0JSKSAmIH40MDk1Owo+Cj4gICAJ V0FSTl9PTihwY3R4X2FkZHIgIT0gZGV2X3ByaXYtPm1tLnN0b2xlbl9iYXNlICsKPiAtCQkJICAg ICBkZXZfcHJpdi0+dmx2X3BjdHgtPnN0b2xlbi0+c3RhcnQpOwo+ICsJCQkgICAgIGRldl9wcml2 LT52bHZfcGN0eC0+c3RvbGVuLT5iYXNlLnN0YXJ0KTsKPiAgIH0KPgo+Cj4gQEAgLTUxOTQsNyAr NTE5NCw3IEBAIHN0YXRpYyB2b2lkIHZhbGxleXZpZXdfc2V0dXBfcGN0eChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+ICAgCQlyZXR1cm47Cj4gICAJfQo+Cj4gLQlwY3R4X3BhZGRyID0gZGV2X3By aXYtPm1tLnN0b2xlbl9iYXNlICsgcGN0eC0+c3RvbGVuLT5zdGFydDsKPiArCXBjdHhfcGFkZHIg PSBkZXZfcHJpdi0+bW0uc3RvbGVuX2Jhc2UgKyBwY3R4LT5zdG9sZW4tPmJhc2Uuc3RhcnQ7Cj4g ICAJSTkxNV9XUklURShWTFZfUENCUiwgcGN0eF9wYWRkcik7Cj4KPiAgIG91dDoKPgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=