From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 08/10] drm/i915: Support for pread/pwrite from/to non shmem backed objects Date: Thu, 11 Feb 2016 11:40:10 +0000 Message-ID: <56BC731A.1060904@linux.intel.com> References: <1454578211-24823-1-git-send-email-ankitprasad.r.sharma@intel.com> <1454578211-24823-9-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 2E6696E835 for ; Thu, 11 Feb 2016 03:40:13 -0800 (PST) In-Reply-To: <1454578211-24823-9-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 CgpPbiAwNC8wMi8xNiAwOTozMCwgYW5raXRwcmFzYWQuci5zaGFybWFAaW50ZWwuY29tIHdyb3Rl Ogo+IEZyb206IEFua2l0cHJhc2FkIFNoYXJtYSA8YW5raXRwcmFzYWQuci5zaGFybWFAaW50ZWwu Y29tPgo+Cj4gVGhpcyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGV4dGVuZGluZyB0aGUgcHJlYWQv cHdyaXRlIGZ1bmN0aW9uYWxpdHkKPiBmb3Igb2JqZWN0cyBub3QgYmFja2VkIGJ5IHNobWVtLiBU aGUgYWNjZXNzIHdpbGwgYmUgbWFkZSB0aHJvdWdoCj4gZ3R0IGludGVyZmFjZS4gVGhpcyB3aWxs IGNvdmVyIG9iamVjdHMgYmFja2VkIGJ5IHN0b2xlbiBtZW1vcnkgYXMgd2VsbAo+IGFzIG90aGVy IG5vbi1zaG1lbSBiYWNrZWQgb2JqZWN0cy4KPgo+IHYyOiBEcm9wIGxvY2tzIGFyb3VuZCBzbG93 X3VzZXJfYWNjZXNzLCBwcmVmYXVsdCB0aGUgcGFnZXMgYmVmb3JlCj4gYWNjZXNzIChDaHJpcykK Pgo+IHYzOiBSZWJhc2VkIHRvIHRoZSBsYXRlc3QgZHJtLWludGVsLW5pZ2h0bHkgKEFua2l0KQo+ Cj4gdjQ6IE1vdmVkIHBhZ2UgYmFzZSAmIG9mZnNldCBjYWxjdWxhdGlvbnMgb3V0c2lkZSB0aGUg Y29weSBsb29wLAo+IGNvcnJlY3RlZCBkYXRhIHR5cGVzIGZvciBzaXplIGFuZCBvZmZzZXQgdmFy aWFibGVzLCBjb3JyZWN0ZWQgaWYtZWxzZQo+IGJyYWNlcyBmb3JtYXQgKFR2cnRrby9rZXJuZWxk b2NzKQo+Cj4gdjU6IEVuYWJsZWQgcHJlYWQvcHdyaXRlIGZvciBhbGwgbm9uLXNobWVtIGJhY2tl ZCBvYmplY3RzIGluY2x1ZGluZwo+IHdpdGhvdXQgdGlsaW5nIHJlc3RyaWN0aW9ucyAoQW5raXQp Cj4KPiB2NjogVXNpbmcgcHdyaXRlX2Zhc3QgZm9yIG5vbi1zaG1lbSBiYWNrZWQgb2JqZWN0cyBh cyB3ZWxsIChDaHJpcykKPgo+IHY3OiBVcGRhdGVkIGNvbW1pdCBtZXNzYWdlLCBSZW5hbWVkIGk5 MTVfZ2VtX2d0dF9yZWFkIHRvIGk5MTVfZ2VtX2d0dF9jb3B5LAo+IGFkZGVkIHB3cml0ZSBzbG93 IHBhdGggZm9yIG5vbi1zaG1lbSBiYWNrZWQgb2JqZWN0cyAoQ2hyaXMvVHZydGtvKQo+Cj4gdjg6 IFVwZGF0ZWQgdjcgY29tbWl0IG1lc3NhZ2UsIG11dGV4IHVubG9jayBhcm91bmQgcHdyaXRlIHNs b3cgcGF0aCBmb3IKPiBub24tc2htZW0gYmFja2VkIG9iamVjdHMgKFR2cnRrbykKPgo+IHY5OiBD b3JyZWN0ZWQgY2hlY2sgZHVyaW5nIHByZWFkX2lvY3RsLCB0byBhdm9pZCBzaG1lbV9wcmVhZCBi ZWluZwo+IGNhbGxlZCBmb3Igbm9uLXNobWVtIGJhY2tlZCBvYmplY3RzIChUdnJ0a28pCj4KPiB2 MTA6IE1vdmVkIHRoZSB3cml0ZV9kb21haW4gY2hlY2sgdG8gbmVlZHNfY2xmbHVzaCBhbmQgdGls aW5nIG1vZGUgY2hlY2sKPiB0byBwd3JpdGVfZmFzdCAoQ2hyaXMpCj4KPiB2MTE6IFVzZSBwd3Jp dGVfZmFzdCBmYWxsYmFjayBmb3IgYWxsIG9iamVjdHMgKHNobWVtIGFuZCBub24tc2htZW0gYmFj a2VkKSwKPiBjYWxsIGZhc3RfdXNlcl93cml0ZSByZWdhcmRsZXNzIG9mIHBhZ2VmYXVsdCBpbiBw cmV2aW91cyBpdGVyYXRpb24KPgo+IHYxMjogVXNlIHBhZ2UtYnktcGFnZSBjb3B5IGZvciBzbG93 IHVzZXIgYWNjZXNzIHRvbyAoQ2hyaXMpCj4KPiB2MTM6IEhhbmRsZWQgRUZBVUxULCBBdm9pZCB1 c2Ugb2YgV0FSTl9PTiwgcHV0X2ZlbmNlIG9ubHkgaWYgd2hvbGUgb2JqCj4gcGlubmVkIChDaHJp cykKPgo+IFRlc3RjYXNlOiBpZ3QvZ2VtX3N0b2xlbiwgaWd0L2dlbV9wcmVhZCwgaWd0L2dlbV9w d3JpdGUKPgo+IFNpZ25lZC1vZmYtYnk6IEFua2l0cHJhc2FkIFNoYXJtYSA8YW5raXRwcmFzYWQu ci5zaGFybWFAaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9n ZW0uYyB8IDIxMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCj4gICAx IGZpbGUgY2hhbmdlZCwgMTc5IGluc2VydGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQo+Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2dlbS5jCj4gaW5kZXggZWQ4YWU1ZC4uNDBmMjkwNiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW0uYwo+IEBAIC01NSw2ICs1NSw5IEBAIHN0YXRpYyBib29sIGNwdV9jYWNo ZV9pc19jb2hlcmVudChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+Cj4gICBzdGF0aWMgYm9vbCBj cHVfd3JpdGVfbmVlZHNfY2xmbHVzaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQo+ ICAgewo+ICsJaWYgKG9iai0+YmFzZS53cml0ZV9kb21haW4gPT0gSTkxNV9HRU1fRE9NQUlOX0NQ VSkKPiArCQlyZXR1cm4gZmFsc2U7Cj4gKwo+ICAgCWlmICghY3B1X2NhY2hlX2lzX2NvaGVyZW50 KG9iai0+YmFzZS5kZXYsIG9iai0+Y2FjaGVfbGV2ZWwpKQo+ICAgCQlyZXR1cm4gdHJ1ZTsKPgo+ IEBAIC02NDYsNiArNjQ5LDE0MSBAQCBzaG1lbV9wcmVhZF9zbG93KHN0cnVjdCBwYWdlICpwYWdl LCBpbnQgc2htZW1fcGFnZV9vZmZzZXQsIGludCBwYWdlX2xlbmd0aCwKPiAgIAlyZXR1cm4gcmV0 ID8gLSBFRkFVTFQgOiAwOwo+ICAgfQo+Cj4gK3N0YXRpYyBpbmxpbmUgdWludDY0X3QKPiArc2xv d191c2VyX2FjY2VzcyhzdHJ1Y3QgaW9fbWFwcGluZyAqbWFwcGluZywKPiArCQkgdWludDY0X3Qg cGFnZV9iYXNlLCBpbnQgcGFnZV9vZmZzZXQsCj4gKwkJIGNoYXIgX191c2VyICp1c2VyX2RhdGEs Cj4gKwkJIGludCBsZW5ndGgsIGJvb2wgcHdyaXRlKQo+ICt7CgpSZXR1cm4gdHlwZSBhbmQgbGVu Z3RoIHNob3VsZCBiZSB1bnNpZ25lZCBsb25nIHRvIG1hdGNoIApfX2NvcHlfdG8vZnJvbV91c2Vy IHByb3RvdHlwZXMuCgo+ICsJdm9pZCBfX2lvbWVtICppb2FkZHI7Cj4gKwl2b2lkICp2YWRkcjsK PiArCXVpbnQ2NF90IHVud3JpdHRlbjsKPiArCj4gKwlpb2FkZHIgPSBpb19tYXBwaW5nX21hcF93 YyhtYXBwaW5nLCBwYWdlX2Jhc2UpOwo+ICsJLyogV2UgY2FuIHVzZSB0aGUgY3B1IG1lbSBjb3B5 IGZ1bmN0aW9uIGJlY2F1c2UgdGhpcyBpcyBYODYuICovCj4gKwl2YWRkciA9ICh2b2lkIF9fZm9y Y2UgKilpb2FkZHIgKyBwYWdlX29mZnNldDsKPiArCWlmIChwd3JpdGUpCj4gKwkJdW53cml0dGVu ID0gX19jb3B5X2Zyb21fdXNlcih2YWRkciwgdXNlcl9kYXRhLCBsZW5ndGgpOwo+ICsJZWxzZQo+ ICsJCXVud3JpdHRlbiA9IF9fY29weV90b191c2VyKHVzZXJfZGF0YSwgdmFkZHIsIGxlbmd0aCk7 Cj4gKwo+ICsJaW9fbWFwcGluZ191bm1hcChpb2FkZHIpOwo+ICsJcmV0dXJuIHVud3JpdHRlbjsK PiArfQo+ICsKPiArc3RhdGljIGludAo+ICtpOTE1X2dlbV9ndHRfcHJlYWQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPiArCQkgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLCB1aW50 NjRfdCBzaXplLAo+ICsJCSAgIHVpbnQ2NF90IGRhdGFfb2Zmc2V0LCB1aW50NjRfdCBkYXRhX3B0 cikKPiArewo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZf cHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1fbW1fbm9kZSBub2RlOwo+ICsJY2hhciBfX3VzZXIgKnVz ZXJfZGF0YTsKPiArCXVpbnQ2NF90IHJlbWFpbjsKPiArCXVpbnQ2NF90IG9mZnNldDsKPiArCWlu dCByZXQgPSAwOwoKTm8gbmVlZCB0byBpbml0aWFsaXplLgoKPiArCj4gKwlyZXQgPSBpOTE1X2dl bV9vYmpfZ2d0dF9waW4ob2JqLCAwLCBQSU5fTUFQUEFCTEUpOwo+ICsJaWYgKHJldCkgewo+ICsJ CXJldCA9IGluc2VydF9tYXBwYWJsZV9ub2RlKGRldl9wcml2LCAmbm9kZSwgUEFHRV9TSVpFKTsK PiArCQlpZiAocmV0KQo+ICsJCQlnb3RvIG91dDsKPiArCj4gKwkJcmV0ID0gaTkxNV9nZW1fb2Jq ZWN0X2dldF9wYWdlcyhvYmopOwo+ICsJCWlmIChyZXQpIHsKPiArCQkJcmVtb3ZlX21hcHBhYmxl X25vZGUoJm5vZGUpOwo+ICsJCQlnb3RvIG91dDsKPiArCQl9Cj4gKwo+ICsJCWk5MTVfZ2VtX29i amVjdF9waW5fcGFnZXMob2JqKTsKPiArCX0gZWxzZSB7Cj4gKwkJbm9kZS5zdGFydCA9IGk5MTVf Z2VtX29ial9nZ3R0X29mZnNldChvYmopOwo+ICsJCW5vZGUuYWxsb2NhdGVkID0gZmFsc2U7Cj4g KwkJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3B1dF9mZW5jZShvYmopOwo+ICsJCWlmIChyZXQpCj4g KwkJCWdvdG8gb3V0X3VucGluOwo+ICsJfQo+ICsKPiArCXJldCA9IGk5MTVfZ2VtX29iamVjdF9z ZXRfdG9fZ3R0X2RvbWFpbihvYmosIGZhbHNlKTsKPiArCWlmIChyZXQpCj4gKwkJZ290byBvdXRf dW5waW47Cj4gKwo+ICsJdXNlcl9kYXRhID0gdG9fdXNlcl9wdHIoZGF0YV9wdHIpOwo+ICsJcmVt YWluID0gc2l6ZTsKPiArCW9mZnNldCA9IGk5MTVfZ2VtX29ial9nZ3R0X29mZnNldChvYmopICsg ZGF0YV9vZmZzZXQ7CgpUaGlzIGlzIHdyb25nIGZvciB0aGUgcGFnZS1ieS1wYWdlIChubyBwaW4p IG1vZGUuCgo+ICsKPiArCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICsJaWYg KGxpa2VseSghaTkxNS5wcmVmYXVsdF9kaXNhYmxlKSkgewo+ICsJCXJldCA9IGZhdWx0X2luX211 bHRpcGFnZXNfd3JpdGVhYmxlKHVzZXJfZGF0YSwgcmVtYWluKTsKPiArCQlpZiAocmV0KSB7Cj4g KwkJCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiArCQkJZ290byBvdXRfdW5waW47 Cj4gKwkJfQo+ICsJfQo+ICsKPiArCXdoaWxlIChyZW1haW4gPiAwKSB7Cj4gKwkJLyogT3BlcmF0 aW9uIGluIHRoaXMgcGFnZQo+ICsJCSAqCj4gKwkJICogcGFnZV9iYXNlID0gcGFnZSBvZmZzZXQg d2l0aGluIGFwZXJ0dXJlCj4gKwkJICogcGFnZV9vZmZzZXQgPSBvZmZzZXQgd2l0aGluIHBhZ2UK PiArCQkgKiBwYWdlX2xlbmd0aCA9IGJ5dGVzIHRvIGNvcHkgZm9yIHRoaXMgcGFnZQo+ICsJCSAq Lwo+ICsJCXUzMiBwYWdlX2Jhc2UgPSBub2RlLnN0YXJ0Owo+ICsJCXVuc2lnbmVkIHBhZ2Vfb2Zm c2V0ID0gb2Zmc2V0X2luX3BhZ2Uob2Zmc2V0KTsKPiArCQl1bnNpZ25lZCBwYWdlX2xlbmd0aCA9 IFBBR0VfU0laRSAtIHBhZ2Vfb2Zmc2V0Owo+ICsJCXBhZ2VfbGVuZ3RoID0gcmVtYWluIDwgcGFn ZV9sZW5ndGggPyByZW1haW4gOiBwYWdlX2xlbmd0aDsKPiArCQlpZiAobm9kZS5hbGxvY2F0ZWQp IHsKPiArCQkJd21iKCk7Cj4gKwkJCWRldl9wcml2LT5ndHQuYmFzZS5pbnNlcnRfcGFnZSgmZGV2 X3ByaXYtPmd0dC5iYXNlLAo+ICsJCQkJCQkgICAgICAgaTkxNV9nZW1fb2JqZWN0X2dldF9kbWFf YWRkcmVzcyhvYmosIG9mZnNldCA+PiBQQUdFX1NISUZUKSwKPiArCQkJCQkJICAgICAgIG5vZGUu c3RhcnQsCj4gKwkJCQkJCSAgICAgICBJOTE1X0NBQ0hFX05PTkUsIDApOwo+ICsJCQl3bWIoKTsK PiArCQl9IGVsc2Ugewo+ICsJCQlwYWdlX2Jhc2UgKz0gb2Zmc2V0ICYgUEFHRV9NQVNLOwo+ICsJ CX0KPiArCQkvKiBUaGlzIGlzIGEgc2xvdyByZWFkL3dyaXRlIGFzIGl0IHRyaWVzIHRvIHJlYWQg ZnJvbQo+ICsJCSAqIGFuZCB3cml0ZSB0byB1c2VyIG1lbW9yeSB3aGljaCBtYXkgcmVzdWx0IGlu dG8gcGFnZQo+ICsJCSAqIGZhdWx0cywgYW5kIHNvIHdlIGNhbm5vdCBwZXJmb3JtIHRoaXMgdW5k ZXIgc3RydWN0X211dGV4Lgo+ICsJCSAqLwo+ICsJCWlmIChzbG93X3VzZXJfYWNjZXNzKGRldl9w cml2LT5ndHQubWFwcGFibGUsIHBhZ2VfYmFzZSwKPiArCQkJCSAgICAgcGFnZV9vZmZzZXQsIHVz ZXJfZGF0YSwKPiArCQkJCSAgICAgcGFnZV9sZW5ndGgsIGZhbHNlKSkgewo+ICsJCQlyZXQgPSAt RUZBVUxUOwo+ICsJCQlicmVhazsKPiArCQl9CgpSZWFkIGRvZXMgbm90IHdhbnQgdG8gdHJ5IHRo ZSBmYXN0IGFjY2VzcyBmaXJzdCwgZXF1aXZhbGVudCB0byBwd3JpdGUgPwoKPiArCj4gKwkJcmVt YWluIC09IHBhZ2VfbGVuZ3RoOwo+ICsJCXVzZXJfZGF0YSArPSBwYWdlX2xlbmd0aDsKPiArCQlv ZmZzZXQgKz0gcGFnZV9sZW5ndGg7Cj4gKwl9Cj4gKwo+ICsJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1 Y3RfbXV0ZXgpOwo+ICsJaWYgKHJldCA9PSAwICYmIChvYmotPmJhc2UucmVhZF9kb21haW5zICYg STkxNV9HRU1fRE9NQUlOX0dUVCkgPT0gMCkgewo+ICsJCS8qIFRoZSB1c2VyIGhhcyBtb2RpZmll ZCB0aGUgb2JqZWN0IHdoaWxzdCB3ZSB0cmllZAo+ICsJCSAqIHJlYWRpbmcgZnJvbSBpdCwgYW5k IHdlIG5vdyBoYXZlIG5vIGlkZWEgd2hhdCBkb21haW4KPiArCQkgKiB0aGUgcGFnZXMgc2hvdWxk IGJlIGluLiBBcyB3ZSBoYXZlIGp1c3QgYmVlbiB0b3VjaGluZwo+ICsJCSAqIHRoZW0gZGlyZWN0 bHksIGZsdXNoIGV2ZXJ5dGhpbmcgYmFjayB0byB0aGUgR1RUCj4gKwkJICogZG9tYWluLgo+ICsJ CSAqLwo+ICsJCXJldCA9IGk5MTVfZ2VtX29iamVjdF9zZXRfdG9fZ3R0X2RvbWFpbihvYmosIGZh bHNlKTsKCkhvdyBjYW4gdGhpcyBiZSBPSz8gSXQgc3VnZ2VzdHMgdXNlciBjb3VsZCBoYXZlIG1v dmVkIHRoZSBvYmplY3QgdG8gdGhlIApDUFUgZG9tYWluLCBjYWxscyBwcmVhZCBhbmQgaXQgZ2V0 cyBzaWxlbnRseSBtb3ZlZCB0byB0aGUgR1RUIGRvbWFpbj8KCj4gKwl9Cj4gKwo+ICtvdXRfdW5w aW46Cj4gKwlpZiAobm9kZS5hbGxvY2F0ZWQpIHsKPiArCQl3bWIoKTsKPiArCQlkZXZfcHJpdi0+ Z3R0LmJhc2UuY2xlYXJfcmFuZ2UoJmRldl9wcml2LT5ndHQuYmFzZSwKPiArCQkJCQkgICAgICAg bm9kZS5zdGFydCwgbm9kZS5zaXplLAo+ICsJCQkJCSAgICAgICB0cnVlKTsKPiArCQlpOTE1X2dl bV9vYmplY3RfdW5waW5fcGFnZXMob2JqKTsKPiArCQlyZW1vdmVfbWFwcGFibGVfbm9kZSgmbm9k ZSk7Cj4gKwl9IGVsc2Ugewo+ICsJCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKG9iaik7Cj4g Kwl9Cj4gK291dDoKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gICBzdGF0aWMgaW50Cj4gICBp OTE1X2dlbV9zaG1lbV9wcmVhZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCQkgICAgIHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCj4gQEAgLTY2MSw2ICs3OTksOSBAQCBpOTE1 X2dlbV9zaG1lbV9wcmVhZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCWludCBuZWVkc19j bGZsdXNoID0gMDsKPiAgIAlzdHJ1Y3Qgc2dfcGFnZV9pdGVyIHNnX2l0ZXI7Cj4KPiArCWlmICgh b2JqLT5iYXNlLmZpbHApCj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4gKwo+ICAgCXVzZXJfZGF0YSA9 IHRvX3VzZXJfcHRyKGFyZ3MtPmRhdGFfcHRyKTsKPiAgIAlyZW1haW4gPSBhcmdzLT5zaXplOwo+ Cj4gQEAgLTc2OSwxOCArOTEwLDE1IEBAIGk5MTVfZ2VtX3ByZWFkX2lvY3RsKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICAJCWdvdG8gb3V0Owo+ICAgCX0KPgo+IC0JLyog cHJpbWUgb2JqZWN0cyBoYXZlIG5vIGJhY2tpbmcgZmlscCB0byBHRU0gcHJlYWQvcHdyaXRlCj4g LQkgKiBwYWdlcyBmcm9tLgo+IC0JICovCj4gLQlpZiAoIW9iai0+YmFzZS5maWxwKSB7Cj4gLQkJ cmV0ID0gLUVJTlZBTDsKPiAtCQlnb3RvIG91dDsKPiAtCX0KPiAtCj4gICAJdHJhY2VfaTkxNV9n ZW1fb2JqZWN0X3ByZWFkKG9iaiwgYXJncy0+b2Zmc2V0LCBhcmdzLT5zaXplKTsKPgo+ICAgCXJl dCA9IGk5MTVfZ2VtX3NobWVtX3ByZWFkKGRldiwgb2JqLCBhcmdzLCBmaWxlKTsKPgo+ICsJLyog cHJlYWQgZm9yIG5vbiBzaG1lbSBiYWNrZWQgb2JqZWN0cyAqLwo+ICsJaWYgKHJldCA9PSAtRUZB VUxUIHx8IHJldCA9PSAtRU5PREVWKQo+ICsJCXJldCA9IGk5MTVfZ2VtX2d0dF9wcmVhZChkZXYs IG9iaiwgYXJncy0+c2l6ZSwKPiArCQkJCQlhcmdzLT5vZmZzZXQsIGFyZ3MtPmRhdGFfcHRyKTsK PiArCj4gICBvdXQ6Cj4gICAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJm9iai0+YmFzZSk7 Cj4gICB1bmxvY2s6Cj4gQEAgLTgyMSwxMCArOTU5LDE1IEBAIGk5MTVfZ2VtX2d0dF9wd3JpdGVf ZmFzdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAgIAkJCSBzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX3B3cml0ZSAqYXJncywKPiAgIAkJCSBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCj4gICB7 Cj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb2JqLT5iYXNlLmRldjsKPiAgIAlzdHJ1Y3Qg ZHJtX21tX25vZGUgbm9kZTsKPiAgIAl1aW50NjRfdCByZW1haW4sIG9mZnNldDsKPiAgIAljaGFy IF9fdXNlciAqdXNlcl9kYXRhOwo+ICAgCWludCByZXQ7Cj4gKwlib29sIGhpdF9zbG93X3BhdGgg PSBmYWxzZTsKPiArCj4gKwlpZiAob2JqLT50aWxpbmdfbW9kZSAhPSBJOTE1X1RJTElOR19OT05F KQo+ICsJCXJldHVybiAtRUZBVUxUOwo+Cj4gICAJcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGlu KG9iaiwgMCwgUElOX01BUFBBQkxFIHwgUElOX05PTkJMT0NLKTsKPiAgIAlpZiAocmV0KSB7Cj4g QEAgLTg0MiwxNiArOTg1LDE1IEBAIGk5MTVfZ2VtX2d0dF9wd3JpdGVfZmFzdChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAgIAl9IGVsc2Ugewo+ICAgCQlub2RlLnN0YXJ0ID0gaTkx NV9nZW1fb2JqX2dndHRfb2Zmc2V0KG9iaik7Cj4gICAJCW5vZGUuYWxsb2NhdGVkID0gZmFsc2U7 Cj4gKwkJcmV0ID0gaTkxNV9nZW1fb2JqZWN0X3B1dF9mZW5jZShvYmopOwo+ICsJCWlmIChyZXQp Cj4gKwkJCWdvdG8gb3V0X3VucGluOwo+ICAgCX0KPgo+ICAgCXJldCA9IGk5MTVfZ2VtX29iamVj dF9zZXRfdG9fZ3R0X2RvbWFpbihvYmosIHRydWUpOwo+ICAgCWlmIChyZXQpCj4gICAJCWdvdG8g b3V0X3VucGluOwo+Cj4gLQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfcHV0X2ZlbmNlKG9iaik7Cj4g LQlpZiAocmV0KQo+IC0JCWdvdG8gb3V0X3VucGluOwo+IC0KPiAgIAlpbnRlbF9mYl9vYmpfaW52 YWxpZGF0ZShvYmosIE9SSUdJTl9HVFQpOwo+ICAgCW9iai0+ZGlydHkgPSB0cnVlOwo+Cj4gQEAg LTg3MCwyNCArMTAxMiwzNiBAQCBpOTE1X2dlbV9ndHRfcHdyaXRlX2Zhc3Qoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmk5MTUsCj4gICAJCXVuc2lnbmVkIHBhZ2VfbGVuZ3RoID0gUEFHRV9TSVpF IC0gcGFnZV9vZmZzZXQ7Cj4gICAJCXBhZ2VfbGVuZ3RoID0gcmVtYWluIDwgcGFnZV9sZW5ndGgg PyByZW1haW4gOiBwYWdlX2xlbmd0aDsKPiAgIAkJaWYgKG5vZGUuYWxsb2NhdGVkKSB7Cj4gLQkJ CXdtYigpOwo+ICsJCQl3bWIoKTsgLyogZmx1c2ggdGhlIHdyaXRlIGJlZm9yZSB3ZSBtb2RpZnkg dGhlIEdHVFQgKi8KPiAgIAkJCWk5MTUtPmd0dC5iYXNlLmluc2VydF9wYWdlKCZpOTE1LT5ndHQu YmFzZSwKPiAgIAkJCQkJCSAgIGk5MTVfZ2VtX29iamVjdF9nZXRfZG1hX2FkZHJlc3Mob2JqLCBv ZmZzZXQgPj4gUEFHRV9TSElGVCksCj4gICAJCQkJCQkgICBub2RlLnN0YXJ0LAo+ICAgCQkJCQkJ ICAgSTkxNV9DQUNIRV9OT05FLAo+ICAgCQkJCQkJICAgMCk7Cj4gLQkJCXdtYigpOwo+ICsJCQl3 bWIoKTsgLyogZmx1c2ggbW9kaWZpY2F0aW9ucyB0byB0aGUgR0dUVCAoaW5zZXJ0X3BhZ2UpICov Cj4gICAJCX0gZWxzZSB7Cj4gICAJCQlwYWdlX2Jhc2UgKz0gb2Zmc2V0ICYgUEFHRV9NQVNLOwo+ ICAgCQl9Cj4gICAJCS8qIElmIHdlIGdldCBhIGZhdWx0IHdoaWxlIGNvcHlpbmcgZGF0YSwgdGhl biAocHJlc3VtYWJseSkgb3VyCj4gICAJCSAqIHNvdXJjZSBwYWdlIGlzbid0IGF2YWlsYWJsZS4g IFJldHVybiB0aGUgZXJyb3IgYW5kIHdlJ2xsCj4gICAJCSAqIHJldHJ5IGluIHRoZSBzbG93IHBh dGguCj4gKwkJICogSWYgdGhlIG9iamVjdCBpcyBub24tc2htZW0gYmFja2VkLCB3ZSByZXRyeSBh Z2FpbiB3aXRoIHRoZQo+ICsJCSAqIHBhdGggdGhhdCBoYW5kbGVzIHBhZ2UgZmF1bHQuCj4gICAJ CSAqLwo+ICAgCQlpZiAoZmFzdF91c2VyX3dyaXRlKGk5MTUtPmd0dC5tYXBwYWJsZSwgcGFnZV9i YXNlLAo+ICAgCQkJCSAgICBwYWdlX29mZnNldCwgdXNlcl9kYXRhLCBwYWdlX2xlbmd0aCkpIHsK PiAtCQkJcmV0ID0gLUVGQVVMVDsKPiAtCQkJZ290byBvdXRfZmx1c2g7Cj4gKwkJCWhpdF9zbG93 X3BhdGggPSB0cnVlOwo+ICsJCQltdXRleF91bmxvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiAr CQkJaWYgKHNsb3dfdXNlcl9hY2Nlc3MoaTkxNS0+Z3R0Lm1hcHBhYmxlLAo+ICsJCQkJCSAgICAg cGFnZV9iYXNlLAo+ICsJCQkJCSAgICAgcGFnZV9vZmZzZXQsIHVzZXJfZGF0YSwKPiArCQkJCQkg ICAgIHBhZ2VfbGVuZ3RoLCB0cnVlKSkgewo+ICsJCQkJcmV0ID0gLUVGQVVMVDsKPiArCQkJCW11 dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsKPiArCQkJCWdvdG8gb3V0X2ZsdXNoOwo+ICsJ CQl9CgpJIHRoaW5rIHRoZSBmdW5jdGlvbiBub3cgYmUgY2FsbGVkIGk5MTVfZ2VtX2d0dF9wd3Jp dGUuCgpXb3VsZCBpdCBhbHNvIG5lZWQgdGhlIHNhbWUgcHJlLWZhdWx0IGFzIGluIGk5MTVfZ2Vt X2d0dF9wcmVhZCA/Cgo+ICsKPiArCQkJbXV0ZXhfbG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ ICAgCQl9Cj4KPiAgIAkJcmVtYWluIC09IHBhZ2VfbGVuZ3RoOwo+IEBAIC04OTYsNiArMTA1MCw5 IEBAIGk5MTVfZ2VtX2d0dF9wd3JpdGVfZmFzdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkx NSwKPiAgIAl9Cj4KPiAgIG91dF9mbHVzaDoKPiArCWlmIChoaXRfc2xvd19wYXRoKQo+ICsJCVdB Uk5fT04oaTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKG9iaiwgdHJ1ZSkpOwoKSSBz dXBwb3NlIHRoaXMgaXMgZm9yIHRoZSBzYW1lIHJlYXNvbiBhcyBpbiBwcmVhZCwgbWF5YmUgZHVw bGljYXRlIHRoZSAKY29tbWVudCBoZXJlPwoKPiArCj4gICAJaW50ZWxfZmJfb2JqX2ZsdXNoKG9i aiwgZmFsc2UsIE9SSUdJTl9HVFQpOwo+ICAgb3V0X3VucGluOgo+ICAgCWlmIChub2RlLmFsbG9j YXRlZCkgewo+IEBAIC0xMTUyLDE0ICsxMzA5LDYgQEAgaTkxNV9nZW1fcHdyaXRlX2lvY3RsKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gICAJCWdvdG8gb3V0Owo+ICAgCX0K Pgo+IC0JLyogcHJpbWUgb2JqZWN0cyBoYXZlIG5vIGJhY2tpbmcgZmlscCB0byBHRU0gcHJlYWQv cHdyaXRlCj4gLQkgKiBwYWdlcyBmcm9tLgo+IC0JICovCj4gLQlpZiAoIW9iai0+YmFzZS5maWxw KSB7Cj4gLQkJcmV0ID0gLUVJTlZBTDsKPiAtCQlnb3RvIG91dDsKPiAtCX0KPiAtCj4gICAJdHJh Y2VfaTkxNV9nZW1fb2JqZWN0X3B3cml0ZShvYmosIGFyZ3MtPm9mZnNldCwgYXJncy0+c2l6ZSk7 Cj4KPiAgIAlyZXQgPSAtRUZBVUxUOwo+IEBAIC0xMTY5LDIwICsxMzE4LDIwIEBAIGk5MTVfZ2Vt X3B3cml0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAgCSAq IHByZWFkL3B3cml0ZSBjdXJyZW50bHkgYXJlIHJlYWRpbmcgYW5kIHdyaXRpbmcgZnJvbSB0aGUg Q1BVCj4gICAJICogcGVyc3BlY3RpdmUsIHJlcXVpcmluZyBtYW51YWwgZGV0aWxpbmcgYnkgdGhl IGNsaWVudC4KPiAgIAkgKi8KPiAtCWlmIChvYmotPnRpbGluZ19tb2RlID09IEk5MTVfVElMSU5H X05PTkUgJiYKPiAtCSAgICBvYmotPmJhc2Uud3JpdGVfZG9tYWluICE9IEk5MTVfR0VNX0RPTUFJ Tl9DUFUgJiYKPiAtCSAgICBjcHVfd3JpdGVfbmVlZHNfY2xmbHVzaChvYmopKSB7Cj4gKwlpZiAo IW9iai0+YmFzZS5maWxwIHx8IGNwdV93cml0ZV9uZWVkc19jbGZsdXNoKG9iaikpIHsKPiAgIAkJ cmV0ID0gaTkxNV9nZW1fZ3R0X3B3cml0ZV9mYXN0KGRldl9wcml2LCBvYmosIGFyZ3MsIGZpbGUp Owo+ICAgCQkvKiBOb3RlIHRoYXQgdGhlIGd0dCBwYXRocyBtaWdodCBmYWlsIHdpdGggbm9uLXBh Z2UtYmFja2VkIHVzZXIKPiAgIAkJICogcG9pbnRlcnMgKGUuZy4gZ3R0IG1hcHBpbmdzIHdoZW4g bW92aW5nIGRhdGEgYmV0d2Vlbgo+ICAgCQkgKiB0ZXh0dXJlcykuIEZhbGxiYWNrIHRvIHRoZSBz aG1lbSBwYXRoIGluIHRoYXQgY2FzZS4gKi8KPiAgIAl9Cj4KPiAtCWlmIChyZXQgPT0gLUVGQVVM VCB8fCByZXQgPT0gLUVOT1NQQykgewo+ICsJaWYgKHJldCA9PSAtRUZBVUxUKSB7Cj4gICAJCWlm IChvYmotPnBoeXNfaGFuZGxlKQo+ICAgCQkJcmV0ID0gaTkxNV9nZW1fcGh5c19wd3JpdGUob2Jq LCBhcmdzLCBmaWxlKTsKPiAtCQllbHNlCj4gKwkJZWxzZSBpZiAob2JqLT5iYXNlLmZpbHApCj4g ICAJCQlyZXQgPSBpOTE1X2dlbV9zaG1lbV9wd3JpdGUoZGV2LCBvYmosIGFyZ3MsIGZpbGUpOwo+ ICsJCWVsc2UKPiArCQkJcmV0ID0gLUVOT0RFVjsKPiAgIAl9Cj4KPiAgIG91dDoKPiBAQCAtMzk3 OSw5ICs0MTI4LDcgQEAgb3V0Ogo+ICAgCSAqIG9iamVjdCBpcyBub3cgY29oZXJlbnQgYXQgaXRz IG5ldyBjYWNoZSBsZXZlbCAod2l0aCByZXNwZWN0Cj4gICAJICogdG8gdGhlIGFjY2VzcyBkb21h aW4pLgo+ICAgCSAqLwo+IC0JaWYgKG9iai0+Y2FjaGVfZGlydHkgJiYKPiAtCSAgICBvYmotPmJh c2Uud3JpdGVfZG9tYWluICE9IEk5MTVfR0VNX0RPTUFJTl9DUFUgJiYKPiAtCSAgICBjcHVfd3Jp dGVfbmVlZHNfY2xmbHVzaChvYmopKSB7Cj4gKwlpZiAob2JqLT5jYWNoZV9kaXJ0eSAmJiBjcHVf d3JpdGVfbmVlZHNfY2xmbHVzaChvYmopKSB7Cj4gICAJCWlmIChpOTE1X2dlbV9jbGZsdXNoX29i amVjdChvYmosIHRydWUpKQo+ICAgCQkJaTkxNV9nZW1fY2hpcHNldF9mbHVzaChvYmotPmJhc2Uu ZGV2KTsKPiAgIAl9Cj4KClJlZ2FyZHMsCgpUdnJ0a28KCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=