From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH 19/21] drm/i915: Move the get/put irq locking into the caller Date: Tue, 7 Jun 2016 13:46:53 +0100 Message-ID: <5756C23D.5090508@linux.intel.com> References: <1464970133-29859-1-git-send-email-chris@chris-wilson.co.uk> <1464970133-29859-20-git-send-email-chris@chris-wilson.co.uk> 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 795206E789 for ; Tue, 7 Jun 2016 12:46:55 +0000 (UTC) In-Reply-To: <1464970133-29859-20-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDAzLzA2LzE2IDE3OjA4LCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gV2l0aCBvbmx5IGEgc2lu Z2xlIGNhbGxzaXRlIGZvciBpbnRlbF9lbmdpbmVfY3MtPmlycV9nZXQgYW5kIC0+aXJxX3B1dCwK PiB3ZSBjYW4gcmVkdWNlIHRoZSBjb2RlIHNpemUgYnkgbW92aW5nIHRoZSBjb21tb24gcHJlYW1i bGUgaW50byB0aGUKPiBjYWxsZXIsIGFuZCB3ZSBjYW4gYWxzbyBlbGltaW5hdGUgdGhlIHJlZmVy ZW5jZSBjb3VudGluZy4KPgo+IEZvciBjb21wbGV0ZW5lc3MsIGFzIHdlIGFyZSBubyBsb25nZXIg ZG9pbmcgcmVmZXJlbmNlIGNvdW50aW5nIG9uIGlycSwKPiByZW5hbWUgdGhlIGdldC9wdXQgdmZ1 bmN0aW9ucyB0byBlbmFibGUvZGlzYWJsZSByZXNwZWN0aXZlbHkuCj4KPiBTaWduZWQtb2ZmLWJ5 OiBDaHJpcyBXaWxzb24gPGNocmlzQGNocmlzLXdpbHNvbi5jby51az4KPiAtLS0KPiAgIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMgICAgICAgICAgfCAgIDggKy0KPiAgIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMgfCAgMTAgKy0KPiAgIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2xyYy5jICAgICAgICAgfCAgMzQgKy0tLQo+ICAgZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jICB8IDI2OSArKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLS0tLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggIHwg ICA1ICstCj4gICA1IGZpbGVzIGNoYW5nZWQsIDEwOCBpbnNlcnRpb25zKCspLCAyMTggZGVsZXRp b25zKC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKPiBpbmRleCAxNGIzZDY1YmI2MDQuLjVi ZGI0MzNkZGU4YyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwo+IEBAIC0yNTksMTIgKzI1 OSwxMiBAQCBzdGF0aWMgdm9pZCBpbGtfdXBkYXRlX2d0X2lycShzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCj4gICAJZGV2X3ByaXYtPmd0X2lycV9tYXNrICY9IH5pbnRlcnJ1cHRf bWFzazsKPiAgIAlkZXZfcHJpdi0+Z3RfaXJxX21hc2sgfD0gKH5lbmFibGVkX2lycV9tYXNrICYg aW50ZXJydXB0X21hc2spOwo+ICAgCUk5MTVfV1JJVEUoR1RJTVIsIGRldl9wcml2LT5ndF9pcnFf bWFzayk7Cj4gLQlQT1NUSU5HX1JFQUQoR1RJTVIpOwo+ICAgfQo+Cj4gICB2b2lkIGdlbjVfZW5h YmxlX2d0X2lycShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHVpbnQzMl90IG1h c2spCj4gICB7Cj4gICAJaWxrX3VwZGF0ZV9ndF9pcnEoZGV2X3ByaXYsIG1hc2ssIG1hc2spOwo+ ICsJUE9TVElOR19SRUFEX0ZXKEdUSU1SKTsKPiAgIH0KClVucmVsYXRlZCBodW5rcz8KCkhvdyBp cyBQT1NUSU5HX1JFQURfRlcgY29ycmVjdD8KCkFsc28gcmVtb3ZlcyB0aGUgcG9zdGluZyByZWFk IGZyb20gZGlzYWJsZSwgT0s/Cgo+Cj4gICB2b2lkIGdlbjVfZGlzYWJsZV9ndF9pcnEoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1aW50MzJfdCBtYXNrKQo+IEBAIC0yODE4LDkg KzI4MTgsOSBAQCByaW5nX2lkbGUoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIg c2Vxbm8pCj4gICB9Cj4KPiAgIHN0YXRpYyBib29sCj4gLWlwZWhyX2lzX3NlbWFwaG9yZV93YWl0 KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGlwZWhyKQo+ICtpcGVocl9p c19zZW1hcGhvcmVfd2FpdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUsIHUzMiBpcGVo cikKPiAgIHsKPiAtCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpIHsKPiArCWlmIChJTlRF TF9HRU4oZW5naW5lLT5pOTE1KSA+PSA4KSB7Cj4gICAJCXJldHVybiAoaXBlaHIgPj4gMjMpID09 IDB4MWM7Cj4gICAJfSBlbHNlIHsKPiAgIAkJaXBlaHIgJj0gfk1JX1NFTUFQSE9SRV9TWU5DX01B U0s7Cj4gQEAgLTI4OTEsNyArMjg5MSw3IEBAIHNlbWFwaG9yZV93YWl0c19mb3Ioc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lLCB1MzIgKnNlcW5vKQo+ICAgCQlyZXR1cm4gTlVMTDsKPgo+ ICAgCWlwZWhyID0gSTkxNV9SRUFEKFJJTkdfSVBFSFIoZW5naW5lLT5tbWlvX2Jhc2UpKTsKPiAt CWlmICghaXBlaHJfaXNfc2VtYXBob3JlX3dhaXQoZW5naW5lLT5pOTE1LCBpcGVocikpCj4gKwlp ZiAoIWlwZWhyX2lzX3NlbWFwaG9yZV93YWl0KGVuZ2luZSwgaXBlaHIpKQo+ICAgCQlyZXR1cm4g TlVMTDsKClR3byBodW5rcyBvZiBtZWggYXMgc29tZSB3b3VsZCBzYXkuIDopCgo+Cj4gICAJLyoK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJlYWRjcnVtYnMuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2JyZWFkY3J1bWJzLmMKPiBpbmRleCA4YWI1MDhl ZDQyNDguLmRjNjVhMDA3ZmEyMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9icmVhZGNydW1icy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYnJl YWRjcnVtYnMuYwo+IEBAIC01MCwxMiArNTAsMTggQEAgc3RhdGljIHZvaWQgaXJxX2VuYWJsZShz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICAJICoganVzdCBpbiBjYXNlLgo+ICAg CSAqLwo+ICAgCWVuZ2luZS0+aXJxX3Bvc3RlZCA9IHRydWU7Cj4gLQlXQVJOX09OKCFlbmdpbmUt PmlycV9nZXQoZW5naW5lKSk7Cj4gKwo+ICsJc3Bpbl9sb2NrX2lycSgmZW5naW5lLT5pOTE1LT5p cnFfbG9jayk7Cj4gKwllbmdpbmUtPmlycV9lbmFibGUoZW5naW5lKTsKPiArCXNwaW5fdW5sb2Nr X2lycSgmZW5naW5lLT5pOTE1LT5pcnFfbG9jayk7Cj4gICB9Cj4KPiAgIHN0YXRpYyB2b2lkIGly cV9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIHsKPiAtCWVuZ2lu ZS0+aXJxX3B1dChlbmdpbmUpOwo+ICsJc3Bpbl9sb2NrX2lycSgmZW5naW5lLT5pOTE1LT5pcnFf bG9jayk7Cj4gKwllbmdpbmUtPmlycV9kaXNhYmxlKGVuZ2luZSk7Cj4gKwlzcGluX3VubG9ja19p cnEoJmVuZ2luZS0+aTkxNS0+aXJxX2xvY2spOwo+ICsKPiAgIAllbmdpbmUtPmlycV9wb3N0ZWQg PSBmYWxzZTsKPiAgIH0KPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9scmMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2xyYy5jCj4gaW5kZXggMzJiNWVh ZTdkZDExLi45ZTE5YjJjNWIzYWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfbHJjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9scmMuYwo+IEBA IC0xNTc4LDM2ICsxNTc4LDE4IEBAIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X2JiX3N0YXJ0KHN0cnVj dCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxLAo+ICAgCXJldHVybiAwOwo+ICAgfQo+Cj4gLXN0 YXRpYyBib29sIGdlbjhfbG9naWNhbF9yaW5nX2dldF9pcnEoc3RydWN0IGludGVsX2VuZ2luZV9j cyAqZW5naW5lKQo+ICtzdGF0aWMgdm9pZCBnZW44X2xvZ2ljYWxfcmluZ19lbmFibGVfaXJxKHN0 cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7Cj4gLQl1bnNpZ25lZCBsb25nIGZsYWdz Owo+IC0KPiAtCWlmIChXQVJOX09OKCFpbnRlbF9pcnFzX2VuYWJsZWQoZGV2X3ByaXYpKSkKPiAt CQlyZXR1cm4gZmFsc2U7Cj4gLQo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnFf bG9jaywgZmxhZ3MpOwo+IC0JaWYgKGVuZ2luZS0+aXJxX3JlZmNvdW50KysgPT0gMCkgewo+IC0J CUk5MTVfV1JJVEVfSU1SKGVuZ2luZSwKPiAtCQkJICAgICAgIH4oZW5naW5lLT5pcnFfZW5hYmxl X21hc2sgfCBlbmdpbmUtPmlycV9rZWVwX21hc2spKTsKPiAtCQlQT1NUSU5HX1JFQUQoUklOR19J TVIoZW5naW5lLT5tbWlvX2Jhc2UpKTsKPiAtCX0KPiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUo JmRldl9wcml2LT5pcnFfbG9jaywgZmxhZ3MpOwo+IC0KPiAtCXJldHVybiB0cnVlOwo+ICsJSTkx NV9XUklURV9JTVIoZW5naW5lLAo+ICsJCSAgICAgICB+KGVuZ2luZS0+aXJxX2VuYWJsZV9tYXNr IHwgZW5naW5lLT5pcnFfa2VlcF9tYXNrKSk7Cj4gKwlQT1NUSU5HX1JFQURfRlcoUklOR19JTVIo ZW5naW5lLT5tbWlvX2Jhc2UpKTsKCkhtLCBtb3JlIG9mIF9GVyBmb2xsb3dpbmcgbm9ybWFsIGFj Y2Vzcy4gV2hhdCBhbSBJIG1pc3Npbmc/IFlvdSBhcmUgbm90IApieSBhbnkgY2hhbmNlIGJhbmtp bmcgb24gdGhlIGF1dG8tcmVsZWFzZSB3aW5kb3c/Cgo+ICAgfQo+Cj4gLXN0YXRpYyB2b2lkIGdl bjhfbG9naWNhbF9yaW5nX3B1dF9pcnEoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ ICtzdGF0aWMgdm9pZCBnZW44X2xvZ2ljYWxfcmluZ19kaXNhYmxlX2lycShzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCj4gICB7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZW5naW5lLT5pOTE1Owo+IC0JdW5zaWduZWQgbG9uZyBmbGFnczsKPiAtCj4gLQlz cGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFncyk7Cj4gLQlpZiAoLS1l bmdpbmUtPmlycV9yZWZjb3VudCA9PSAwKSB7Cj4gLQkJSTkxNV9XUklURV9JTVIoZW5naW5lLCB+ ZW5naW5lLT5pcnFfa2VlcF9tYXNrKTsKPiAtCQlQT1NUSU5HX1JFQUQoUklOR19JTVIoZW5naW5l LT5tbWlvX2Jhc2UpKTsKPiAtCX0KPiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2 LT5pcnFfbG9jaywgZmxhZ3MpOwo+ICsJSTkxNV9XUklURV9JTVIoZW5naW5lLCB+ZW5naW5lLT5p cnFfa2VlcF9tYXNrKTsKCkFub3RoZXIgcG9zdGluZyByZWFkIGdvbmUgaGVyZT8KCj4gICB9Cj4K PiAgIHN0YXRpYyBpbnQgZ2VuOF9lbWl0X2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVz dCAqcmVxdWVzdCwKPiBAQCAtMTg5NSw4ICsxODc3LDggQEAgbG9naWNhbF9yaW5nX2RlZmF1bHRf dmZ1bmNzKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIAllbmdpbmUtPmluaXRf aHcgPSBnZW44X2luaXRfY29tbW9uX3Jpbmc7Cj4gICAJZW5naW5lLT5lbWl0X3JlcXVlc3QgPSBn ZW44X2VtaXRfcmVxdWVzdDsKPiAgIAllbmdpbmUtPmVtaXRfZmx1c2ggPSBnZW44X2VtaXRfZmx1 c2g7Cj4gLQllbmdpbmUtPmlycV9nZXQgPSBnZW44X2xvZ2ljYWxfcmluZ19nZXRfaXJxOwo+IC0J ZW5naW5lLT5pcnFfcHV0ID0gZ2VuOF9sb2dpY2FsX3JpbmdfcHV0X2lycTsKPiArCWVuZ2luZS0+ aXJxX2VuYWJsZSA9IGdlbjhfbG9naWNhbF9yaW5nX2VuYWJsZV9pcnE7Cj4gKwllbmdpbmUtPmly cV9kaXNhYmxlID0gZ2VuOF9sb2dpY2FsX3JpbmdfZGlzYWJsZV9pcnE7Cj4gICAJZW5naW5lLT5l bWl0X2JiX3N0YXJ0ID0gZ2VuOF9lbWl0X2JiX3N0YXJ0Owo+ICAgCWlmIChJU19CWFRfUkVWSUQo ZW5naW5lLT5pOTE1LCAwLCBCWFRfUkVWSURfQTEpKQo+ICAgCQllbmdpbmUtPmlycV9zZXFub19i YXJyaWVyID0gYnh0X2Ffc2Vxbm9fYmFycmllcjsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jCj4gaW5kZXggMzBlNDAwZDc3ZDIzLi5iYTg0YjQ2OWYxM2YgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jCj4gQEAgLTE1NTEsMTAzICsxNTUx LDU0IEBAIGdlbjZfc2Vxbm9fYmFycmllcihzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUp Cj4gICAJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+dW5jb3JlLmxvY2spOwo+ICAgfQo+Cj4g LXN0YXRpYyBib29sCj4gLWdlbjVfcmluZ19nZXRfaXJxKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3Mg KmVuZ2luZSkKPiArc3RhdGljIHZvaWQKPiArZ2VuNV9yaW5nX2VuYWJsZV9pcnEoc3RydWN0IGlu dGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gZW5naW5lLT5pOTE1Owo+IC0JdW5zaWduZWQgbG9uZyBmbGFnczsKPiAtCj4g LQlpZiAoV0FSTl9PTighaW50ZWxfaXJxc19lbmFibGVkKGRldl9wcml2KSkpCj4gLQkJcmV0dXJu IGZhbHNlOwo+IC0KPiAtCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGZs YWdzKTsKPiAtCWlmIChlbmdpbmUtPmlycV9yZWZjb3VudCsrID09IDApCj4gLQkJZ2VuNV9lbmFi bGVfZ3RfaXJxKGRldl9wcml2LCBlbmdpbmUtPmlycV9lbmFibGVfbWFzayk7Cj4gLQlzcGluX3Vu bG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGZsYWdzKTsKPiAtCj4gLQlyZXR1 cm4gdHJ1ZTsKPiArCWdlbjVfZW5hYmxlX2d0X2lycShlbmdpbmUtPmk5MTUsIGVuZ2luZS0+aXJx X2VuYWJsZV9tYXNrKTsKPiAgIH0KPgo+ICAgc3RhdGljIHZvaWQKPiAtZ2VuNV9yaW5nX3B1dF9p cnEoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICtnZW41X3JpbmdfZGlzYWJsZV9p cnEoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgewo+IC0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1Owo+IC0JdW5zaWduZWQgbG9uZyBm bGFnczsKPiAtCj4gLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFn cyk7Cj4gLQlpZiAoLS1lbmdpbmUtPmlycV9yZWZjb3VudCA9PSAwKQo+IC0JCWdlbjVfZGlzYWJs ZV9ndF9pcnEoZGV2X3ByaXYsIGVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrKTsKPiAtCXNwaW5fdW5s b2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywgZmxhZ3MpOwo+ICsJZ2VuNV9kaXNh YmxlX2d0X2lycShlbmdpbmUtPmk5MTUsIGVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrKTsKPiAgIH0K Pgo+IC1zdGF0aWMgYm9vbAo+IC1pOXh4X3JpbmdfZ2V0X2lycShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCj4gK3N0YXRpYyB2b2lkCj4gK2k5eHhfcmluZ19lbmFibGVfaXJxKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7Cj4gLQl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ IC0KPiAtCWlmICghaW50ZWxfaXJxc19lbmFibGVkKGRldl9wcml2KSkKPiAtCQlyZXR1cm4gZmFs c2U7Cj4gLQo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnFfbG9jaywgZmxhZ3Mp Owo+IC0JaWYgKGVuZ2luZS0+aXJxX3JlZmNvdW50KysgPT0gMCkgewo+IC0JCWRldl9wcml2LT5p cnFfbWFzayAmPSB+ZW5naW5lLT5pcnFfZW5hYmxlX21hc2s7Cj4gLQkJSTkxNV9XUklURShJTVIs IGRldl9wcml2LT5pcnFfbWFzayk7Cj4gLQkJUE9TVElOR19SRUFEKElNUik7Cj4gLQl9Cj4gLQlz cGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+aXJxX2xvY2ssIGZsYWdzKTsKPgo+IC0J cmV0dXJuIHRydWU7Cj4gKwlkZXZfcHJpdi0+aXJxX21hc2sgJj0gfmVuZ2luZS0+aXJxX2VuYWJs ZV9tYXNrOwo+ICsJSTkxNV9XUklURShJTVIsIGRldl9wcml2LT5pcnFfbWFzayk7Cj4gKwlQT1NU SU5HX1JFQURfRlcoUklOR19JTVIoZW5naW5lLT5tbWlvX2Jhc2UpKTsKPiAgIH0KPgo+ICAgc3Rh dGljIHZvaWQKPiAtaTl4eF9yaW5nX3B1dF9pcnEoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQo+ICtpOXh4X3JpbmdfZGlzYWJsZV9pcnEoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5n aW5lKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2lu ZS0+aTkxNTsKPiAtCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4KPiAtCXNwaW5fbG9ja19pcnFzYXZl KCZkZXZfcHJpdi0+aXJxX2xvY2ssIGZsYWdzKTsKPiAtCWlmICgtLWVuZ2luZS0+aXJxX3JlZmNv dW50ID09IDApIHsKPiAtCQlkZXZfcHJpdi0+aXJxX21hc2sgfD0gZW5naW5lLT5pcnFfZW5hYmxl X21hc2s7Cj4gLQkJSTkxNV9XUklURShJTVIsIGRldl9wcml2LT5pcnFfbWFzayk7Cj4gLQkJUE9T VElOR19SRUFEKElNUik7Cj4gLQl9Cj4gLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJp di0+aXJxX2xvY2ssIGZsYWdzKTsKPiArCWRldl9wcml2LT5pcnFfbWFzayB8PSBlbmdpbmUtPmly cV9lbmFibGVfbWFzazsKPiArCUk5MTVfV1JJVEUoSU1SLCBkZXZfcHJpdi0+aXJxX21hc2spOwo+ ICAgfQo+Cj4gLXN0YXRpYyBib29sCj4gLWk4eHhfcmluZ19nZXRfaXJxKHN0cnVjdCBpbnRlbF9l bmdpbmVfY3MgKmVuZ2luZSkKPiArc3RhdGljIHZvaWQKPiAraTh4eF9yaW5nX2VuYWJsZV9pcnEo c3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKPiAtCXVuc2lnbmVkIGxvbmcgZmxh Z3M7Cj4KPiAtCWlmICghaW50ZWxfaXJxc19lbmFibGVkKGRldl9wcml2KSkKPiAtCQlyZXR1cm4g ZmFsc2U7Cj4gLQo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnFfbG9jaywgZmxh Z3MpOwo+IC0JaWYgKGVuZ2luZS0+aXJxX3JlZmNvdW50KysgPT0gMCkgewo+IC0JCWRldl9wcml2 LT5pcnFfbWFzayAmPSB+ZW5naW5lLT5pcnFfZW5hYmxlX21hc2s7Cj4gLQkJSTkxNV9XUklURTE2 KElNUiwgZGV2X3ByaXYtPmlycV9tYXNrKTsKPiAtCQlQT1NUSU5HX1JFQUQxNihJTVIpOwo+IC0J fQo+IC0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFncyk7 Cj4gLQo+IC0JcmV0dXJuIHRydWU7Cj4gKwlkZXZfcHJpdi0+aXJxX21hc2sgJj0gfmVuZ2luZS0+ aXJxX2VuYWJsZV9tYXNrOwo+ICsJSTkxNV9XUklURTE2KElNUiwgZGV2X3ByaXYtPmlycV9tYXNr KTsKPiArCVBPU1RJTkdfUkVBRDE2KFJJTkdfSU1SKGVuZ2luZS0+bW1pb19iYXNlKSk7Cj4gICB9 Cj4KPiAgIHN0YXRpYyB2b2lkCj4gLWk4eHhfcmluZ19wdXRfaXJxKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSkKPiAraTh4eF9yaW5nX2Rpc2FibGVfaXJxKHN0cnVjdCBpbnRlbF9lbmdp bmVfY3MgKmVuZ2luZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBlbmdpbmUtPmk5MTU7Cj4gLQl1bnNpZ25lZCBsb25nIGZsYWdzOwo+Cj4gLQlzcGluX2xv Y2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFncyk7Cj4gLQlpZiAoLS1lbmdpbmUt PmlycV9yZWZjb3VudCA9PSAwKSB7Cj4gLQkJZGV2X3ByaXYtPmlycV9tYXNrIHw9IGVuZ2luZS0+ aXJxX2VuYWJsZV9tYXNrOwo+IC0JCUk5MTVfV1JJVEUxNihJTVIsIGRldl9wcml2LT5pcnFfbWFz ayk7Cj4gLQkJUE9TVElOR19SRUFEMTYoSU1SKTsKPiAtCX0KPiAtCXNwaW5fdW5sb2NrX2lycXJl c3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywgZmxhZ3MpOwo+ICsJZGV2X3ByaXYtPmlycV9tYXNr IHw9IGVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrOwo+ICsJSTkxNV9XUklURTE2KElNUiwgZGV2X3By aXYtPmlycV9tYXNrKTsKPiAgIH0KPgo+ICAgc3RhdGljIGludAo+IEBAIC0xNjg4LDEyMiArMTYz OSw3NCBAQCBpOXh4X2FkZF9yZXF1ZXN0KHN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVx KQo+ICAgCXJldHVybiAwOwo+ICAgfQo+Cj4gLXN0YXRpYyBib29sCj4gLWdlbjZfcmluZ19nZXRf aXJxKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiArc3RhdGljIHZvaWQKPiArZ2Vu Nl9yaW5nX2VuYWJsZV9pcnEoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqZW5naW5lKQo+ICAgewo+ ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGVuZ2luZS0+aTkxNTsKPiAt CXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gLQo+IC0JaWYgKFdBUk5fT04oIWludGVsX2lycXNfZW5h YmxlZChkZXZfcHJpdikpKQo+IC0JCXJldHVybiBmYWxzZTsKPgo+IC0Jc3Bpbl9sb2NrX2lycXNh dmUoJmRldl9wcml2LT5pcnFfbG9jaywgZmxhZ3MpOwo+IC0JaWYgKGVuZ2luZS0+aXJxX3JlZmNv dW50KysgPT0gMCkgewo+IC0JCWlmIChIQVNfTDNfRFBGKGRldl9wcml2KSAmJiBlbmdpbmUtPmlk ID09IFJDUykKPiAtCQkJSTkxNV9XUklURV9JTVIoZW5naW5lLAo+IC0JCQkJICAgICAgIH4oZW5n aW5lLT5pcnFfZW5hYmxlX21hc2sgfAo+IC0JCQkJCSBHVF9QQVJJVFlfRVJST1IoZGV2X3ByaXYp KSk7Cj4gLQkJZWxzZQo+IC0JCQlJOTE1X1dSSVRFX0lNUihlbmdpbmUsIH5lbmdpbmUtPmlycV9l bmFibGVfbWFzayk7Cj4gLQkJZ2VuNV9lbmFibGVfZ3RfaXJxKGRldl9wcml2LCBlbmdpbmUtPmly cV9lbmFibGVfbWFzayk7Cj4gLQl9Cj4gLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJp di0+aXJxX2xvY2ssIGZsYWdzKTsKPiAtCj4gLQlyZXR1cm4gdHJ1ZTsKPiArCWlmIChIQVNfTDNf RFBGKGRldl9wcml2KSAmJiBlbmdpbmUtPmlkID09IFJDUykKPiArCQlJOTE1X1dSSVRFX0lNUihl bmdpbmUsCj4gKwkJCSAgICAgICB+KGVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrIHwKPiArCQkJCSBH VF9QQVJJVFlfRVJST1IoZGV2X3ByaXYpKSk7Cj4gKwllbHNlCj4gKwkJSTkxNV9XUklURV9JTVIo ZW5naW5lLCB+ZW5naW5lLT5pcnFfZW5hYmxlX21hc2spOwo+ICsJZ2VuNV9lbmFibGVfZ3RfaXJx KGRldl9wcml2LCBlbmdpbmUtPmlycV9lbmFibGVfbWFzayk7Cj4gICB9Cj4KPiAgIHN0YXRpYyB2 b2lkCj4gLWdlbjZfcmluZ19wdXRfaXJxKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK PiArZ2VuNl9yaW5nX2Rpc2FibGVfaXJxKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK PiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5 MTU7Cj4gLQl1bnNpZ25lZCBsb25nIGZsYWdzOwo+Cj4gLQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2 X3ByaXYtPmlycV9sb2NrLCBmbGFncyk7Cj4gLQlpZiAoLS1lbmdpbmUtPmlycV9yZWZjb3VudCA9 PSAwKSB7Cj4gLQkJaWYgKEhBU19MM19EUEYoZGV2X3ByaXYpICYmIGVuZ2luZS0+aWQgPT0gUkNT KQo+IC0JCQlJOTE1X1dSSVRFX0lNUihlbmdpbmUsIH5HVF9QQVJJVFlfRVJST1IoZGV2X3ByaXYp KTsKPiAtCQllbHNlCj4gLQkJCUk5MTVfV1JJVEVfSU1SKGVuZ2luZSwgfjApOwo+IC0JCWdlbjVf ZGlzYWJsZV9ndF9pcnEoZGV2X3ByaXYsIGVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrKTsKPiAtCX0K PiAtCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywgZmxhZ3MpOwo+ ICsJaWYgKEhBU19MM19EUEYoZGV2X3ByaXYpICYmIGVuZ2luZS0+aWQgPT0gUkNTKQo+ICsJCUk5 MTVfV1JJVEVfSU1SKGVuZ2luZSwgfkdUX1BBUklUWV9FUlJPUihkZXZfcHJpdikpOwo+ICsJZWxz ZQo+ICsJCUk5MTVfV1JJVEVfSU1SKGVuZ2luZSwgfjApOwo+ICsJZ2VuNV9kaXNhYmxlX2d0X2ly cShkZXZfcHJpdiwgZW5naW5lLT5pcnFfZW5hYmxlX21hc2spOwo+ICAgfQo+Cj4gLXN0YXRpYyBi b29sCj4gLWhzd192ZWJveF9nZXRfaXJxKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkK PiArc3RhdGljIHZvaWQKPiAraHN3X3ZlYm94X2VuYWJsZV9pcnEoc3RydWN0IGludGVsX2VuZ2lu ZV9jcyAqZW5naW5lKQo+ICAgewo+ICAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGVuZ2luZS0+aTkxNTsKPiAtCXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gLQo+IC0JaWYgKFdB Uk5fT04oIWludGVsX2lycXNfZW5hYmxlZChkZXZfcHJpdikpKQo+IC0JCXJldHVybiBmYWxzZTsK Pgo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnFfbG9jaywgZmxhZ3MpOwo+IC0J aWYgKGVuZ2luZS0+aXJxX3JlZmNvdW50KysgPT0gMCkgewo+IC0JCUk5MTVfV1JJVEVfSU1SKGVu Z2luZSwgfmVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrKTsKPiAtCQlnZW42X2VuYWJsZV9wbV9pcnEo ZGV2X3ByaXYsIGVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrKTsKPiAtCX0KPiAtCXNwaW5fdW5sb2Nr X2lycXJlc3RvcmUoJmRldl9wcml2LT5pcnFfbG9jaywgZmxhZ3MpOwo+IC0KPiAtCXJldHVybiB0 cnVlOwo+ICsJSTkxNV9XUklURV9JTVIoZW5naW5lLCB+ZW5naW5lLT5pcnFfZW5hYmxlX21hc2sp Owo+ICsJZ2VuNl9lbmFibGVfcG1faXJxKGRldl9wcml2LCBlbmdpbmUtPmlycV9lbmFibGVfbWFz ayk7Cj4gICB9Cj4KPiAgIHN0YXRpYyB2b2lkCj4gLWhzd192ZWJveF9wdXRfaXJxKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAraHN3X3ZlYm94X2Rpc2FibGVfaXJxKHN0cnVjdCBp bnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7Cj4gLQl1bnNpZ25lZCBsb25nIGZsYWdzOwo+Cj4g LQlzcGluX2xvY2tfaXJxc2F2ZSgmZGV2X3ByaXYtPmlycV9sb2NrLCBmbGFncyk7Cj4gLQlpZiAo LS1lbmdpbmUtPmlycV9yZWZjb3VudCA9PSAwKSB7Cj4gLQkJSTkxNV9XUklURV9JTVIoZW5naW5l LCB+MCk7Cj4gLQkJZ2VuNl9kaXNhYmxlX3BtX2lycShkZXZfcHJpdiwgZW5naW5lLT5pcnFfZW5h YmxlX21hc2spOwo+IC0JfQo+IC0Jc3Bpbl91bmxvY2tfaXJxcmVzdG9yZSgmZGV2X3ByaXYtPmly cV9sb2NrLCBmbGFncyk7Cj4gKwlJOTE1X1dSSVRFX0lNUihlbmdpbmUsIH4wKTsKPiArCWdlbjZf ZGlzYWJsZV9wbV9pcnEoZGV2X3ByaXYsIGVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrKTsKPiAgIH0K Pgo+IC1zdGF0aWMgYm9vbAo+IC1nZW44X3JpbmdfZ2V0X2lycShzdHJ1Y3QgaW50ZWxfZW5naW5l X2NzICplbmdpbmUpCj4gK3N0YXRpYyB2b2lkCj4gK2dlbjhfcmluZ19lbmFibGVfaXJxKHN0cnVj dCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2luZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBlbmdpbmUtPmk5MTU7Cj4gLQl1bnNpZ25lZCBsb25nIGZsYWdzOwo+ Cj4gLQlpZiAoV0FSTl9PTighaW50ZWxfaXJxc19lbmFibGVkKGRldl9wcml2KSkpCj4gLQkJcmV0 dXJuIGZhbHNlOwo+IC0KPiAtCXNwaW5fbG9ja19pcnFzYXZlKCZkZXZfcHJpdi0+aXJxX2xvY2ss IGZsYWdzKTsKPiAtCWlmIChlbmdpbmUtPmlycV9yZWZjb3VudCsrID09IDApIHsKPiAtCQlpZiAo SEFTX0wzX0RQRihkZXZfcHJpdikgJiYgZW5naW5lLT5pZCA9PSBSQ1MpIHsKPiAtCQkJSTkxNV9X UklURV9JTVIoZW5naW5lLAo+IC0JCQkJICAgICAgIH4oZW5naW5lLT5pcnFfZW5hYmxlX21hc2sg fAo+IC0JCQkJCSBHVF9SRU5ERVJfTDNfUEFSSVRZX0VSUk9SX0lOVEVSUlVQVCkpOwo+IC0JCX0g ZWxzZSB7Cj4gLQkJCUk5MTVfV1JJVEVfSU1SKGVuZ2luZSwgfmVuZ2luZS0+aXJxX2VuYWJsZV9t YXNrKTsKPiAtCQl9Cj4gLQkJUE9TVElOR19SRUFEKFJJTkdfSU1SKGVuZ2luZS0+bW1pb19iYXNl KSk7Cj4gLQl9Cj4gLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+aXJxX2xvY2ss IGZsYWdzKTsKPiAtCj4gLQlyZXR1cm4gdHJ1ZTsKPiArCWlmIChIQVNfTDNfRFBGKGRldl9wcml2 KSAmJiBlbmdpbmUtPmlkID09IFJDUykKPiArCQlJOTE1X1dSSVRFX0lNUihlbmdpbmUsCj4gKwkJ CSAgICAgICB+KGVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrIHwKPiArCQkJCSBHVF9SRU5ERVJfTDNf UEFSSVRZX0VSUk9SX0lOVEVSUlVQVCkpOwo+ICsJZWxzZQo+ICsJCUk5MTVfV1JJVEVfSU1SKGVu Z2luZSwgfmVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrKTsKPiArCVBPU1RJTkdfUkVBRF9GVyhSSU5H X0lNUihlbmdpbmUtPm1taW9fYmFzZSkpOwo+ICAgfQo+Cj4gICBzdGF0aWMgdm9pZAo+IC1nZW44 X3JpbmdfcHV0X2lycShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gK2dlbjhfcmlu Z19kaXNhYmxlX2lycShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCj4gICB7Cj4gICAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZW5naW5lLT5pOTE1Owo+IC0JdW5z aWduZWQgbG9uZyBmbGFnczsKPgo+IC0Jc3Bpbl9sb2NrX2lycXNhdmUoJmRldl9wcml2LT5pcnFf bG9jaywgZmxhZ3MpOwo+IC0JaWYgKC0tZW5naW5lLT5pcnFfcmVmY291bnQgPT0gMCkgewo+IC0J CWlmIChIQVNfTDNfRFBGKGRldl9wcml2KSAmJiBlbmdpbmUtPmlkID09IFJDUykgewo+IC0JCQlJ OTE1X1dSSVRFX0lNUihlbmdpbmUsCj4gLQkJCQkgICAgICAgfkdUX1JFTkRFUl9MM19QQVJJVFlf RVJST1JfSU5URVJSVVBUKTsKPiAtCQl9IGVsc2Ugewo+IC0JCQlJOTE1X1dSSVRFX0lNUihlbmdp bmUsIH4wKTsKPiAtCQl9Cj4gLQkJUE9TVElOR19SRUFEKFJJTkdfSU1SKGVuZ2luZS0+bW1pb19i YXNlKSk7Cj4gLQl9Cj4gLQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXZfcHJpdi0+aXJxX2xv Y2ssIGZsYWdzKTsKPiArCWlmIChIQVNfTDNfRFBGKGRldl9wcml2KSAmJiBlbmdpbmUtPmlkID09 IFJDUykKPiArCQlJOTE1X1dSSVRFX0lNUihlbmdpbmUsCj4gKwkJCSAgICAgICB+R1RfUkVOREVS X0wzX1BBUklUWV9FUlJPUl9JTlRFUlJVUFQpOwo+ICsJZWxzZQo+ICsJCUk5MTVfV1JJVEVfSU1S KGVuZ2luZSwgfjApOwo+ICAgfQo+Cj4gICBzdGF0aWMgaW50Cj4gQEAgLTI3MzksOCArMjY0Miw4 IEBAIGludCBpbnRlbF9pbml0X3JlbmRlcl9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQo+ICAgCQllbmdpbmUtPmluaXRfY29udGV4dCA9IGludGVsX3Jjc19jdHhfaW5pdDsKPiAg IAkJZW5naW5lLT5hZGRfcmVxdWVzdCA9IGdlbjhfcmVuZGVyX2FkZF9yZXF1ZXN0Owo+ICAgCQll bmdpbmUtPmZsdXNoID0gZ2VuOF9yZW5kZXJfcmluZ19mbHVzaDsKPiAtCQllbmdpbmUtPmlycV9n ZXQgPSBnZW44X3JpbmdfZ2V0X2lycTsKPiAtCQllbmdpbmUtPmlycV9wdXQgPSBnZW44X3Jpbmdf cHV0X2lycTsKPiArCQllbmdpbmUtPmlycV9lbmFibGUgPSBnZW44X3JpbmdfZW5hYmxlX2lycTsK PiArCQllbmdpbmUtPmlycV9kaXNhYmxlID0gZ2VuOF9yaW5nX2Rpc2FibGVfaXJxOwo+ICAgCQll bmdpbmUtPmlycV9lbmFibGVfbWFzayA9IEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVDsKPiAgIAkJ aWYgKGk5MTVfc2VtYXBob3JlX2lzX2VuYWJsZWQoZGV2X3ByaXYpKSB7Cj4gICAJCQlXQVJOX09O KCFkZXZfcHJpdi0+c2VtYXBob3JlX29iaik7Cj4gQEAgLTI3NTQsOCArMjY1Nyw4IEBAIGludCBp bnRlbF9pbml0X3JlbmRlcl9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAg CQllbmdpbmUtPmZsdXNoID0gZ2VuN19yZW5kZXJfcmluZ19mbHVzaDsKPiAgIAkJaWYgKElTX0dF TjYoZGV2X3ByaXYpKQo+ICAgCQkJZW5naW5lLT5mbHVzaCA9IGdlbjZfcmVuZGVyX3JpbmdfZmx1 c2g7Cj4gLQkJZW5naW5lLT5pcnFfZ2V0ID0gZ2VuNl9yaW5nX2dldF9pcnE7Cj4gLQkJZW5naW5l LT5pcnFfcHV0ID0gZ2VuNl9yaW5nX3B1dF9pcnE7Cj4gKwkJZW5naW5lLT5pcnFfZW5hYmxlID0g Z2VuNl9yaW5nX2VuYWJsZV9pcnE7Cj4gKwkJZW5naW5lLT5pcnFfZGlzYWJsZSA9IGdlbjZfcmlu Z19kaXNhYmxlX2lycTsKPiAgIAkJZW5naW5lLT5pcnFfZW5hYmxlX21hc2sgPSBHVF9SRU5ERVJf VVNFUl9JTlRFUlJVUFQ7Cj4gICAJCWVuZ2luZS0+aXJxX3NlcW5vX2JhcnJpZXIgPSBnZW42X3Nl cW5vX2JhcnJpZXI7Cj4gICAJCWlmIChpOTE1X3NlbWFwaG9yZV9pc19lbmFibGVkKGRldl9wcml2 KSkgewo+IEBAIC0yNzgyLDggKzI2ODUsOCBAQCBpbnQgaW50ZWxfaW5pdF9yZW5kZXJfcmluZ19i dWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIAl9IGVsc2UgaWYgKElTX0dFTjUoZGV2 X3ByaXYpKSB7Cj4gICAJCWVuZ2luZS0+YWRkX3JlcXVlc3QgPSBpOXh4X2FkZF9yZXF1ZXN0Owo+ ICAgCQllbmdpbmUtPmZsdXNoID0gZ2VuNF9yZW5kZXJfcmluZ19mbHVzaDsKPiAtCQllbmdpbmUt PmlycV9nZXQgPSBnZW41X3JpbmdfZ2V0X2lycTsKPiAtCQllbmdpbmUtPmlycV9wdXQgPSBnZW41 X3JpbmdfcHV0X2lycTsKPiArCQllbmdpbmUtPmlycV9lbmFibGUgPSBnZW41X3JpbmdfZW5hYmxl X2lycTsKPiArCQllbmdpbmUtPmlycV9kaXNhYmxlID0gZ2VuNV9yaW5nX2Rpc2FibGVfaXJxOwo+ ICAgCQllbmdpbmUtPmlycV9zZXFub19iYXJyaWVyID0gZ2VuNV9zZXFub19iYXJyaWVyOwo+ICAg CQllbmdpbmUtPmlycV9lbmFibGVfbWFzayA9IEdUX1JFTkRFUl9VU0VSX0lOVEVSUlVQVDsKPiAg IAl9IGVsc2Ugewo+IEBAIC0yNzkzLDExICsyNjk2LDExIEBAIGludCBpbnRlbF9pbml0X3JlbmRl cl9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCQllbHNlCj4gICAJCQll bmdpbmUtPmZsdXNoID0gZ2VuNF9yZW5kZXJfcmluZ19mbHVzaDsKPiAgIAkJaWYgKElTX0dFTjIo ZGV2X3ByaXYpKSB7Cj4gLQkJCWVuZ2luZS0+aXJxX2dldCA9IGk4eHhfcmluZ19nZXRfaXJxOwo+ IC0JCQllbmdpbmUtPmlycV9wdXQgPSBpOHh4X3JpbmdfcHV0X2lycTsKPiArCQkJZW5naW5lLT5p cnFfZW5hYmxlID0gaTh4eF9yaW5nX2VuYWJsZV9pcnE7Cj4gKwkJCWVuZ2luZS0+aXJxX2Rpc2Fi bGUgPSBpOHh4X3JpbmdfZGlzYWJsZV9pcnE7Cj4gICAJCX0gZWxzZSB7Cj4gLQkJCWVuZ2luZS0+ aXJxX2dldCA9IGk5eHhfcmluZ19nZXRfaXJxOwo+IC0JCQllbmdpbmUtPmlycV9wdXQgPSBpOXh4 X3JpbmdfcHV0X2lycTsKPiArCQkJZW5naW5lLT5pcnFfZW5hYmxlID0gaTl4eF9yaW5nX2VuYWJs ZV9pcnE7Cj4gKwkJCWVuZ2luZS0+aXJxX2Rpc2FibGUgPSBpOXh4X3JpbmdfZGlzYWJsZV9pcnE7 Cj4gICAJCX0KPiAgIAkJZW5naW5lLT5pcnFfZW5hYmxlX21hc2sgPSBJOTE1X1VTRVJfSU5URVJS VVBUOwo+ICAgCX0KPiBAQCAtMjg1Nyw4ICsyNzYwLDggQEAgaW50IGludGVsX2luaXRfYnNkX3Jp bmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJCWlmIChJTlRFTF9HRU4oZGV2 X3ByaXYpID49IDgpIHsKPiAgIAkJCWVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrID0KPiAgIAkJCQlH VF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9WQ1MxX0lSUV9TSElGVDsKPiAtCQkJZW5n aW5lLT5pcnFfZ2V0ID0gZ2VuOF9yaW5nX2dldF9pcnE7Cj4gLQkJCWVuZ2luZS0+aXJxX3B1dCA9 IGdlbjhfcmluZ19wdXRfaXJxOwo+ICsJCQllbmdpbmUtPmlycV9lbmFibGUgPSBnZW44X3Jpbmdf ZW5hYmxlX2lycTsKPiArCQkJZW5naW5lLT5pcnFfZGlzYWJsZSA9IGdlbjhfcmluZ19kaXNhYmxl X2lycTsKPiAgIAkJCWVuZ2luZS0+ZGlzcGF0Y2hfZXhlY2J1ZmZlciA9Cj4gICAJCQkJZ2VuOF9y aW5nX2Rpc3BhdGNoX2V4ZWNidWZmZXI7Cj4gICAJCQlpZiAoaTkxNV9zZW1hcGhvcmVfaXNfZW5h YmxlZChkZXZfcHJpdikpIHsKPiBAQCAtMjg2OCw4ICsyNzcxLDggQEAgaW50IGludGVsX2luaXRf YnNkX3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJCQl9Cj4gICAJCX0g ZWxzZSB7Cj4gICAJCQllbmdpbmUtPmlycV9lbmFibGVfbWFzayA9IEdUX0JTRF9VU0VSX0lOVEVS UlVQVDsKPiAtCQkJZW5naW5lLT5pcnFfZ2V0ID0gZ2VuNl9yaW5nX2dldF9pcnE7Cj4gLQkJCWVu Z2luZS0+aXJxX3B1dCA9IGdlbjZfcmluZ19wdXRfaXJxOwo+ICsJCQllbmdpbmUtPmlycV9lbmFi bGUgPSBnZW42X3JpbmdfZW5hYmxlX2lycTsKPiArCQkJZW5naW5lLT5pcnFfZGlzYWJsZSA9IGdl bjZfcmluZ19kaXNhYmxlX2lycTsKPiAgIAkJCWVuZ2luZS0+ZGlzcGF0Y2hfZXhlY2J1ZmZlciA9 Cj4gICAJCQkJZ2VuNl9yaW5nX2Rpc3BhdGNoX2V4ZWNidWZmZXI7Cj4gICAJCQlpZiAoaTkxNV9z ZW1hcGhvcmVfaXNfZW5hYmxlZChkZXZfcHJpdikpIHsKPiBAQCAtMjg5MywxMyArMjc5NiwxMyBA QCBpbnQgaW50ZWxfaW5pdF9ic2RfcmluZ19idWZmZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikK PiAgIAkJZW5naW5lLT5hZGRfcmVxdWVzdCA9IGk5eHhfYWRkX3JlcXVlc3Q7Cj4gICAJCWlmIChJ U19HRU41KGRldl9wcml2KSkgewo+ICAgCQkJZW5naW5lLT5pcnFfZW5hYmxlX21hc2sgPSBJTEtf QlNEX1VTRVJfSU5URVJSVVBUOwo+IC0JCQllbmdpbmUtPmlycV9nZXQgPSBnZW41X3JpbmdfZ2V0 X2lycTsKPiAtCQkJZW5naW5lLT5pcnFfcHV0ID0gZ2VuNV9yaW5nX3B1dF9pcnE7Cj4gKwkJCWVu Z2luZS0+aXJxX2VuYWJsZSA9IGdlbjVfcmluZ19lbmFibGVfaXJxOwo+ICsJCQllbmdpbmUtPmly cV9kaXNhYmxlID0gZ2VuNV9yaW5nX2Rpc2FibGVfaXJxOwo+ICAgCQkJZW5naW5lLT5pcnFfc2Vx bm9fYmFycmllciA9IGdlbjVfc2Vxbm9fYmFycmllcjsKPiAgIAkJfSBlbHNlIHsKPiAgIAkJCWVu Z2luZS0+aXJxX2VuYWJsZV9tYXNrID0gSTkxNV9CU0RfVVNFUl9JTlRFUlJVUFQ7Cj4gLQkJCWVu Z2luZS0+aXJxX2dldCA9IGk5eHhfcmluZ19nZXRfaXJxOwo+IC0JCQllbmdpbmUtPmlycV9wdXQg PSBpOXh4X3JpbmdfcHV0X2lycTsKPiArCQkJZW5naW5lLT5pcnFfZW5hYmxlID0gaTl4eF9yaW5n X2VuYWJsZV9pcnE7Cj4gKwkJCWVuZ2luZS0+aXJxX2Rpc2FibGUgPSBpOXh4X3JpbmdfZGlzYWJs ZV9pcnE7Cj4gICAJCX0KPiAgIAkJZW5naW5lLT5kaXNwYXRjaF9leGVjYnVmZmVyID0gaTk2NV9k aXNwYXRjaF9leGVjYnVmZmVyOwo+ICAgCX0KPiBAQCAtMjkyOCw4ICsyODMxLDggQEAgaW50IGlu dGVsX2luaXRfYnNkMl9yaW5nX2J1ZmZlcihzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAgCWVu Z2luZS0+aXJxX3NlcW5vX2JhcnJpZXIgPSBnZW42X3NlcW5vX2JhcnJpZXI7Cj4gICAJZW5naW5l LT5pcnFfZW5hYmxlX21hc2sgPQo+ICAgCQkJR1RfUkVOREVSX1VTRVJfSU5URVJSVVBUIDw8IEdF TjhfVkNTMl9JUlFfU0hJRlQ7Cj4gLQllbmdpbmUtPmlycV9nZXQgPSBnZW44X3JpbmdfZ2V0X2ly cTsKPiAtCWVuZ2luZS0+aXJxX3B1dCA9IGdlbjhfcmluZ19wdXRfaXJxOwo+ICsJZW5naW5lLT5p cnFfZW5hYmxlID0gZ2VuOF9yaW5nX2VuYWJsZV9pcnE7Cj4gKwllbmdpbmUtPmlycV9kaXNhYmxl ID0gZ2VuOF9yaW5nX2Rpc2FibGVfaXJxOwo+ICAgCWVuZ2luZS0+ZGlzcGF0Y2hfZXhlY2J1ZmZl ciA9Cj4gICAJCQlnZW44X3JpbmdfZGlzcGF0Y2hfZXhlY2J1ZmZlcjsKPiAgIAlpZiAoaTkxNV9z ZW1hcGhvcmVfaXNfZW5hYmxlZChkZXZfcHJpdikpIHsKPiBAQCAtMjk2MCw4ICsyODYzLDggQEAg aW50IGludGVsX2luaXRfYmx0X3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4g ICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkgewo+ICAgCQllbmdpbmUtPmlycV9lbmFi bGVfbWFzayA9Cj4gICAJCQlHVF9SRU5ERVJfVVNFUl9JTlRFUlJVUFQgPDwgR0VOOF9CQ1NfSVJR X1NISUZUOwo+IC0JCWVuZ2luZS0+aXJxX2dldCA9IGdlbjhfcmluZ19nZXRfaXJxOwo+IC0JCWVu Z2luZS0+aXJxX3B1dCA9IGdlbjhfcmluZ19wdXRfaXJxOwo+ICsJCWVuZ2luZS0+aXJxX2VuYWJs ZSA9IGdlbjhfcmluZ19lbmFibGVfaXJxOwo+ICsJCWVuZ2luZS0+aXJxX2Rpc2FibGUgPSBnZW44 X3JpbmdfZGlzYWJsZV9pcnE7Cj4gICAJCWVuZ2luZS0+ZGlzcGF0Y2hfZXhlY2J1ZmZlciA9IGdl bjhfcmluZ19kaXNwYXRjaF9leGVjYnVmZmVyOwo+ICAgCQlpZiAoaTkxNV9zZW1hcGhvcmVfaXNf ZW5hYmxlZChkZXZfcHJpdikpIHsKPiAgIAkJCWVuZ2luZS0+c2VtYXBob3JlLnN5bmNfdG8gPSBn ZW44X3Jpbmdfc3luYzsKPiBAQCAtMjk3MCw4ICsyODczLDggQEAgaW50IGludGVsX2luaXRfYmx0 X3JpbmdfYnVmZmVyKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gICAJCX0KPiAgIAl9IGVsc2Ug ewo+ICAgCQllbmdpbmUtPmlycV9lbmFibGVfbWFzayA9IEdUX0JMVF9VU0VSX0lOVEVSUlVQVDsK PiAtCQllbmdpbmUtPmlycV9nZXQgPSBnZW42X3JpbmdfZ2V0X2lycTsKPiAtCQllbmdpbmUtPmly cV9wdXQgPSBnZW42X3JpbmdfcHV0X2lycTsKPiArCQllbmdpbmUtPmlycV9lbmFibGUgPSBnZW42 X3JpbmdfZW5hYmxlX2lycTsKPiArCQllbmdpbmUtPmlycV9kaXNhYmxlID0gZ2VuNl9yaW5nX2Rp c2FibGVfaXJxOwo+ICAgCQllbmdpbmUtPmRpc3BhdGNoX2V4ZWNidWZmZXIgPSBnZW42X3Jpbmdf ZGlzcGF0Y2hfZXhlY2J1ZmZlcjsKPiAgIAkJaWYgKGk5MTVfc2VtYXBob3JlX2lzX2VuYWJsZWQo ZGV2X3ByaXYpKSB7Cj4gICAJCQllbmdpbmUtPnNlbWFwaG9yZS5zaWduYWwgPSBnZW42X3NpZ25h bDsKPiBAQCAtMzAxOSw4ICsyOTIyLDggQEAgaW50IGludGVsX2luaXRfdmVib3hfcmluZ19idWZm ZXIoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+ PSA4KSB7Cj4gICAJCWVuZ2luZS0+aXJxX2VuYWJsZV9tYXNrID0KPiAgIAkJCUdUX1JFTkRFUl9V U0VSX0lOVEVSUlVQVCA8PCBHRU44X1ZFQ1NfSVJRX1NISUZUOwo+IC0JCWVuZ2luZS0+aXJxX2dl dCA9IGdlbjhfcmluZ19nZXRfaXJxOwo+IC0JCWVuZ2luZS0+aXJxX3B1dCA9IGdlbjhfcmluZ19w dXRfaXJxOwo+ICsJCWVuZ2luZS0+aXJxX2VuYWJsZSA9IGdlbjhfcmluZ19lbmFibGVfaXJxOwo+ ICsJCWVuZ2luZS0+aXJxX2Rpc2FibGUgPSBnZW44X3JpbmdfZGlzYWJsZV9pcnE7Cj4gICAJCWVu Z2luZS0+ZGlzcGF0Y2hfZXhlY2J1ZmZlciA9IGdlbjhfcmluZ19kaXNwYXRjaF9leGVjYnVmZmVy Owo+ICAgCQlpZiAoaTkxNV9zZW1hcGhvcmVfaXNfZW5hYmxlZChkZXZfcHJpdikpIHsKPiAgIAkJ CWVuZ2luZS0+c2VtYXBob3JlLnN5bmNfdG8gPSBnZW44X3Jpbmdfc3luYzsKPiBAQCAtMzAyOSw4 ICsyOTMyLDggQEAgaW50IGludGVsX2luaXRfdmVib3hfcmluZ19idWZmZXIoc3RydWN0IGRybV9k ZXZpY2UgKmRldikKPiAgIAkJfQo+ICAgCX0gZWxzZSB7Cj4gICAJCWVuZ2luZS0+aXJxX2VuYWJs ZV9tYXNrID0gUE1fVkVCT1hfVVNFUl9JTlRFUlJVUFQ7Cj4gLQkJZW5naW5lLT5pcnFfZ2V0ID0g aHN3X3ZlYm94X2dldF9pcnE7Cj4gLQkJZW5naW5lLT5pcnFfcHV0ID0gaHN3X3ZlYm94X3B1dF9p cnE7Cj4gKwkJZW5naW5lLT5pcnFfZW5hYmxlID0gaHN3X3ZlYm94X2VuYWJsZV9pcnE7Cj4gKwkJ ZW5naW5lLT5pcnFfZGlzYWJsZSA9IGhzd192ZWJveF9kaXNhYmxlX2lycTsKPiAgIAkJZW5naW5l LT5kaXNwYXRjaF9leGVjYnVmZmVyID0gZ2VuNl9yaW5nX2Rpc3BhdGNoX2V4ZWNidWZmZXI7Cj4g ICAJCWlmIChpOTE1X3NlbWFwaG9yZV9pc19lbmFibGVkKGRldl9wcml2KSkgewo+ICAgCQkJZW5n aW5lLT5zZW1hcGhvcmUuc3luY190byA9IGdlbjZfcmluZ19zeW5jOwo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBpbmRleCA1ZjdjYjNkMGVhMWMuLjE4MmNhZTc2N2Jm MSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmgKPiBAQCAtMjAx LDExICsyMDEsMTAgQEAgc3RydWN0IGludGVsX2VuZ2luZV9jcyB7Cj4gICAJc3RydWN0IGludGVs X2h3X3N0YXR1c19wYWdlIHN0YXR1c19wYWdlOwo+ICAgCXN0cnVjdCBpOTE1X2N0eF93b3JrYXJv dW5kcyB3YV9jdHg7Cj4KPiAtCXVuc2lnbmVkIGlycV9yZWZjb3VudDsgLyogcHJvdGVjdGVkIGJ5 IGRldl9wcml2LT5pcnFfbG9jayAqLwo+ICAgCWJvb2wJCWlycV9wb3N0ZWQ7Cj4gICAJdTMyCQlp cnFfZW5hYmxlX21hc2s7CS8qIGJpdG1hc2sgdG8gZW5hYmxlIHJpbmcgaW50ZXJydXB0ICovCj4g LQlib29sIF9fbXVzdF9jaGVjayAoKmlycV9nZXQpKHN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKnJp bmcpOwo+IC0Jdm9pZAkJKCppcnFfcHV0KShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsK PiArCXZvaWQJCSgqaXJxX2VuYWJsZSkoc3RydWN0IGludGVsX2VuZ2luZV9jcyAqcmluZyk7Cj4g Kwl2b2lkCQkoKmlycV9kaXNhYmxlKShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKPgo+ ICAgCWludAkJKCppbml0X2h3KShzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKTsKPgo+CgpT b21lIG1vcmUgaW5zdGFuY2VzIG9mIHRoaW5ncyBJJ3ZlIGFscmVhZHkgYXNrZWQgYWJvdXQuCgpB cGFydCBmcm9tIHRob3NlIG9wZW5zIGxvb2tzIE9LLgoKUmVnYXJkcywKClR2cnRrbwpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK