From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michel Thierry Subject: Re: [PATCH 08/21] drm/i915/gtt: Introduce struct i915_page_dma Date: Mon, 22 Jun 2015 15:05:09 +0100 Message-ID: <55881615.8010601@intel.com> References: <556DA401.90801@intel.com> <1434044902-22560-1-git-send-email-mika.kuoppala@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 68A4C720B7 for ; Mon, 22 Jun 2015 07:05:11 -0700 (PDT) In-Reply-To: <1434044902-22560-1-git-send-email-mika.kuoppala@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Mika Kuoppala , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gNi8xMS8yMDE1IDY6NDggUE0sIE1pa2EgS3VvcHBhbGEgd3JvdGU6Cj4gQWxsIG91ciBwYWdp bmcgc3RydWN0dXJlcyBoYXZlIHN0cnVjdCBwYWdlIGFuZCBkbWEgYWRkcmVzcwo+IGZvciB0aGF0 IHBhZ2UuCj4KPiBBZGQgc3RydWN0IGZvciBwYWdlL2RtYSBhZGRyZXNzIHBhaXJzIGFuZCB1c2Ug aXQgdG8gbWFrZQo+IHRoZSBzZXR1cCBhbmQgdGVhcmRvd24gZm9yIGRpZmZlcmVudCBwYWdpbmcg c3RydWN0dXJlcwo+IGlkZW50aWNhbC4KPgo+IEluY2x1ZGUgdGhlIHBhZ2UgZGlyZWN0b3J5IG9m ZnNldCBhbHNvIGluIHRoZSBzdHJ1Y3QgZm9yIGxlZ2FjeQo+IGdlbnMuIFJlbmFtZSBpdCB0byBj bGVhcmx5IHBvaW50IG91dCB0aGF0IGl0IGlzIG9mZnNldCBpbnRvIHRoZQo+IGdndHQuCj4KPiB2 MjogQWRkIGNvbW1lbnQgYWJvdXQgZ2d0dF9vZmZzZXQgKE1pY2hlbCkKPgoKUmV2aWV3ZWQtYnk6 IE1pY2hlbCBUaGllcnJ5IDxtaWNoZWwudGhpZXJyeUBpbnRlbC5jb20+Cgo+IFNpZ25lZC1vZmYt Ynk6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAaW50ZWwuY29tPgo+IC0tLQo+ICAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgfCAgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5jIHwgMTIwICsrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+ICAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fZ3R0LmggfCAgMjUg KysrKystLS0KPiAgIDMgZmlsZXMgY2hhbmdlZCwgNjQgaW5zZXJ0aW9ucygrKSwgODMgZGVsZXRp b25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IGluZGV4IDE0ZjVkMTYu LjVhN2EyMGEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2Zz LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IEBAIC0yMjQ4 LDcgKzIyNDgsNyBAQCBzdGF0aWMgdm9pZCBnZW42X3BwZ3R0X2luZm8oc3RydWN0IHNlcV9maWxl ICptLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCQlzdHJ1Y3QgaTkxNV9od19wcGd0dCAq cHBndHQgPSBkZXZfcHJpdi0+bW0uYWxpYXNpbmdfcHBndHQ7Cj4KPiAgIAkJc2VxX3B1dHMobSwg ImFsaWFzaW5nIFBQR1RUOlxuIik7Cj4gLQkJc2VxX3ByaW50ZihtLCAicGQgZ3R0IG9mZnNldDog MHglMDh4XG4iLCBwcGd0dC0+cGQucGRfb2Zmc2V0KTsKPiArCQlzZXFfcHJpbnRmKG0sICJwZCBn dHQgb2Zmc2V0OiAweCUwOHhcbiIsIHBwZ3R0LT5wZC5iYXNlLmdndHRfb2Zmc2V0KTsKPgo+ICAg CQlwcGd0dC0+ZGVidWdfZHVtcChwcGd0dCwgbSk7Cj4gICAJfQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZ2VtX2d0dC5jCj4gaW5kZXggNTgzMmY1My4uNjVlZTkyZiAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfZ2VtX2d0dC5jCj4gQEAgLTMwMSw1MiArMzAxLDM5IEBAIHN0YXRpYyBnZW42X3B0 ZV90IGlyaXNfcHRlX2VuY29kZShkbWFfYWRkcl90IGFkZHIsCj4gICAJcmV0dXJuIHB0ZTsKPiAg IH0KPgo+IC0jZGVmaW5lIGk5MTVfZG1hX3VubWFwX3NpbmdsZShweCwgZGV2KSBcCj4gLQlfX2k5 MTVfZG1hX3VubWFwX3NpbmdsZSgocHgpLT5kYWRkciwgZGV2KQo+IC0KPiAtc3RhdGljIHZvaWQg X19pOTE1X2RtYV91bm1hcF9zaW5nbGUoZG1hX2FkZHJfdCBkYWRkciwKPiAtCQkJCSAgICBzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2KQo+ICtzdGF0aWMgaW50IHNldHVwX3BhZ2VfZG1hKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpOTE1X3BhZ2VfZG1hICpwKQo+ICAgewo+ICAgCXN0cnVj dCBkZXZpY2UgKmRldmljZSA9ICZkZXYtPnBkZXYtPmRldjsKPgo+IC0JZG1hX3VubWFwX3BhZ2Uo ZGV2aWNlLCBkYWRkciwgNDA5NiwgUENJX0RNQV9CSURJUkVDVElPTkFMKTsKPiAtfQo+IC0KPiAt LyoqCj4gLSAqIGk5MTVfZG1hX21hcF9zaW5nbGUoKSAtIENyZWF0ZSBhIGRtYSBtYXBwaW5nIGZv ciBhIHBhZ2UgdGFibGUvZGlyL2V0Yy4KPiAtICogQHB4OglQYWdlIHRhYmxlL2Rpci9ldGMgdG8g Z2V0IGEgRE1BIG1hcCBmb3IKPiAtICogQGRldjoJZHJtIGRldmljZQo+IC0gKgo+IC0gKiBQYWdl IHRhYmxlIGFsbG9jYXRpb25zIGFyZSB1bmlmaWVkIGFjcm9zcyBhbGwgZ2Vucy4gVGhleSBhbHdh eXMgcmVxdWlyZSBhCj4gLSAqIHNpbmdsZSA0ayBhbGxvY2F0aW9uLCBhcyB3ZWxsIGFzIGEgRE1B IG1hcHBpbmcuIElmIHdlIGtlZXAgdGhlIHN0cnVjdHMKPiAtICogc3ltbWV0cmljIGhlcmUsIHRo ZSBzaW1wbGUgbWFjcm8gY292ZXJzIHVzIGZvciBldmVyeSBwYWdlIHRhYmxlIHR5cGUuCj4gLSAq Cj4gLSAqIFJldHVybjogMCBpZiBzdWNjZXNzLgo+IC0gKi8KPiAtI2RlZmluZSBpOTE1X2RtYV9t YXBfc2luZ2xlKHB4LCBkZXYpIFwKPiAtCWk5MTVfZG1hX21hcF9wYWdlX3NpbmdsZSgocHgpLT5w YWdlLCAoZGV2KSwgJihweCktPmRhZGRyKQo+ICsJcC0+cGFnZSA9IGFsbG9jX3BhZ2UoR0ZQX0tF Uk5FTCk7Cj4gKwlpZiAoIXAtPnBhZ2UpCj4gKwkJcmV0dXJuIC1FTk9NRU07Cj4KPiAtc3RhdGlj IGludCBpOTE1X2RtYV9tYXBfcGFnZV9zaW5nbGUoc3RydWN0IHBhZ2UgKnBhZ2UsCj4gLQkJCQkg ICAgc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAtCQkJCSAgICBkbWFfYWRkcl90ICpkYWRkcikK PiAtewo+IC0Jc3RydWN0IGRldmljZSAqZGV2aWNlID0gJmRldi0+cGRldi0+ZGV2Owo+ICsJcC0+ ZGFkZHIgPSBkbWFfbWFwX3BhZ2UoZGV2aWNlLAo+ICsJCQkJcC0+cGFnZSwgMCwgNDA5NiwgUENJ X0RNQV9CSURJUkVDVElPTkFMKTsKPgo+IC0JKmRhZGRyID0gZG1hX21hcF9wYWdlKGRldmljZSwg cGFnZSwgMCwgNDA5NiwgUENJX0RNQV9CSURJUkVDVElPTkFMKTsKPiAtCWlmIChkbWFfbWFwcGlu Z19lcnJvcihkZXZpY2UsICpkYWRkcikpCj4gLQkJcmV0dXJuIC1FTk9NRU07Cj4gKwlpZiAoZG1h X21hcHBpbmdfZXJyb3IoZGV2aWNlLCBwLT5kYWRkcikpIHsKPiArCQlfX2ZyZWVfcGFnZShwLT5w YWdlKTsKPiArCQlyZXR1cm4gLUVJTlZBTDsKPiArCX0KPgo+ICAgCXJldHVybiAwOwo+ICAgfQo+ Cj4gLXN0YXRpYyB2b2lkIHVubWFwX2FuZF9mcmVlX3B0KHN0cnVjdCBpOTE1X3BhZ2VfdGFibGUg KnB0LAo+IC0JCQkgICAgICAgc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiArc3RhdGljIHZvaWQg Y2xlYW51cF9wYWdlX2RtYShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgaTkxNV9wYWdl X2RtYSAqcCkKPiAgIHsKPiAtCWlmIChXQVJOX09OKCFwdC0+cGFnZSkpCj4gKwlpZiAoV0FSTl9P TighcC0+cGFnZSkpCj4gICAJCXJldHVybjsKPgo+IC0JaTkxNV9kbWFfdW5tYXBfc2luZ2xlKHB0 LCBkZXYpOwo+IC0JX19mcmVlX3BhZ2UocHQtPnBhZ2UpOwo+ICsJZG1hX3VubWFwX3BhZ2UoJmRl di0+cGRldi0+ZGV2LCBwLT5kYWRkciwgNDA5NiwgUENJX0RNQV9CSURJUkVDVElPTkFMKTsKPiAr CV9fZnJlZV9wYWdlKHAtPnBhZ2UpOwo+ICsJbWVtc2V0KHAsIDAsIHNpemVvZigqcCkpOwo+ICt9 Cj4gKwo+ICtzdGF0aWMgdm9pZCB1bm1hcF9hbmRfZnJlZV9wdChzdHJ1Y3QgaTkxNV9wYWdlX3Rh YmxlICpwdCwKPiArCQkJICAgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gK3sKPiArCWNs ZWFudXBfcGFnZV9kbWEoZGV2LCAmcHQtPmJhc2UpOwo+ICAgCWtmcmVlKHB0LT51c2VkX3B0ZXMp Owo+ICAgCWtmcmVlKHB0KTsKPiAgIH0KPiBAQCAtMzU3LDcgKzM0NCw3IEBAIHN0YXRpYyB2b2lk IGdlbjhfaW5pdGlhbGl6ZV9wdChzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgIAln ZW44X3B0ZV90ICpwdF92YWRkciwgc2NyYXRjaF9wdGU7Cj4gICAJaW50IGk7Cj4KPiAtCXB0X3Zh ZGRyID0ga21hcF9hdG9taWMocHQtPnBhZ2UpOwo+ICsJcHRfdmFkZHIgPSBrbWFwX2F0b21pYyhw dC0+YmFzZS5wYWdlKTsKPiAgIAlzY3JhdGNoX3B0ZSA9IGdlbjhfcHRlX2VuY29kZSh2bS0+c2Ny YXRjaC5hZGRyLAo+ICAgCQkJCSAgICAgIEk5MTVfQ0FDSEVfTExDLCB0cnVlKTsKPgo+IEBAIC0z ODYsMTkgKzM3MywxMyBAQCBzdGF0aWMgc3RydWN0IGk5MTVfcGFnZV90YWJsZSAqYWxsb2NfcHQo c3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIAlpZiAoIXB0LT51c2VkX3B0ZXMpCj4gICAJCWdv dG8gZmFpbF9iaXRtYXA7Cj4KPiAtCXB0LT5wYWdlID0gYWxsb2NfcGFnZShHRlBfS0VSTkVMKTsK PiAtCWlmICghcHQtPnBhZ2UpCj4gLQkJZ290byBmYWlsX3BhZ2U7Cj4gLQo+IC0JcmV0ID0gaTkx NV9kbWFfbWFwX3NpbmdsZShwdCwgZGV2KTsKPiArCXJldCA9IHNldHVwX3BhZ2VfZG1hKGRldiwg JnB0LT5iYXNlKTsKPiAgIAlpZiAocmV0KQo+IC0JCWdvdG8gZmFpbF9kbWE7Cj4gKwkJZ290byBm YWlsX3BhZ2VfbTsKPgo+ICAgCXJldHVybiBwdDsKPgo+IC1mYWlsX2RtYToKPiAtCV9fZnJlZV9w YWdlKHB0LT5wYWdlKTsKPiAtZmFpbF9wYWdlOgo+ICtmYWlsX3BhZ2VfbToKPiAgIAlrZnJlZShw dC0+dXNlZF9wdGVzKTsKPiAgIGZhaWxfYml0bWFwOgo+ICAgCWtmcmVlKHB0KTsKPiBAQCAtNDA5 LDkgKzM5MCw4IEBAIGZhaWxfYml0bWFwOgo+ICAgc3RhdGljIHZvaWQgdW5tYXBfYW5kX2ZyZWVf cGQoc3RydWN0IGk5MTVfcGFnZV9kaXJlY3RvcnkgKnBkLAo+ICAgCQkJICAgICAgc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiAgIHsKPiAtCWlmIChwZC0+cGFnZSkgewo+IC0JCWk5MTVfZG1hX3Vu bWFwX3NpbmdsZShwZCwgZGV2KTsKPiAtCQlfX2ZyZWVfcGFnZShwZC0+cGFnZSk7Cj4gKwlpZiAo cGQtPmJhc2UucGFnZSkgewo+ICsJCWNsZWFudXBfcGFnZV9kbWEoZGV2LCAmcGQtPmJhc2UpOwo+ ICAgCQlrZnJlZShwZC0+dXNlZF9wZGVzKTsKPiAgIAkJa2ZyZWUocGQpOwo+ICAgCX0KPiBAQCAt NDMxLDE4ICs0MTEsMTIgQEAgc3RhdGljIHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICphbGxv Y19wZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCWlmICghcGQtPnVzZWRfcGRlcykKPiAg IAkJZ290byBmcmVlX3BkOwo+Cj4gLQlwZC0+cGFnZSA9IGFsbG9jX3BhZ2UoR0ZQX0tFUk5FTCk7 Cj4gLQlpZiAoIXBkLT5wYWdlKQo+IC0JCWdvdG8gZnJlZV9iaXRtYXA7Cj4gLQo+IC0JcmV0ID0g aTkxNV9kbWFfbWFwX3NpbmdsZShwZCwgZGV2KTsKPiArCXJldCA9IHNldHVwX3BhZ2VfZG1hKGRl diwgJnBkLT5iYXNlKTsKPiAgIAlpZiAocmV0KQo+IC0JCWdvdG8gZnJlZV9wYWdlOwo+ICsJCWdv dG8gZnJlZV9iaXRtYXA7Cj4KPiAgIAlyZXR1cm4gcGQ7Cj4KPiAtZnJlZV9wYWdlOgo+IC0JX19m cmVlX3BhZ2UocGQtPnBhZ2UpOwo+ICAgZnJlZV9iaXRtYXA6Cj4gICAJa2ZyZWUocGQtPnVzZWRf cGRlcyk7Cj4gICBmcmVlX3BkOgo+IEBAIC01MjMsMTAgKzQ5NywxMCBAQCBzdGF0aWMgdm9pZCBn ZW44X3BwZ3R0X2NsZWFyX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+Cj4g ICAJCXB0ID0gcGQtPnBhZ2VfdGFibGVbcGRlXTsKPgo+IC0JCWlmIChXQVJOX09OKCFwdC0+cGFn ZSkpCj4gKwkJaWYgKFdBUk5fT04oIXB0LT5iYXNlLnBhZ2UpKQo+ICAgCQkJY29udGludWU7Cj4K PiAtCQlwYWdlX3RhYmxlID0gcHQtPnBhZ2U7Cj4gKwkJcGFnZV90YWJsZSA9IHB0LT5iYXNlLnBh Z2U7Cj4KPiAgIAkJbGFzdF9wdGUgPSBwdGUgKyBudW1fZW50cmllczsKPiAgIAkJaWYgKGxhc3Rf cHRlID4gR0VOOF9QVEVTKQo+IEBAIC01NzMsNyArNTQ3LDcgQEAgc3RhdGljIHZvaWQgZ2VuOF9w cGd0dF9pbnNlcnRfZW50cmllcyhzdHJ1Y3QgaTkxNV9hZGRyZXNzX3NwYWNlICp2bSwKPiAgIAkJ aWYgKHB0X3ZhZGRyID09IE5VTEwpIHsKPiAgIAkJCXN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5 ICpwZCA9IHBwZ3R0LT5wZHAucGFnZV9kaXJlY3RvcnlbcGRwZV07Cj4gICAJCQlzdHJ1Y3QgaTkx NV9wYWdlX3RhYmxlICpwdCA9IHBkLT5wYWdlX3RhYmxlW3BkZV07Cj4gLQkJCXN0cnVjdCBwYWdl ICpwYWdlX3RhYmxlID0gcHQtPnBhZ2U7Cj4gKwkJCXN0cnVjdCBwYWdlICpwYWdlX3RhYmxlID0g cHQtPmJhc2UucGFnZTsKPgo+ICAgCQkJcHRfdmFkZHIgPSBrbWFwX2F0b21pYyhwYWdlX3RhYmxl KTsKPiAgIAkJfQo+IEBAIC02MDUsNyArNTc5LDcgQEAgc3RhdGljIHZvaWQgX19nZW44X2RvX21h cF9wdChnZW44X3BkZV90ICogY29uc3QgcGRlLAo+ICAgCQkJICAgICBzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ICAgewo+ICAgCWdlbjhfcGRlX3QgZW50cnkgPQo+IC0JCWdlbjhfcGRlX2VuY29k ZShkZXYsIHB0LT5kYWRkciwgSTkxNV9DQUNIRV9MTEMpOwo+ICsJCWdlbjhfcGRlX2VuY29kZShk ZXYsIHB0LT5iYXNlLmRhZGRyLCBJOTE1X0NBQ0hFX0xMQyk7Cj4gICAJKnBkZSA9IGVudHJ5Owo+ ICAgfQo+Cj4gQEAgLTYxOCw3ICs1OTIsNyBAQCBzdGF0aWMgdm9pZCBnZW44X2luaXRpYWxpemVf cGQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gICAJc3RydWN0IGk5MTVfcGFnZV90 YWJsZSAqcHQ7Cj4gICAJaW50IGk7Cj4KPiAtCXBhZ2VfZGlyZWN0b3J5ID0ga21hcF9hdG9taWMo cGQtPnBhZ2UpOwo+ICsJcGFnZV9kaXJlY3RvcnkgPSBrbWFwX2F0b21pYyhwZC0+YmFzZS5wYWdl KTsKPiAgIAlwdCA9IHBwZ3R0LT5zY3JhdGNoX3B0Owo+ICAgCWZvciAoaSA9IDA7IGkgPCBJOTE1 X1BERVM7IGkrKykKPiAgIAkJLyogTWFwIHRoZSBQREUgdG8gdGhlIHBhZ2UgdGFibGUgKi8KPiBA QCAtNjMzLDcgKzYwNyw3IEBAIHN0YXRpYyB2b2lkIGdlbjhfZnJlZV9wYWdlX3RhYmxlcyhzdHJ1 Y3QgaTkxNV9wYWdlX2RpcmVjdG9yeSAqcGQsIHN0cnVjdCBkcm1fZGV2Cj4gICB7Cj4gICAJaW50 IGk7Cj4KPiAtCWlmICghcGQtPnBhZ2UpCj4gKwlpZiAoIXBkLT5iYXNlLnBhZ2UpCj4gICAJCXJl dHVybjsKPgo+ICAgCWZvcl9lYWNoX3NldF9iaXQoaSwgcGQtPnVzZWRfcGRlcywgSTkxNV9QREVT KSB7Cj4gQEAgLTg4NCw3ICs4NTgsNyBAQCBzdGF0aWMgaW50IGdlbjhfYWxsb2NfdmFfcmFuZ2Uo c3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gICAJLyogQWxsb2NhdGlvbnMgaGF2ZSBj b21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LCBzbyBzZXQgdGhlIGJpdG1hcHMsIGFuZCBkbwo+ICAgCSAq IHRoZSBtYXBwaW5ncy4gKi8KPiAgIAlnZW44X2Zvcl9lYWNoX3BkcGUocGQsICZwcGd0dC0+cGRw LCBzdGFydCwgbGVuZ3RoLCB0ZW1wLCBwZHBlKSB7Cj4gLQkJZ2VuOF9wZGVfdCAqY29uc3QgcGFn ZV9kaXJlY3RvcnkgPSBrbWFwX2F0b21pYyhwZC0+cGFnZSk7Cj4gKwkJZ2VuOF9wZGVfdCAqY29u c3QgcGFnZV9kaXJlY3RvcnkgPSBrbWFwX2F0b21pYyhwZC0+YmFzZS5wYWdlKTsKPiAgIAkJc3Ry dWN0IGk5MTVfcGFnZV90YWJsZSAqcHQ7Cj4gICAJCXVpbnQ2NF90IHBkX2xlbiA9IGdlbjhfY2xh bXBfcGQoc3RhcnQsIGxlbmd0aCk7Cj4gICAJCXVpbnQ2NF90IHBkX3N0YXJ0ID0gc3RhcnQ7Cj4g QEAgLTk5NSw3ICs5NjksNyBAQCBzdGF0aWMgdm9pZCBnZW42X2R1bXBfcHBndHQoc3RydWN0IGk5 MTVfaHdfcHBndHQgKnBwZ3R0LCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCj4gICAJZ2VuNl9mb3JfZWFj aF9wZGUodW51c2VkLCAmcHBndHQtPnBkLCBzdGFydCwgbGVuZ3RoLCB0ZW1wLCBwZGUpIHsKPiAg IAkJdTMyIGV4cGVjdGVkOwo+ICAgCQlnZW42X3B0ZV90ICpwdF92YWRkcjsKPiAtCQlkbWFfYWRk cl90IHB0X2FkZHIgPSBwcGd0dC0+cGQucGFnZV90YWJsZVtwZGVdLT5kYWRkcjsKPiArCQlkbWFf YWRkcl90IHB0X2FkZHIgPSBwcGd0dC0+cGQucGFnZV90YWJsZVtwZGVdLT5iYXNlLmRhZGRyOwo+ ICAgCQlwZF9lbnRyeSA9IHJlYWRsKHBwZ3R0LT5wZF9hZGRyICsgcGRlKTsKPiAgIAkJZXhwZWN0 ZWQgPSAoR0VONl9QREVfQUREUl9FTkNPREUocHRfYWRkcikgfCBHRU42X1BERV9WQUxJRCk7Cj4K PiBAQCAtMTAwNiw3ICs5ODAsNyBAQCBzdGF0aWMgdm9pZCBnZW42X2R1bXBfcHBndHQoc3RydWN0 IGk5MTVfaHdfcHBndHQgKnBwZ3R0LCBzdHJ1Y3Qgc2VxX2ZpbGUgKm0pCj4gICAJCQkJICAgZXhw ZWN0ZWQpOwo+ICAgCQlzZXFfcHJpbnRmKG0sICJcdFBERTogJXhcbiIsIHBkX2VudHJ5KTsKPgo+ IC0JCXB0X3ZhZGRyID0ga21hcF9hdG9taWMocHBndHQtPnBkLnBhZ2VfdGFibGVbcGRlXS0+cGFn ZSk7Cj4gKwkJcHRfdmFkZHIgPSBrbWFwX2F0b21pYyhwcGd0dC0+cGQucGFnZV90YWJsZVtwZGVd LT5iYXNlLnBhZ2UpOwo+ICAgCQlmb3IgKHB0ZSA9IDA7IHB0ZSA8IEdFTjZfUFRFUzsgcHRlKz00 KSB7Cj4gICAJCQl1bnNpZ25lZCBsb25nIHZhID0KPiAgIAkJCQkocGRlICogUEFHRV9TSVpFICog R0VONl9QVEVTKSArCj4gQEAgLTEwNDEsNyArMTAxNSw3IEBAIHN0YXRpYyB2b2lkIGdlbjZfd3Jp dGVfcGRlKHN0cnVjdCBpOTE1X3BhZ2VfZGlyZWN0b3J5ICpwZCwKPiAgIAkJY29udGFpbmVyX29m KHBkLCBzdHJ1Y3QgaTkxNV9od19wcGd0dCwgcGQpOwo+ICAgCXUzMiBwZF9lbnRyeTsKPgo+IC0J cGRfZW50cnkgPSBHRU42X1BERV9BRERSX0VOQ09ERShwdC0+ZGFkZHIpOwo+ICsJcGRfZW50cnkg PSBHRU42X1BERV9BRERSX0VOQ09ERShwdC0+YmFzZS5kYWRkcik7Cj4gICAJcGRfZW50cnkgfD0g R0VONl9QREVfVkFMSUQ7Cj4KPiAgIAl3cml0ZWwocGRfZW50cnksIHBwZ3R0LT5wZF9hZGRyICsg cGRlKTsKPiBAQCAtMTA2Niw5ICsxMDQwLDkgQEAgc3RhdGljIHZvaWQgZ2VuNl93cml0ZV9wYWdl X3JhbmdlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPgo+ICAgc3RhdGljIHVp bnQzMl90IGdldF9wZF9vZmZzZXQoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0KQo+ICAgewo+ IC0JQlVHX09OKHBwZ3R0LT5wZC5wZF9vZmZzZXQgJiAweDNmKTsKPiArCUJVR19PTihwcGd0dC0+ cGQuYmFzZS5nZ3R0X29mZnNldCAmIDB4M2YpOwo+Cj4gLQlyZXR1cm4gKHBwZ3R0LT5wZC5wZF9v ZmZzZXQgLyA2NCkgPDwgMTY7Cj4gKwlyZXR1cm4gKHBwZ3R0LT5wZC5iYXNlLmdndHRfb2Zmc2V0 IC8gNjQpIDw8IDE2Owo+ICAgfQo+Cj4gICBzdGF0aWMgaW50IGhzd19tbV9zd2l0Y2goc3RydWN0 IGk5MTVfaHdfcHBndHQgKnBwZ3R0LAo+IEBAIC0xMjMxLDcgKzEyMDUsNyBAQCBzdGF0aWMgdm9p ZCBnZW42X3BwZ3R0X2NsZWFyX3JhbmdlKHN0cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ ICAgCQlpZiAobGFzdF9wdGUgPiBHRU42X1BURVMpCj4gICAJCQlsYXN0X3B0ZSA9IEdFTjZfUFRF UzsKPgo+IC0JCXB0X3ZhZGRyID0ga21hcF9hdG9taWMocHBndHQtPnBkLnBhZ2VfdGFibGVbYWN0 X3B0XS0+cGFnZSk7Cj4gKwkJcHRfdmFkZHIgPSBrbWFwX2F0b21pYyhwcGd0dC0+cGQucGFnZV90 YWJsZVthY3RfcHRdLT5iYXNlLnBhZ2UpOwo+Cj4gICAJCWZvciAoaSA9IGZpcnN0X3B0ZTsgaSA8 IGxhc3RfcHRlOyBpKyspCj4gICAJCQlwdF92YWRkcltpXSA9IHNjcmF0Y2hfcHRlOwo+IEBAIC0x MjYwLDcgKzEyMzQsNyBAQCBzdGF0aWMgdm9pZCBnZW42X3BwZ3R0X2luc2VydF9lbnRyaWVzKHN0 cnVjdCBpOTE1X2FkZHJlc3Nfc3BhY2UgKnZtLAo+ICAgCXB0X3ZhZGRyID0gTlVMTDsKPiAgIAlm b3JfZWFjaF9zZ19wYWdlKHBhZ2VzLT5zZ2wsICZzZ19pdGVyLCBwYWdlcy0+bmVudHMsIDApIHsK PiAgIAkJaWYgKHB0X3ZhZGRyID09IE5VTEwpCj4gLQkJCXB0X3ZhZGRyID0ga21hcF9hdG9taWMo cHBndHQtPnBkLnBhZ2VfdGFibGVbYWN0X3B0XS0+cGFnZSk7Cj4gKwkJCXB0X3ZhZGRyID0ga21h cF9hdG9taWMocHBndHQtPnBkLnBhZ2VfdGFibGVbYWN0X3B0XS0+YmFzZS5wYWdlKTsKPgo+ICAg CQlwdF92YWRkclthY3RfcHRlXSA9Cj4gICAJCQl2bS0+cHRlX2VuY29kZShzZ19wYWdlX2l0ZXJf ZG1hX2FkZHJlc3MoJnNnX2l0ZXIpLAo+IEBAIC0xMjg4LDcgKzEyNjIsNyBAQCBzdGF0aWMgdm9p ZCBnZW42X2luaXRpYWxpemVfcHQoc3RydWN0IGk5MTVfYWRkcmVzc19zcGFjZSAqdm0sCj4gICAJ c2NyYXRjaF9wdGUgPSB2bS0+cHRlX2VuY29kZSh2bS0+c2NyYXRjaC5hZGRyLAo+ICAgCQkJSTkx NV9DQUNIRV9MTEMsIHRydWUsIDApOwo+Cj4gLQlwdF92YWRkciA9IGttYXBfYXRvbWljKHB0LT5w YWdlKTsKPiArCXB0X3ZhZGRyID0ga21hcF9hdG9taWMocHQtPmJhc2UucGFnZSk7Cj4KPiAgIAlm b3IgKGkgPSAwOyBpIDwgR0VONl9QVEVTOyBpKyspCj4gICAJCXB0X3ZhZGRyW2ldID0gc2NyYXRj aF9wdGU7Cj4gQEAgLTE1MDQsMTEgKzE0NzgsMTEgQEAgc3RhdGljIGludCBnZW42X3BwZ3R0X2lu aXQoc3RydWN0IGk5MTVfaHdfcHBndHQgKnBwZ3R0KQo+ICAgCXBwZ3R0LT5iYXNlLnRvdGFsID0g STkxNV9QREVTICogR0VONl9QVEVTICogUEFHRV9TSVpFOwo+ICAgCXBwZ3R0LT5kZWJ1Z19kdW1w ID0gZ2VuNl9kdW1wX3BwZ3R0Owo+Cj4gLQlwcGd0dC0+cGQucGRfb2Zmc2V0ID0KPiArCXBwZ3R0 LT5wZC5iYXNlLmdndHRfb2Zmc2V0ID0KPiAgIAkJcHBndHQtPm5vZGUuc3RhcnQgLyBQQUdFX1NJ WkUgKiBzaXplb2YoZ2VuNl9wdGVfdCk7Cj4KPiAgIAlwcGd0dC0+cGRfYWRkciA9IChnZW42X3B0 ZV90IF9faW9tZW0gKilkZXZfcHJpdi0+Z3R0LmdzbSArCj4gLQkJcHBndHQtPnBkLnBkX29mZnNl dCAvIHNpemVvZihnZW42X3B0ZV90KTsKPiArCQlwcGd0dC0+cGQuYmFzZS5nZ3R0X29mZnNldCAv IHNpemVvZihnZW42X3B0ZV90KTsKPgo+ICAgCWdlbjZfc2NyYXRjaF92YV9yYW5nZShwcGd0dCwg MCwgcHBndHQtPmJhc2UudG90YWwpOwo+Cj4gQEAgLTE1MTksNyArMTQ5Myw3IEBAIHN0YXRpYyBp bnQgZ2VuNl9wcGd0dF9pbml0KHN0cnVjdCBpOTE1X2h3X3BwZ3R0ICpwcGd0dCkKPiAgIAkJCSBw cGd0dC0+bm9kZS5zdGFydCAvIFBBR0VfU0laRSk7Cj4KPiAgIAlEUk1fREVCVUcoIkFkZGluZyBQ UEdUVCBhdCBvZmZzZXQgJXhcbiIsCj4gLQkJICBwcGd0dC0+cGQucGRfb2Zmc2V0IDw8IDEwKTsK PiArCQkgIHBwZ3R0LT5wZC5iYXNlLmdndHRfb2Zmc2V0IDw8IDEwKTsKPgo+ICAgCXJldHVybiAw Owo+ICAgfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gaW5kZXggZGE2NzU0Mi4u MGNjZGY1NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9ndHQu aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZ2VtX2d0dC5oCj4gQEAgLTIwNSwx OSArMjA1LDI2IEBAIHN0cnVjdCBpOTE1X3ZtYSB7Cj4gICAjZGVmaW5lIERSTV9JOTE1X0dFTV9P QkpFQ1RfTUFYX1BJTl9DT1VOVCAweGYKPiAgIH07Cj4KPiAtc3RydWN0IGk5MTVfcGFnZV90YWJs ZSB7Cj4gK3N0cnVjdCBpOTE1X3BhZ2VfZG1hIHsKPiAgIAlzdHJ1Y3QgcGFnZSAqcGFnZTsKPiAt CWRtYV9hZGRyX3QgZGFkZHI7Cj4gKwl1bmlvbiB7Cj4gKwkJZG1hX2FkZHJfdCBkYWRkcjsKPiAr Cj4gKwkJLyogRm9yIGdlbjYvZ2VuNyBvbmx5LiBUaGlzIGlzIHRoZSBvZmZzZXQgaW4gdGhlIEdH VFQKPiArCQkgKiB3aGVyZSB0aGUgcGFnZSBkaXJlY3RvcnkgZW50cmllcyBmb3IgUFBHVFQgYmVn aW4KPiArCQkgKi8KPiArCQl1aW50MzJfdCBnZ3R0X29mZnNldDsKPiArCX07Cj4gK307Cj4gKwo+ ICtzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlIHsKPiArCXN0cnVjdCBpOTE1X3BhZ2VfZG1hIGJhc2U7 Cj4KPiAgIAl1bnNpZ25lZCBsb25nICp1c2VkX3B0ZXM7Cj4gICB9Owo+Cj4gICBzdHJ1Y3QgaTkx NV9wYWdlX2RpcmVjdG9yeSB7Cj4gLQlzdHJ1Y3QgcGFnZSAqcGFnZTsgLyogTlVMTCBmb3IgR0VO Ni1HRU43ICovCj4gLQl1bmlvbiB7Cj4gLQkJdWludDMyX3QgcGRfb2Zmc2V0Owo+IC0JCWRtYV9h ZGRyX3QgZGFkZHI7Cj4gLQl9Owo+ICsJc3RydWN0IGk5MTVfcGFnZV9kbWEgYmFzZTsKPgo+ICAg CXVuc2lnbmVkIGxvbmcgKnVzZWRfcGRlczsKPiAgIAlzdHJ1Y3QgaTkxNV9wYWdlX3RhYmxlICpw YWdlX3RhYmxlW0k5MTVfUERFU107IC8qIFBERXMgKi8KPiBAQCAtNDcyLDggKzQ3OSw4IEBAIHN0 YXRpYyBpbmxpbmUgZG1hX2FkZHJfdAo+ICAgaTkxNV9wYWdlX2Rpcl9kbWFfYWRkcihjb25zdCBz dHJ1Y3QgaTkxNV9od19wcGd0dCAqcHBndHQsIGNvbnN0IHVuc2lnbmVkIG4pCj4gICB7Cj4gICAJ cmV0dXJuIHRlc3RfYml0KG4sIHBwZ3R0LT5wZHAudXNlZF9wZHBlcykgPwo+IC0JCXBwZ3R0LT5w ZHAucGFnZV9kaXJlY3Rvcnlbbl0tPmRhZGRyIDoKPiAtCQlwcGd0dC0+c2NyYXRjaF9wZC0+ZGFk ZHI7Cj4gKwkJcHBndHQtPnBkcC5wYWdlX2RpcmVjdG9yeVtuXS0+YmFzZS5kYWRkciA6Cj4gKwkJ cHBndHQtPnNjcmF0Y2hfcGQtPmJhc2UuZGFkZHI7Cj4gICB9Cj4KPiAgIGludCBpOTE1X2dlbV9n dHRfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKPgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=