From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 5/6] drm/i915: Support for pread/pwrite from/to non shmem backed objects Date: Wed, 9 Dec 2015 16:15:17 +0000 Message-ID: <56685395.8040806@linux.intel.com> References: <1449665182-10054-1-git-send-email-ankitprasad.r.sharma@intel.com> <1449665182-10054-6-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 mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 3BAA16E938 for ; Wed, 9 Dec 2015 08:15:46 -0800 (PST) In-Reply-To: <1449665182-10054-6-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 CkhpLAoKT24gMDkvMTIvMTUgMTI6NDYsIGFua2l0cHJhc2FkLnIuc2hhcm1hQGludGVsLmNvbSB3 cm90ZToKPiBGcm9tOiBBbmtpdHByYXNhZCBTaGFybWEgPGFua2l0cHJhc2FkLnIuc2hhcm1hQGlu dGVsLmNvbT4KPgo+IFRoaXMgcGF0Y2ggYWRkcyBzdXBwb3J0IGZvciBleHRlbmRpbmcgdGhlIHBy ZWFkL3B3cml0ZSBmdW5jdGlvbmFsaXR5Cj4gZm9yIG9iamVjdHMgbm90IGJhY2tlZCBieSBzaG1l bS4gVGhlIGFjY2VzcyB3aWxsIGJlIG1hZGUgdGhyb3VnaAo+IGd0dCBpbnRlcmZhY2UuIFRoaXMg d2lsbCBjb3ZlciBvYmplY3RzIGJhY2tlZCBieSBzdG9sZW4gbWVtb3J5IGFzIHdlbGwKPiBhcyBv dGhlciBub24tc2htZW0gYmFja2VkIG9iamVjdHMuCj4KPiB2MjogRHJvcCBsb2NrcyBhcm91bmQg c2xvd191c2VyX2FjY2VzcywgcHJlZmF1bHQgdGhlIHBhZ2VzIGJlZm9yZQo+IGFjY2VzcyAoQ2hy aXMpCj4KPiB2MzogUmViYXNlZCB0byB0aGUgbGF0ZXN0IGRybS1pbnRlbC1uaWdodGx5IChBbmtp dCkKPgo+IHY0OiBNb3ZlZCBwYWdlIGJhc2UgJiBvZmZzZXQgY2FsY3VsYXRpb25zIG91dHNpZGUg dGhlIGNvcHkgbG9vcCwKPiBjb3JyZWN0ZWQgZGF0YSB0eXBlcyBmb3Igc2l6ZSBhbmQgb2Zmc2V0 IHZhcmlhYmxlcywgY29ycmVjdGVkIGlmLWVsc2UKPiBicmFjZXMgZm9ybWF0IChUdnJ0a28va2Vy bmVsZG9jcykKPgo+IHY1OiBFbmFibGVkIHByZWFkL3B3cml0ZSBmb3IgYWxsIG5vbi1zaG1lbSBi YWNrZWQgb2JqZWN0cyBpbmNsdWRpbmcKPiB3aXRob3V0IHRpbGluZyByZXN0cmljdGlvbnMgKEFu a2l0KQo+Cj4gdjY6IFVzaW5nIHB3cml0ZV9mYXN0IGZvciBub24tc2htZW0gYmFja2VkIG9iamVj dHMgYXMgd2VsbCAoQ2hyaXMpCj4KPiB2NzogVXBkYXRlZCBjb21taXQgbWVzc2FnZSwgUmVuYW1l ZCBpOTE1X2dlbV9ndHRfcmVhZCB0byBpOTE1X2dlbV9ndHRfY29weSwKPiBhZGRlZCBwd3JpdGUg c2xvdyBwYXRoIGZvciBub24tc2htZW0gYmFja2VkIG9iamVjdHMgKENocmlzL1R2cnRrbykKPgo+ IHY4OiBVcGRhdGVkIHY3IGNvbW1pdCBtZXNzYWdlLCBtdXRleCB1bmxvY2sgYXJvdW5kIHB3cml0 ZSBzbG93IHBhdGggZm9yCj4gbm9uLXNobWVtIGJhY2tlZCBvYmplY3RzIChUdnJ0a28pCj4KPiBU ZXN0Y2FzZTogaWd0L2dlbV9zdG9sZW4KPgo+IFNpZ25lZC1vZmYtYnk6IEFua2l0cHJhc2FkIFNo YXJtYSA8YW5raXRwcmFzYWQuci5zaGFybWFAaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9nZW0uYyB8IDE1MSArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystLS0tLS0tCj4gICAxIGZpbGUgY2hhbmdlZCwgMTI3IGluc2VydGlvbnMoKyksIDI0IGRl bGV0aW9ucygtKQo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2Vt LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gaW5kZXggZWQ5N2RlNi4uNjhl ZDY3YSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW0uYwo+IEBAIC02MTQsNiArNjE0LDk5IEBA IHNobWVtX3ByZWFkX3Nsb3coc3RydWN0IHBhZ2UgKnBhZ2UsIGludCBzaG1lbV9wYWdlX29mZnNl dCwgaW50IHBhZ2VfbGVuZ3RoLAo+ICAgCXJldHVybiByZXQgPyAtIEVGQVVMVCA6IDA7Cj4gICB9 Cj4KPiArc3RhdGljIGlubGluZSB1aW50NjRfdAo+ICtzbG93X3VzZXJfYWNjZXNzKHN0cnVjdCBp b19tYXBwaW5nICptYXBwaW5nLAo+ICsJCSB1aW50NjRfdCBwYWdlX2Jhc2UsIGludCBwYWdlX29m ZnNldCwKPiArCQkgY2hhciBfX3VzZXIgKnVzZXJfZGF0YSwKPiArCQkgaW50IGxlbmd0aCwgYm9v bCBwd3JpdGUpCj4gK3sKPiArCXZvaWQgX19pb21lbSAqdmFkZHJfaW5hdG9taWM7Cj4gKwl2b2lk ICp2YWRkcjsKPiArCXVpbnQ2NF90IHVud3JpdHRlbjsKPiArCj4gKwl2YWRkcl9pbmF0b21pYyA9 IGlvX21hcHBpbmdfbWFwX3djKG1hcHBpbmcsIHBhZ2VfYmFzZSk7Cj4gKwkvKiBXZSBjYW4gdXNl IHRoZSBjcHUgbWVtIGNvcHkgZnVuY3Rpb24gYmVjYXVzZSB0aGlzIGlzIFg4Ni4gKi8KPiArCXZh ZGRyID0gKHZvaWQgX19mb3JjZSAqKXZhZGRyX2luYXRvbWljICsgcGFnZV9vZmZzZXQ7Cj4gKwlp ZiAocHdyaXRlKQo+ICsJCXVud3JpdHRlbiA9IF9fY29weV9mcm9tX3VzZXIodmFkZHIsIHVzZXJf ZGF0YSwgbGVuZ3RoKTsKPiArCWVsc2UKPiArCQl1bndyaXR0ZW4gPSBfX2NvcHlfdG9fdXNlcih1 c2VyX2RhdGEsIHZhZGRyLCBsZW5ndGgpOwo+ICsKPiArCWlvX21hcHBpbmdfdW5tYXAodmFkZHJf aW5hdG9taWMpOwo+ICsJcmV0dXJuIHVud3JpdHRlbjsKPiArfQo+ICsKPiArc3RhdGljIGludAo+ ICtpOTE1X2dlbV9ndHRfY29weShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICsJCSAgIHN0cnVj dCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIHVpbnQ2NF90IHNpemUsCj4gKwkJICAgdWludDY0 X3QgZGF0YV9vZmZzZXQsIHVpbnQ2NF90IGRhdGFfcHRyKQo+ICt7Cj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJY2hhciBfX3VzZXIg KnVzZXJfZGF0YTsKPiArCXVpbnQ2NF90IHJlbWFpbjsKPiArCXVpbnQ2NF90IG9mZnNldCwgcGFn ZV9iYXNlOwo+ICsJaW50IHBhZ2Vfb2Zmc2V0LCBwYWdlX2xlbmd0aCwgcmV0ID0gMDsKPiArCj4g KwlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4ob2JqLCAwLCBQSU5fTUFQUEFCTEUpOwo+ICsJ aWYgKHJldCkKPiArCQlnb3RvIG91dDsKPiArCj4gKwlyZXQgPSBpOTE1X2dlbV9vYmplY3Rfc2V0 X3RvX2d0dF9kb21haW4ob2JqLCBmYWxzZSk7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gb3V0X3Vu cGluOwo+ICsKPiArCXJldCA9IGk5MTVfZ2VtX29iamVjdF9wdXRfZmVuY2Uob2JqKTsKPiArCWlm IChyZXQpCj4gKwkJZ290byBvdXRfdW5waW47Cj4gKwo+ICsJdXNlcl9kYXRhID0gdG9fdXNlcl9w dHIoZGF0YV9wdHIpOwo+ICsJcmVtYWluID0gc2l6ZTsKPiArCW9mZnNldCA9IGk5MTVfZ2VtX29i al9nZ3R0X29mZnNldChvYmopICsgZGF0YV9vZmZzZXQ7Cj4gKwo+ICsJbXV0ZXhfdW5sb2NrKCZk ZXYtPnN0cnVjdF9tdXRleCk7Cj4gKwlpZiAobGlrZWx5KCFpOTE1LnByZWZhdWx0X2Rpc2FibGUp KQo+ICsJCXJldCA9IGZhdWx0X2luX211bHRpcGFnZXNfd3JpdGVhYmxlKHVzZXJfZGF0YSwgcmVt YWluKTsKPiArCj4gKwkvKgo+ICsJICogcGFnZV9vZmZzZXQgPSBvZmZzZXQgd2l0aGluIHBhZ2UK PiArCSAqIHBhZ2VfYmFzZSA9IHBhZ2Ugb2Zmc2V0IHdpdGhpbiBhcGVydHVyZQo+ICsJICovCj4g KwlwYWdlX29mZnNldCA9IG9mZnNldF9pbl9wYWdlKG9mZnNldCk7Cj4gKwlwYWdlX2Jhc2UgPSBv ZmZzZXQgJiBQQUdFX01BU0s7Cj4gKwo+ICsJd2hpbGUgKHJlbWFpbiA+IDApIHsKPiArCQkvKiBw YWdlX2xlbmd0aCA9IGJ5dGVzIHRvIGNvcHkgZm9yIHRoaXMgcGFnZSAqLwo+ICsJCXBhZ2VfbGVu Z3RoID0gcmVtYWluOwo+ICsJCWlmICgocGFnZV9vZmZzZXQgKyByZW1haW4pID4gUEFHRV9TSVpF KQo+ICsJCQlwYWdlX2xlbmd0aCA9IFBBR0VfU0laRSAtIHBhZ2Vfb2Zmc2V0Owo+ICsKPiArCQkv KiBUaGlzIGlzIGEgc2xvdyByZWFkL3dyaXRlIGFzIGl0IHRyaWVzIHRvIHJlYWQgZnJvbQo+ICsJ CSAqIGFuZCB3cml0ZSB0byB1c2VyIG1lbW9yeSB3aGljaCBtYXkgcmVzdWx0IGludG8gcGFnZQo+ ICsJCSAqIGZhdWx0cwo+ICsJCSAqLwo+ICsJCXJldCA9IHNsb3dfdXNlcl9hY2Nlc3MoZGV2X3By aXYtPmd0dC5tYXBwYWJsZSwgcGFnZV9iYXNlLAo+ICsJCQkJICAgICAgIHBhZ2Vfb2Zmc2V0LCB1 c2VyX2RhdGEsCj4gKwkJCQkgICAgICAgcGFnZV9sZW5ndGgsIGZhbHNlKTsKPiArCj4gKwkJaWYg KHJldCkgewo+ICsJCQlyZXQgPSAtRUZBVUxUOwo+ICsJCQlicmVhazsKPiArCQl9Cj4gKwo+ICsJ CXJlbWFpbiAtPSBwYWdlX2xlbmd0aDsKPiArCQl1c2VyX2RhdGEgKz0gcGFnZV9sZW5ndGg7Cj4g KwkJcGFnZV9iYXNlICs9IHBhZ2VfbGVuZ3RoOwo+ICsJCXBhZ2Vfb2Zmc2V0ID0gMDsKPiArCX0K PiArCj4gKwltdXRleF9sb2NrKCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gKwo+ICtvdXRfdW5waW46 Cj4gKwlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihvYmopOwo+ICtvdXQ6Cj4gKwlyZXR1cm4g cmV0Owo+ICt9Cj4gKwo+ICAgc3RhdGljIGludAo+ICAgaTkxNV9nZW1fc2htZW1fcHJlYWQoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAkJICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqLAo+IEBAIC03MzcsMTcgKzgzMCwxNCBAQCBpOTE1X2dlbV9wcmVhZF9pb2N0bChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAgCQlnb3RvIG91dDsKPiAgIAl9Cj4K PiAtCS8qIHByaW1lIG9iamVjdHMgaGF2ZSBubyBiYWNraW5nIGZpbHAgdG8gR0VNIHByZWFkL3B3 cml0ZQo+IC0JICogcGFnZXMgZnJvbS4KPiAtCSAqLwo+IC0JaWYgKCFvYmotPmJhc2UuZmlscCkg ewo+IC0JCXJldCA9IC1FSU5WQUw7Cj4gLQkJZ290byBvdXQ7Cj4gLQl9Cj4gLQo+ICAgCXRyYWNl X2k5MTVfZ2VtX29iamVjdF9wcmVhZChvYmosIGFyZ3MtPm9mZnNldCwgYXJncy0+c2l6ZSk7Cj4K PiAtCXJldCA9IGk5MTVfZ2VtX3NobWVtX3ByZWFkKGRldiwgb2JqLCBhcmdzLCBmaWxlKTsKPiAr CS8qIHByZWFkIGZvciBub24gc2htZW0gYmFja2VkIG9iamVjdHMgKi8KPiArCWlmICghb2JqLT5i YXNlLmZpbHAgJiYgb2JqLT50aWxpbmdfbW9kZSA9PSBJOTE1X1RJTElOR19OT05FKQo+ICsJCXJl dCA9IGk5MTVfZ2VtX2d0dF9jb3B5KGRldiwgb2JqLCBhcmdzLT5zaXplLAo+ICsJCQkJCWFyZ3Mt Pm9mZnNldCwgYXJncy0+ZGF0YV9wdHIpOwo+ICsJZWxzZQo+ICsJCXJldCA9IGk5MTVfZ2VtX3No bWVtX3ByZWFkKGRldiwgb2JqLCBhcmdzLCBmaWxlKTsKCkhtLCBpdCB3aWxsIGVuZCB1cCBjYWxs aW5nIGk5MTVfZ2VtX3NobWVtX3ByZWFkIGZvciBub24tc2htZW0gYmFja2VkIApvYmplY3RzIGlm IHRpbGluZyBpcyBzZXQuIFNvdW5kcyB3cm9uZyB0byBtZSB1bmxlc3MgSSBhbSBtaXNzaW5nIHNv bWV0aGluZz8KCj4KPiAgIG91dDoKPiAgIAlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgmb2Jq LT5iYXNlKTsKPiBAQCAtNzg5LDEwICs4NzksMTIgQEAgaTkxNV9nZW1fZ3R0X3B3cml0ZV9mYXN0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAo+ICAgCQkJIHN0cnVjdCBkcm1faTkxNV9n ZW1fcHdyaXRlICphcmdzLAo+ICAgCQkJIHN0cnVjdCBkcm1fZmlsZSAqZmlsZSkKPiAgIHsKPiAr CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvYmotPmJhc2UuZGV2Owo+ICAgCXN0cnVjdCBkcm1f bW1fbm9kZSBub2RlOwo+ICAgCXVpbnQ2NF90IHJlbWFpbiwgb2Zmc2V0Owo+ICAgCWNoYXIgX191 c2VyICp1c2VyX2RhdGE7Cj4gICAJaW50IHJldDsKPiArCWJvb2wgZmF1bHRlZCA9IGZhbHNlOwo+ Cj4gICAJcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRfcGluKG9iaiwgMCwgUElOX01BUFBBQkxFIHwg UElOX05PTkJMT0NLKTsKPiAgIAlpZiAocmV0KSB7Cj4gQEAgLTg1MSwxMSArOTQzLDI5IEBAIGk5 MTVfZ2VtX2d0dF9wd3JpdGVfZmFzdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKPiAg IAkJLyogSWYgd2UgZ2V0IGEgZmF1bHQgd2hpbGUgY29weWluZyBkYXRhLCB0aGVuIChwcmVzdW1h Ymx5KSBvdXIKPiAgIAkJICogc291cmNlIHBhZ2UgaXNuJ3QgYXZhaWxhYmxlLiAgUmV0dXJuIHRo ZSBlcnJvciBhbmQgd2UnbGwKPiAgIAkJICogcmV0cnkgaW4gdGhlIHNsb3cgcGF0aC4KPiArCQkg KiBJZiB0aGUgb2JqZWN0IGlzIG5vbi1zaG1lbSBiYWNrZWQsIHdlIHJldHJ5IGFnYWluIHdpdGgg dGhlCj4gKwkJICogcGF0aCB0aGF0IGhhbmRsZXMgcGFnZSBmYXVsdC4KPiAgIAkJICovCj4gLQkJ aWYgKGZhc3RfdXNlcl93cml0ZShpOTE1LT5ndHQubWFwcGFibGUsIHBhZ2VfYmFzZSwKPiAtCQkJ CSAgICBwYWdlX29mZnNldCwgdXNlcl9kYXRhLCBwYWdlX2xlbmd0aCkpIHsKPiAtCQkJcmV0ID0g LUVGQVVMVDsKPiAtCQkJZ290byBvdXRfZmx1c2g7Cj4gKwkJaWYgKGZhdWx0ZWQgfHwgZmFzdF91 c2VyX3dyaXRlKGk5MTUtPmd0dC5tYXBwYWJsZSwKPiArCQkJCQkJcGFnZV9iYXNlLCBwYWdlX29m ZnNldCwKPiArCQkJCQkJdXNlcl9kYXRhLCBwYWdlX2xlbmd0aCkpIHsKPiArCQkJaWYgKCFvYmot PmJhc2UuZmlscCkgewo+ICsJCQkJZmF1bHRlZCA9IHRydWU7Cj4gKwkJCQltdXRleF91bmxvY2so JmRldi0+c3RydWN0X211dGV4KTsKPiArCQkJCWlmIChzbG93X3VzZXJfYWNjZXNzKGk5MTUtPmd0 dC5tYXBwYWJsZSwKPiArCQkJCQkJICAgICBwYWdlX2Jhc2UsCj4gKwkJCQkJCSAgICAgcGFnZV9v ZmZzZXQsIHVzZXJfZGF0YSwKPiArCQkJCQkJICAgICBwYWdlX2xlbmd0aCwgdHJ1ZSkpIHsKPiAr CQkJCQlyZXQgPSAtRUZBVUxUOwo+ICsJCQkJCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4 KTsKPiArCQkJCQlnb3RvIG91dF9mbHVzaDsKPiArCQkJCX0KPiArCj4gKwkJCQltdXRleF9sb2Nr KCZkZXYtPnN0cnVjdF9tdXRleCk7Cj4gKwkJCX0gZWxzZSB7Cj4gKwkJCQlyZXQgPSAtRUZBVUxU Owo+ICsJCQkJZ290byBvdXRfZmx1c2g7Cj4gKwkJCX0KPiAgIAkJfQoKU29tZSBxdWVzdGlvbnM6 CgoxLiBXaGF0IGlzIHRoZSBhZHZhbnRhZ2Ugb2YgZG9pbmcgdGhlIHNsb3cgYWNjZXNzIGZvciBu b24tc2htZW0gYmFja2VkIApvYmplY3RzIGluc2lkZSBhIHNpbmdsZSBsb29wLCBhcyBvcHBvc2Vk IHRvIGV4dHJhY3RpbmcgaXQgaW4gYSBzZXBhcmF0ZSAKZnVuY3Rpb24/CgpGb3IgZXhhbXBsZSBp OTE1X2dlbV9ndHRfcHdyaXRlX3Nsb3cgPyBUaGVuIGl0IGNvdWxkIGhhdmUgYmVlbiBjYWxsZWQg CmZyb20gaTkxNV9nZW1fcHdyaXRlX2lvY3RsIGRlcGVuZGluZyBvbiB0aGUgbWFzdGVyIGlmIHN0 YXRlbWVudCB0aGVyZSwgCmZhbGxiYWNrIGV0Yy4KCkkgdGhpbmsgaXQgd291bGQgYmUgY2xlYXJl ciB1bmxlc3MgdGhlcmUgaXMgYSBzcGVjaWFsIHJlYXNvbiBpdCBtYWtlcyAKc2Vuc2UgdG8gZ28g d2l0aCB0aGUgZmFzdCBwYXRoIGZpcnN0IGFuZCB0aGVuIHN3aXRjaCB0byBzbG93IHBhdGggYXQg dGhlIApwb2ludCBmaXJzdCBmYXVsdCBpcyBoaXQuCgoyLiBJIGhhdmUgbm90aWNlZCB0aGUgc2ht ZW0gcHdyaXRlIHNsb3dwYXRoIG1ha2VzIGV4cGxpY2l0IG1lbnRpb24gb2YgCnBvdGVudGlhbCBj aGFuZ2VzIHRvIHRoZSBvYmplY3QgZG9tYWluIHdoaWxlIHRoZSBsb2NrIHdhcyBkcm9wcGVkIGFu ZCAKdGFrZXMgY2FyZSBvZiBmbHVzaGluZyB0aGUgY2FjaGUgaW4gdGhhdCBjYXNlLgoKSXMgdGhp cyBzb21ldGhpbmcgdGhpcyBwYXRoIHNob3VsZCBkbyBhcyB3ZWxsLCBvciBpZiBub3Qgd2h5IG5v dD8KCgo+ICAgCQlyZW1haW4gLT0gcGFnZV9sZW5ndGg7Cj4gQEAgLTExMjEsMTQgKzEyMzEsNiBA QCBpOTE1X2dlbV9wd3JpdGVfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0 YSwKPiAgIAkJZ290byBvdXQ7Cj4gICAJfQo+Cj4gLQkvKiBwcmltZSBvYmplY3RzIGhhdmUgbm8g YmFja2luZyBmaWxwIHRvIEdFTSBwcmVhZC9wd3JpdGUKPiAtCSAqIHBhZ2VzIGZyb20uCj4gLQkg Ki8KPiAtCWlmICghb2JqLT5iYXNlLmZpbHApIHsKPiAtCQlyZXQgPSAtRUlOVkFMOwo+IC0JCWdv dG8gb3V0Owo+IC0JfQo+IC0KPiAgIAl0cmFjZV9pOTE1X2dlbV9vYmplY3RfcHdyaXRlKG9iaiwg YXJncy0+b2Zmc2V0LCBhcmdzLT5zaXplKTsKPgo+ICAgCXJldCA9IC1FRkFVTFQ7Cj4gQEAgLTEx MzksOCArMTI0MSw5IEBAIGk5MTVfZ2VtX3B3cml0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB2b2lkICpkYXRhLAo+ICAgCSAqIHBlcnNwZWN0aXZlLCByZXF1aXJpbmcgbWFudWFsIGRl dGlsaW5nIGJ5IHRoZSBjbGllbnQuCj4gICAJICovCj4gICAJaWYgKG9iai0+dGlsaW5nX21vZGUg PT0gSTkxNV9USUxJTkdfTk9ORSAmJgo+IC0JICAgIG9iai0+YmFzZS53cml0ZV9kb21haW4gIT0g STkxNV9HRU1fRE9NQUlOX0NQVSAmJgo+IC0JICAgIGNwdV93cml0ZV9uZWVkc19jbGZsdXNoKG9i aikpIHsKPiArCSAgICAoIW9iai0+YmFzZS5maWxwIHx8Cj4gKwkgICAgKG9iai0+YmFzZS53cml0 ZV9kb21haW4gIT0gSTkxNV9HRU1fRE9NQUlOX0NQVSAmJgo+ICsJICAgIGNwdV93cml0ZV9uZWVk c19jbGZsdXNoKG9iaikpKSkgewo+ICAgCQlyZXQgPSBpOTE1X2dlbV9ndHRfcHdyaXRlX2Zhc3Qo ZGV2X3ByaXYsIG9iaiwgYXJncywgZmlsZSk7Cj4gICAJCS8qIE5vdGUgdGhhdCB0aGUgZ3R0IHBh dGhzIG1pZ2h0IGZhaWwgd2l0aCBub24tcGFnZS1iYWNrZWQgdXNlcgo+ICAgCQkgKiBwb2ludGVy cyAoZS5nLiBndHQgbWFwcGluZ3Mgd2hlbiBtb3ZpbmcgZGF0YSBiZXR3ZWVuCj4gQEAgLTExNTAs NyArMTI1Myw3IEBAIGk5MTVfZ2VtX3B3cml0ZV9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 LCB2b2lkICpkYXRhLAo+ICAgCWlmIChyZXQgPT0gLUVGQVVMVCB8fCByZXQgPT0gLUVOT1NQQykg ewo+ICAgCQlpZiAob2JqLT5waHlzX2hhbmRsZSkKPiAgIAkJCXJldCA9IGk5MTVfZ2VtX3BoeXNf cHdyaXRlKG9iaiwgYXJncywgZmlsZSk7Cj4gLQkJZWxzZQo+ICsJCWVsc2UgaWYgKG9iai0+YmFz ZS5maWxwKQo+ICAgCQkJcmV0ID0gaTkxNV9nZW1fc2htZW1fcHdyaXRlKGRldiwgb2JqLCBhcmdz LCBmaWxlKTsKPiAgIAl9Cj4KPgoKUmVnYXJkcywKClR2cnRrbwoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK