From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 04/22] drm/i915: Make HAS_DDI and HAS_PCH_LPT_LP only take dev_priv Date: Wed, 5 Oct 2016 20:16:39 +0300 Message-ID: <20161005171638.GG4329@intel.com> References: <1475670829-14025-1-git-send-email-tvrtko.ursulin@linux.intel.com> <1475670829-14025-5-git-send-email-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6F31C6E8FD for ; Wed, 5 Oct 2016 17:16:42 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1475670829-14025-5-git-send-email-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Tvrtko Ursulin Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBPY3QgMDUsIDIwMTYgYXQgMDE6MzM6MzFQTSArMDEwMCwgVHZydGtvIFVyc3VsaW4g d3JvdGU6Cj4gRnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4K PiAKPiBUaGlzIHNhdmVzIDMyNDggYnl0ZXMgb2YgLnJvZGF0YSBzdHJpbmdzLgo+IAo+IFNpZ25l ZC1vZmYtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRlbC5jb20+Cj4gLS0t Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgfCAgOCArKystLS0KPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMgICAgICB8IDEwICsrKy0tLS0KPiAgZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jICB8IDQ5ICsrKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAg ICAgfCAxNiArKysrKystLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9t Z3IuYyB8ICA0ICstLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMgICAgIHwg MTAgKysrLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jICAgICAgIHwgIDQg Ky0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jICAgICAgfCAgOCArKystLS0K PiAgOCBmaWxlcyBjaGFuZ2VkLCA1NiBpbnNlcnRpb25zKCspLCA1MyBkZWxldGlvbnMoLSkKPiAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiBpbmRleCA0NjEzZjAzMWQxMjcuLjYxZTBjZjczNzRl ZCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IEBAIC0yODE3LDcgKzI4MTcsNyBAQCBz dHJ1Y3QgZHJtX2k5MTVfY21kX3RhYmxlIHsKPiAgCj4gICNkZWZpbmUgSEFTX0RQX01TVChkZXYp CShJTlRFTF9JTkZPKGRldiktPmhhc19kcF9tc3QpCj4gIAo+IC0jZGVmaW5lIEhBU19EREkoZGV2 KQkJKElOVEVMX0lORk8oZGV2KS0+aGFzX2RkaSkKPiArI2RlZmluZSBIQVNfRERJKGRldl9wcml2 KQkoZGV2X3ByaXYtPmluZm8uaGFzX2RkaSkKCigoZGV2X3ByaXYpLT4uLi4pCgo+ICAjZGVmaW5l IEhBU19GUEdBX0RCR19VTkNMQUlNRUQoZGV2KQkoSU5URUxfSU5GTyhkZXYpLT5oYXNfZnBnYV9k YmcpCj4gICNkZWZpbmUgSEFTX1BTUihkZXYpCQkoSU5URUxfSU5GTyhkZXYpLT5oYXNfcHNyKQo+ ICAjZGVmaW5lIEhBU19SVU5USU1FX1BNKGRldikJKElOVEVMX0lORk8oZGV2KS0+aGFzX3J1bnRp bWVfcG0pCj4gQEAgLTI4NTYsOCArMjg1NiwxMCBAQCBzdHJ1Y3QgZHJtX2k5MTVfY21kX3RhYmxl IHsKPiAgI2RlZmluZSBIQVNfUENIX0tCUChkZXYpIChJTlRFTF9QQ0hfVFlQRShkZXYpID09IFBD SF9LQlApCj4gICNkZWZpbmUgSEFTX1BDSF9TUFQoZGV2KSAoSU5URUxfUENIX1RZUEUoZGV2KSA9 PSBQQ0hfU1BUKQo+ICAjZGVmaW5lIEhBU19QQ0hfTFBUKGRldikgKElOVEVMX1BDSF9UWVBFKGRl dikgPT0gUENIX0xQVCkKPiAtI2RlZmluZSBIQVNfUENIX0xQVF9MUChkZXYpIChfX0k5MTVfXyhk ZXYpLT5wY2hfaWQgPT0gSU5URUxfUENIX0xQVF9MUF9ERVZJQ0VfSURfVFlQRSkKPiAtI2RlZmlu ZSBIQVNfUENIX0xQVF9IKGRldikgKF9fSTkxNV9fKGRldiktPnBjaF9pZCA9PSBJTlRFTF9QQ0hf TFBUX0RFVklDRV9JRF9UWVBFKQo+ICsjZGVmaW5lIEhBU19QQ0hfTFBUX0xQKGRldl9wcml2KSBc Cj4gKwkoZGV2X3ByaXYtPnBjaF9pZCA9PSBJTlRFTF9QQ0hfTFBUX0xQX0RFVklDRV9JRF9UWVBF KQo+ICsjZGVmaW5lIEhBU19QQ0hfTFBUX0goZGV2X3ByaXYpIFwKPiArCShkZXZfcHJpdi0+cGNo X2lkID09IElOVEVMX1BDSF9MUFRfREVWSUNFX0lEX1RZUEUpCj4gICNkZWZpbmUgSEFTX1BDSF9D UFQoZGV2KSAoSU5URUxfUENIX1RZUEUoZGV2KSA9PSBQQ0hfQ1BUKQo+ICAjZGVmaW5lIEhBU19Q Q0hfSUJYKGRldikgKElOVEVMX1BDSF9UWVBFKGRldikgPT0gUENIX0lCWCkKPiAgI2RlZmluZSBI QVNfUENIX05PUChkZXYpIChJTlRFTF9QQ0hfVFlQRShkZXYpID09IFBDSF9OT1ApCj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfY3J0LmMKPiBpbmRleCA4OGViYmRkZTE4NWEuLjIyN2VhZjI3MDIyNiAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jCj4gQEAgLTI4MCwxMyArMjgwLDEzIEBAIHN0YXRp YyBib29sIGludGVsX2NydF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPiAgCQkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ ICAJCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgewo+ IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJhc2UuZGV2Owo+ICsJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7 Cj4gIAo+IC0JaWYgKEhBU19QQ0hfU1BMSVQoZGV2KSkKPiArCWlmIChIQVNfUENIX1NQTElUKGRl dl9wcml2KSkKPiAgCQlwaXBlX2NvbmZpZy0+aGFzX3BjaF9lbmNvZGVyID0gdHJ1ZTsKPiAgCj4g IAkvKiBMUFQgRkRJIFJYIG9ubHkgc3VwcG9ydHMgOGJwYy4gKi8KPiAtCWlmIChIQVNfUENIX0xQ VChkZXYpKSB7Cj4gKwlpZiAoSEFTX1BDSF9MUFQoZGV2X3ByaXYpKSB7Cj4gIAkJaWYgKHBpcGVf Y29uZmlnLT5id19jb25zdHJhaW5lZCAmJiBwaXBlX2NvbmZpZy0+cGlwZV9icHAgPCAyNCkgewo+ ICAJCQlEUk1fREVCVUdfS01TKCJMUFQgb25seSBzdXBwb3J0cyAyNGJwcFxuIik7Cj4gIAkJCXJl dHVybiBmYWxzZTsKPiBAQCAtMjk2LDcgKzI5Niw3IEBAIHN0YXRpYyBib29sIGludGVsX2NydF9j b21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCX0KPiAgCj4g IAkvKiBGREkgbXVzdCBhbHdheXMgYmUgMi43IEdIeiAqLwo+IC0JaWYgKEhBU19EREkoZGV2KSkK PiArCWlmIChIQVNfRERJKGRldl9wcml2KSkKPiAgCQlwaXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9 IDEzNTAwMCAqIDI7Cj4gIAo+ICAJcmV0dXJuIHRydWU7Cj4gQEAgLTkxNiw3ICs5MTYsNyBAQCB2 b2lkIGludGVsX2NydF9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gIAljcnQtPmJhc2Uu ZW5hYmxlID0gaW50ZWxfZW5hYmxlX2NydDsKPiAgCWlmIChJOTE1X0hBU19IT1RQTFVHKGRldikp Cj4gIAkJY3J0LT5iYXNlLmhwZF9waW4gPSBIUERfQ1JUOwo+IC0JaWYgKEhBU19EREkoZGV2KSkg ewo+ICsJaWYgKEhBU19EREkoZGV2X3ByaXYpKSB7Cj4gIAkJY3J0LT5iYXNlLnBvcnQgPSBQT1JU X0U7Cj4gIAkJY3J0LT5iYXNlLmdldF9jb25maWcgPSBoc3dfY3J0X2dldF9jb25maWc7Cj4gIAkJ Y3J0LT5iYXNlLmdldF9od19zdGF0ZSA9IGludGVsX2RkaV9nZXRfaHdfc3RhdGU7Cj4gZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IGEzNjY2NTZiY2VjNS4uMjM1ZGYxMjNh YzUwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xMTg3LDE5 ICsxMTg3LDE3IEBAIHZvaWQgYXNzZXJ0X2ZkaV9yeF9wbGwoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAo+ICAJCQlvbm9mZihzdGF0ZSksIG9ub2ZmKGN1cl9zdGF0ZSkpOwo+ICB9 Cj4gIAo+IC12b2lkIGFzc2VydF9wYW5lbF91bmxvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4gLQkJCSAgIGVudW0gcGlwZSBwaXBlKQo+ICt2b2lkIGFzc2VydF9wYW5l bF91bmxvY2tlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGlwZSBw aXBlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2LT5kcm07Cj4g IAlpOTE1X3JlZ190IHBwX3JlZzsKPiAgCXUzMiB2YWw7Cj4gIAllbnVtIHBpcGUgcGFuZWxfcGlw ZSA9IFBJUEVfQTsKPiAgCWJvb2wgbG9ja2VkID0gdHJ1ZTsKPiAgCj4gLQlpZiAoV0FSTl9PTihI QVNfRERJKGRldikpKQo+ICsJaWYgKFdBUk5fT04oSEFTX0RESShkZXZfcHJpdikpKQo+ICAJCXJl dHVybjsKPiAgCj4gLQlpZiAoSEFTX1BDSF9TUExJVChkZXYpKSB7Cj4gKwlpZiAoSEFTX1BDSF9T UExJVChkZXZfcHJpdikpIHsKPiAgCQl1MzIgcG9ydF9zZWw7Cj4gIAo+ICAJCXBwX3JlZyA9IFBQ X0NPTlRST0woMCk7Cj4gQEAgLTEyMDksNyArMTIwNyw3IEBAIHZvaWQgYXNzZXJ0X3BhbmVsX3Vu bG9ja2VkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkgICAgSTkxNV9S RUFEKFBDSF9MVkRTKSAmIExWRFNfUElQRUJfU0VMRUNUKQo+ICAJCQlwYW5lbF9waXBlID0gUElQ RV9COwo+ICAJCS8qIFhYWDogZWxzZSBmaXggZm9yIGVEUCAqLwo+IC0JfSBlbHNlIGlmIChJU19W QUxMRVlWSUVXKGRldikgfHwgSVNfQ0hFUlJZVklFVyhkZXYpKSB7Cj4gKwl9IGVsc2UgaWYgKElT X1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJRVcoZGV2X3ByaXYpKSB7Cj4gIAkJ LyogcHJlc3VtYWJseSB3cml0ZSBsb2NrIGRlcGVuZHMgb24gcGlwZSwgbm90IHBvcnQgc2VsZWN0 ICovCj4gIAkJcHBfcmVnID0gUFBfQ09OVFJPTChwaXBlKTsKPiAgCQlwYW5lbF9waXBlID0gcGlw ZTsKPiBAQCAtNTY5NSwxMyArNTY5MywxMyBAQCBzdGF0aWMgZW51bSBpbnRlbF9kaXNwbGF5X3Bv d2VyX2RvbWFpbiBwb3J0X3RvX2F1eF9wb3dlcl9kb21haW4oZW51bSBwb3J0IHBvcnQpCj4gIGVu dW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4KPiAgaW50ZWxfZGlzcGxheV9wb3J0X3Bvd2Vy X2RvbWFpbihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikKPiAgewo+IC0Jc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2VuY29kZXItPmJhc2UuZGV2Owo+ICsJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9lbmNvZGVyLT5iYXNl LmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydDsKPiAg Cj4gIAlzd2l0Y2ggKGludGVsX2VuY29kZXItPnR5cGUpIHsKPiAgCWNhc2UgSU5URUxfT1VUUFVU X1VOS05PV046Cj4gIAkJLyogT25seSBEREkgcGxhdGZvcm1zIHNob3VsZCBldmVyIHVzZSB0aGlz IG91dHB1dCB0eXBlICovCj4gLQkJV0FSTl9PTl9PTkNFKCFIQVNfRERJKGRldikpOwo+ICsJCVdB Uk5fT05fT05DRSghSEFTX0RESShkZXZfcHJpdikpOwo+ICAJY2FzZSBJTlRFTF9PVVRQVVRfRFA6 Cj4gIAljYXNlIElOVEVMX09VVFBVVF9IRE1JOgo+ICAJY2FzZSBJTlRFTF9PVVRQVVRfRURQOgo+ IEBAIC01NzIyLDcgKzU3MjAsNyBAQCBpbnRlbF9kaXNwbGF5X3BvcnRfcG93ZXJfZG9tYWluKHN0 cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ICBlbnVtIGludGVsX2Rpc3BsYXlf cG93ZXJfZG9tYWluCj4gIGludGVsX2Rpc3BsYXlfcG9ydF9hdXhfcG93ZXJfZG9tYWluKHN0cnVj dCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVyKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gaW50ZWxfZW5jb2Rlci0+YmFzZS5kZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2VuY29kZXItPmJhc2UuZGV2KTsKPiAgCXN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0Owo+ICAKPiAgCXN3aXRjaCAo aW50ZWxfZW5jb2Rlci0+dHlwZSkgewo+IEBAIC01NzM1LDcgKzU3MzMsNyBAQCBpbnRlbF9kaXNw bGF5X3BvcnRfYXV4X3Bvd2VyX2RvbWFpbihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5j b2RlcikKPiAgCQkgKiB3aGF0J3MgdGhlIHN0YXR1cyBvZiB0aGUgZ2l2ZW4gY29ubmVjdG9ycywg cGxheSBzYWZlIGFuZAo+ICAJCSAqIHJ1biB0aGUgRFAgZGV0ZWN0aW9uIHRvby4KPiAgCQkgKi8K PiAtCQlXQVJOX09OX09OQ0UoIUhBU19EREkoZGV2KSk7Cj4gKwkJV0FSTl9PTl9PTkNFKCFIQVNf RERJKGRldl9wcml2KSk7Cj4gIAljYXNlIElOVEVMX09VVFBVVF9EUDoKPiAgCWNhc2UgSU5URUxf T1VUUFVUX0VEUDoKPiAgCQlpbnRlbF9kaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmaW50ZWxf ZW5jb2Rlci0+YmFzZSk7Cj4gQEAgLTkxOTUsNyArOTE5Myw4IEBAIHN0YXRpYyB2b2lkIGxwdF9l bmFibGVfY2xrb3V0X2RwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGJvb2wgd2l0aF9zcHJlYWQs Cj4gIAo+ICAJaWYgKFdBUk4od2l0aF9mZGkgJiYgIXdpdGhfc3ByZWFkLCAiRkRJIHJlcXVpcmVz IGRvd25zcHJlYWRcbiIpKQo+ICAJCXdpdGhfc3ByZWFkID0gdHJ1ZTsKPiAtCWlmIChXQVJOKEhB U19QQ0hfTFBUX0xQKGRldikgJiYgd2l0aF9mZGksICJMUCBQQ0ggZG9lc24ndCBoYXZlIEZESVxu IikpCj4gKwlpZiAoV0FSTihIQVNfUENIX0xQVF9MUChkZXZfcHJpdikgJiYKPiArCSAgICB3aXRo X2ZkaSwgIkxQIFBDSCBkb2Vzbid0IGhhdmUgRkRJXG4iKSkKPiAgCQl3aXRoX2ZkaSA9IGZhbHNl Owo+ICAKPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5zYl9sb2NrKTsKPiBAQCAtOTIxOCw3ICs5 MjE3LDcgQEAgc3RhdGljIHZvaWQgbHB0X2VuYWJsZV9jbGtvdXRfZHAoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwgYm9vbCB3aXRoX3NwcmVhZCwKPiAgCQl9Cj4gIAl9Cj4gIAo+IC0JcmVnID0gSEFT X1BDSF9MUFRfTFAoZGV2KSA/IFNCSV9HRU4wIDogU0JJX0RCVUZGMDsKPiArCXJlZyA9IEhBU19Q Q0hfTFBUX0xQKGRldl9wcml2KSA/IFNCSV9HRU4wIDogU0JJX0RCVUZGMDsKPiAgCXRtcCA9IGlu dGVsX3NiaV9yZWFkKGRldl9wcml2LCByZWcsIFNCSV9JQ0xLKTsKPiAgCXRtcCB8PSBTQklfR0VO MF9DRkdfQlVGRkVOQUJMRV9ESVNBQkxFOwo+ICAJaW50ZWxfc2JpX3dyaXRlKGRldl9wcml2LCBy ZWcsIHRtcCwgU0JJX0lDTEspOwo+IEBAIC05MjM0LDcgKzkyMzMsNyBAQCBzdGF0aWMgdm9pZCBs cHRfZGlzYWJsZV9jbGtvdXRfZHAoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCj4gIAltdXRl eF9sb2NrKCZkZXZfcHJpdi0+c2JfbG9jayk7Cj4gIAo+IC0JcmVnID0gSEFTX1BDSF9MUFRfTFAo ZGV2KSA/IFNCSV9HRU4wIDogU0JJX0RCVUZGMDsKPiArCXJlZyA9IEhBU19QQ0hfTFBUX0xQKGRl dl9wcml2KSA/IFNCSV9HRU4wIDogU0JJX0RCVUZGMDsKPiAgCXRtcCA9IGludGVsX3NiaV9yZWFk KGRldl9wcml2LCByZWcsIFNCSV9JQ0xLKTsKPiAgCXRtcCAmPSB+U0JJX0dFTjBfQ0ZHX0JVRkZF TkFCTEVfRElTQUJMRTsKPiAgCWludGVsX3NiaV93cml0ZShkZXZfcHJpdiwgcmVnLCB0bXAsIFNC SV9JQ0xLKTsKPiBAQCAtMTAyMDIsNyArMTAyMDEsNyBAQCB2b2lkIGhzd19lbmFibGVfcGM4KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCj4gIAlEUk1fREVCVUdfS01TKCJF bmFibGluZyBwYWNrYWdlIEM4K1xuIik7Cj4gIAo+IC0JaWYgKEhBU19QQ0hfTFBUX0xQKGRldikp IHsKPiArCWlmIChIQVNfUENIX0xQVF9MUChkZXZfcHJpdikpIHsKPiAgCQl2YWwgPSBJOTE1X1JF QUQoU09VVEhfRFNQQ0xLX0dBVEVfRCk7Cj4gIAkJdmFsICY9IH5QQ0hfTFBfUEFSVElUSU9OX0xF VkVMX0RJU0FCTEU7Cj4gIAkJSTkxNV9XUklURShTT1VUSF9EU1BDTEtfR0FURV9ELCB2YWwpOwo+ IEBAIC0xMDIyMiw3ICsxMDIyMSw3IEBAIHZvaWQgaHN3X2Rpc2FibGVfcGM4KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiAgCWhzd19yZXN0b3JlX2xjcGxsKGRldl9wcml2KTsK PiAgCWxwdF9pbml0X3BjaF9yZWZjbGsoZGV2KTsKPiAgCj4gLQlpZiAoSEFTX1BDSF9MUFRfTFAo ZGV2KSkgewo+ICsJaWYgKEhBU19QQ0hfTFBUX0xQKGRldl9wcml2KSkgewo+ICAJCXZhbCA9IEk5 MTVfUkVBRChTT1VUSF9EU1BDTEtfR0FURV9EKTsKPiAgCQl2YWwgfD0gUENIX0xQX1BBUlRJVElP Tl9MRVZFTF9ESVNBQkxFOwo+ICAJCUk5MTVfV1JJVEUoU09VVEhfRFNQQ0xLX0dBVEVfRCwgdmFs KTsKPiBAQCAtMTA4NDQsNyArMTA4NDMsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV9jdXJz b3Ioc3RydWN0IGRybV9jcnRjICpjcnRjLCB1MzIgYmFzZSwKPiAgCQl9Cj4gIAkJY250bCB8PSBw aXBlIDw8IDI4OyAvKiBDb25uZWN0IHRvIGNvcnJlY3QgcGlwZSAqLwo+ICAKPiAtCQlpZiAoSEFT X0RESShkZXYpKQo+ICsJCWlmIChIQVNfRERJKGRldl9wcml2KSkKPiAgCQkJY250bCB8PSBDVVJT T1JfUElQRV9DU0NfRU5BQkxFOwo+ICAKPiAgCQlpZiAocGxhbmVfc3RhdGUtPmJhc2Uucm90YXRp b24gPT0gRFJNX1JPVEFURV8xODApCj4gQEAgLTEyNzQ0LDYgKzEyNzQzLDcgQEAgc3RhdGljIHZv aWQgaW50ZWxfZHVtcF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCQkJ CSAgIGNvbnN0IGNoYXIgKmNvbnRleHQpCj4gIHsKPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBjcnRjLT5iYXNlLmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGV2KTsKPiAgCXN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lOwo+ICAJc3RydWN0IGlu dGVsX3BsYW5lICppbnRlbF9wbGFuZTsKPiAgCXN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqc3Rh dGU7Cj4gQEAgLTEyODI2LDcgKzEyODI2LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHVtcF9waXBl X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPiAgCQkJICAgICAgcGlwZV9jb25maWct PmRwbGxfaHdfc3RhdGUuY3RybDEsCj4gIAkJCSAgICAgIHBpcGVfY29uZmlnLT5kcGxsX2h3X3N0 YXRlLmNmZ2NyMSwKPiAgCQkJICAgICAgcGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUuY2ZnY3Iy KTsKPiAtCX0gZWxzZSBpZiAoSEFTX0RESShkZXYpKSB7Cj4gKwl9IGVsc2UgaWYgKEhBU19EREko ZGV2X3ByaXYpKSB7Cj4gIAkJRFJNX0RFQlVHX0tNUygiZHBsbF9od19zdGF0ZTogd3JwbGw6IDB4 JXggc3BsbDogMHgleFxuIiwKPiAgCQkJICAgICAgcGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGUu d3JwbGwsCj4gIAkJCSAgICAgIHBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlLnNwbGwpOwo+IEBA IC0xMjkwNCw3ICsxMjkwNCw3IEBAIHN0YXRpYyBib29sIGNoZWNrX2RpZ2l0YWxfcG9ydF9jb25m bGljdHMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAJCXN3aXRjaCAoZW5jb2Rl ci0+dHlwZSkgewo+ICAJCQl1bnNpZ25lZCBpbnQgcG9ydF9tYXNrOwo+ICAJCWNhc2UgSU5URUxf T1VUUFVUX1VOS05PV046Cj4gLQkJCWlmIChXQVJOX09OKCFIQVNfRERJKGRldikpKQo+ICsJCQlp ZiAoV0FSTl9PTighSEFTX0RESSh0b19pOTE1KGRldikpKSkKPiAgCQkJCWJyZWFrOwo+ICAJCWNh c2UgSU5URUxfT1VUUFVUX0RQOgo+ICAJCWNhc2UgSU5URUxfT1VUUFVUX0hETUk6Cj4gQEAgLTEz NzI4LDcgKzEzNzI4LDcgQEAgaW50ZWxfbW9kZXNldF92ZXJpZnlfZGlzYWJsZWQoc3RydWN0IGRy bV9kZXZpY2UgKmRldikKPiAgCj4gIHN0YXRpYyB2b2lkIHVwZGF0ZV9zY2FubGluZV9vZmZzZXQo c3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBjcnRjLT5iYXNlLmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICAKPiAgCS8qCj4gIAkgKiBUaGUgc2NhbmxpbmUg Y291bnRlciBpbmNyZW1lbnRzIGF0IHRoZSBsZWFkaW5nIGVkZ2Ugb2YgaHN5bmMuCj4gQEAgLTEz NzQ4LDcgKzEzNzQ4LDcgQEAgc3RhdGljIHZvaWQgdXBkYXRlX3NjYW5saW5lX29mZnNldChzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YykKPiAgCSAqIHRoZXJlJ3MgYW4gZXh0cmEgMSBsaW5lIGRpZmZl cmVuY2UuIFNvIHdlIG5lZWQgdG8gYWRkIHR3byBpbnN0ZWFkIG9mCj4gIAkgKiBvbmUgdG8gdGhl IHZhbHVlLgo+ICAJICovCj4gLQlpZiAoSVNfR0VOMihkZXYpKSB7Cj4gKwlpZiAoSVNfR0VOMihk ZXZfcHJpdikpIHsKPiAgCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZSA9ICZjcnRjLT5jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZTsKPiAgCQlpbnQgdnRvdGFs Owo+ICAKPiBAQCAtMTM3NTcsNyArMTM3NTcsNyBAQCBzdGF0aWMgdm9pZCB1cGRhdGVfc2Nhbmxp bmVfb2Zmc2V0KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQo+ICAJCQl2dG90YWwgLz0gMjsKPiAg Cj4gIAkJY3J0Yy0+c2NhbmxpbmVfb2Zmc2V0ID0gdnRvdGFsIC0gMTsKPiAtCX0gZWxzZSBpZiAo SEFTX0RESShkZXYpICYmCj4gKwl9IGVsc2UgaWYgKEhBU19EREkoZGV2X3ByaXYpICYmCj4gIAkJ ICAgaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjLT5jb25maWcsIElOVEVMX09VVFBVVF9IRE1JKSkg ewo+ICAJCWNydGMtPnNjYW5saW5lX29mZnNldCA9IDI7Cj4gIAl9IGVsc2UKPiBAQCAtMTUzMjYs MTEgKzE1MzI2LDEyIEBAIHN0YXRpYyBib29sIGludGVsX2NydF9wcmVzZW50KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4gIAlpZiAoSVNfQ0hFUlJZVklFVyhkZXYpKQo+ICAJCXJldHVybiBmYWxz ZTsKPiAgCj4gLQlpZiAoSEFTX1BDSF9MUFRfSChkZXYpICYmIEk5MTVfUkVBRChTRlVTRV9TVFJB UCkgJiBTRlVTRV9TVFJBUF9DUlRfRElTQUJMRUQpCj4gKwlpZiAoSEFTX1BDSF9MUFRfSChkZXZf cHJpdikgJiYKPiArCSAgICBJOTE1X1JFQUQoU0ZVU0VfU1RSQVApICYgU0ZVU0VfU1RSQVBfQ1JU X0RJU0FCTEVEKQo+ICAJCXJldHVybiBmYWxzZTsKPiAgCj4gIAkvKiBEREkgRSBjYW4ndCBiZSB1 c2VkIGlmIERESSBBIHJlcXVpcmVzIDQgbGFuZXMgKi8KPiAtCWlmIChIQVNfRERJKGRldikgJiYg STkxNV9SRUFEKERESV9CVUZfQ1RMKFBPUlRfQSkpICYgRERJX0FfNF9MQU5FUykKPiArCWlmIChI QVNfRERJKGRldl9wcml2KSAmJiBJOTE1X1JFQUQoRERJX0JVRl9DVEwoUE9SVF9BKSkgJiBERElf QV80X0xBTkVTKQo+ICAJCXJldHVybiBmYWxzZTsKPiAgCj4gIAlpZiAoIWRldl9wcml2LT52YnQu aW50X2NydF9zdXBwb3J0KQo+IEBAIC0xNTQwNCw3ICsxNTQwNSw3IEBAIHN0YXRpYyB2b2lkIGlu dGVsX3NldHVwX291dHB1dHMoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQlpbnRlbF9kZGlf aW5pdChkZXYsIFBPUlRfQyk7Cj4gIAo+ICAJCWludGVsX2RzaV9pbml0KGRldik7Cj4gLQl9IGVs c2UgaWYgKEhBU19EREkoZGV2KSkgewo+ICsJfSBlbHNlIGlmIChIQVNfRERJKGRldl9wcml2KSkg ewo+ICAJCWludCBmb3VuZDsKPiAgCj4gIAkJLyoKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBp bmRleCA1OTkyMDkzZTE4MTQuLmVkYWYzNWI5NzVjMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHAuYwo+IEBAIC0xNTY1LDcgKzE1NjUsNyBAQCBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCj4gIAltYXhfY2xvY2sgPSBjb21tb25fbGVu IC0gMTsKPiAgCj4gLQlpZiAoSEFTX1BDSF9TUExJVChkZXYpICYmICFIQVNfRERJKGRldikgJiYg cG9ydCAhPSBQT1JUX0EpCj4gKwlpZiAoSEFTX1BDSF9TUExJVChkZXZfcHJpdikgJiYgIUhBU19E REkoZGV2X3ByaXYpICYmIHBvcnQgIT0gUE9SVF9BKQo+ICAJCXBpcGVfY29uZmlnLT5oYXNfcGNo X2VuY29kZXIgPSB0cnVlOwo+ICAKPiAgCXBpcGVfY29uZmlnLT5oYXNfZHJycyA9IGZhbHNlOwo+ IEBAIC0xNzA3LDcgKzE3MDcsNyBAQCBmb3VuZDoKPiAgCQl0b19pbnRlbF9hdG9taWNfc3RhdGUo cGlwZV9jb25maWctPmJhc2Uuc3RhdGUpLT5jZGNsa19wbGxfdmNvID0gdmNvOwo+ICAJfQo+ICAK PiAtCWlmICghSEFTX0RESShkZXYpKQo+ICsJaWYgKCFIQVNfRERJKGRldl9wcml2KSkKPiAgCQlp bnRlbF9kcF9zZXRfY2xvY2soZW5jb2RlciwgcGlwZV9jb25maWcpOwo+ICAKPiAgCXJldHVybiB0 cnVlOwo+IEBAIC0yNjMyLDcgKzI2MzIsNyBAQCBfaW50ZWxfZHBfc2V0X2xpbmtfdHJhaW4oc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCwKPiAgCQlEUk1fREVCVUdfS01TKCJVc2luZyBEUCB0cmFp bmluZyBwYXR0ZXJuIFRQUyVkXG4iLAo+ICAJCQkgICAgICBkcF90cmFpbl9wYXQgJiBEUF9UUkFJ TklOR19QQVRURVJOX01BU0spOwo+ICAKPiAtCWlmIChIQVNfRERJKGRldikpIHsKPiArCWlmIChI QVNfRERJKGRldl9wcml2KSkgewo+ICAJCXVpbnQzMl90IHRlbXAgPSBJOTE1X1JFQUQoRFBfVFBf Q1RMKHBvcnQpKTsKPiAgCj4gIAkJaWYgKGRwX3RyYWluX3BhdCAmIERQX0xJTktfU0NSQU1CTElO R19ESVNBQkxFKQo+IEBAIC0zMzM5LDcgKzMzMzksNyBAQCBpbnRlbF9kcF9zZXRfc2lnbmFsX2xl dmVscyhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAJdWludDMyX3Qgc2lnbmFsX2xldmVs cywgbWFzayA9IDA7Cj4gIAl1aW50OF90IHRyYWluX3NldCA9IGludGVsX2RwLT50cmFpbl9zZXRb MF07Cj4gIAo+IC0JaWYgKEhBU19EREkoZGV2KSkgewo+ICsJaWYgKEhBU19EREkoZGV2X3ByaXYp KSB7Cj4gIAkJc2lnbmFsX2xldmVscyA9IGRkaV9zaWduYWxfbGV2ZWxzKGludGVsX2RwKTsKPiAg Cj4gIAkJaWYgKElTX0JST1hUT04oZGV2KSkKPiBAQCAtMzM5OCw3ICszMzk4LDcgQEAgdm9pZCBp bnRlbF9kcF9zZXRfaWRsZV9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4g IAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5wb3J0Owo+ICAJdWludDMyX3QgdmFs Owo+ICAKPiAtCWlmICghSEFTX0RESShkZXYpKQo+ICsJaWYgKCFIQVNfRERJKGRldl9wcml2KSkK PiAgCQlyZXR1cm47Cj4gIAo+ICAJdmFsID0gSTkxNV9SRUFEKERQX1RQX0NUTChwb3J0KSk7Cj4g QEAgLTM0MzMsNyArMzQzMyw3IEBAIGludGVsX2RwX2xpbmtfZG93bihzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwKQo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShkZXYpOwo+ICAJdWludDMyX3QgRFAgPSBpbnRlbF9kcC0+RFA7Cj4gIAo+IC0JaWYgKFdBUk5f T04oSEFTX0RESShkZXYpKSkKPiArCWlmIChXQVJOX09OKEhBU19EREkoZGV2X3ByaXYpKSkKPiAg CQlyZXR1cm47Cj4gIAo+ICAJaWYgKFdBUk5fT04oKEk5MTVfUkVBRChpbnRlbF9kcC0+b3V0cHV0 X3JlZykgJiBEUF9QT1JUX0VOKSA9PSAwKSkKPiBAQCAtNTY1OSw3ICs1NjU5LDcgQEAgaW50ZWxf ZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3Bv cnQsCj4gIAllbHNlCj4gIAkJaW50ZWxfZHAtPmdldF9hdXhfc2VuZF9jdGwgPSBnNHhfZ2V0X2F1 eF9zZW5kX2N0bDsKPiAgCj4gLQlpZiAoSEFTX0RESShkZXYpKQo+ICsJaWYgKEhBU19EREkoZGV2 X3ByaXYpKQo+ICAJCWludGVsX2RwLT5wcmVwYXJlX2xpbmtfcmV0cmFpbiA9IGludGVsX2RkaV9w cmVwYXJlX2xpbmtfcmV0cmFpbjsKPiAgCj4gIAkvKiBQcmVzZXJ2ZSB0aGUgY3VycmVudCBodyBz dGF0ZS4gKi8KPiBAQCAtNTcwMSw3ICs1NzAxLDcgQEAgaW50ZWxfZHBfaW5pdF9jb25uZWN0b3Io c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gIAo+ICAJaW50ZWxf Y29ubmVjdG9yX2F0dGFjaF9lbmNvZGVyKGludGVsX2Nvbm5lY3RvciwgaW50ZWxfZW5jb2Rlcik7 Cj4gIAo+IC0JaWYgKEhBU19EREkoZGV2KSkKPiArCWlmIChIQVNfRERJKGRldl9wcml2KSkKPiAg CQlpbnRlbF9jb25uZWN0b3ItPmdldF9od19zdGF0ZSA9IGludGVsX2RkaV9jb25uZWN0b3JfZ2V0 X2h3X3N0YXRlOwo+ICAJZWxzZQo+ICAJCWludGVsX2Nvbm5lY3Rvci0+Z2V0X2h3X3N0YXRlID0g aW50ZWxfY29ubmVjdG9yX2dldF9od19zdGF0ZTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rw bGxfbWdyLmMKPiBpbmRleCAxYzU5Y2E1MGM0MzAuLmQwYzU5YzE3OTNlZiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuYwo+IEBAIC0xODU1LDcgKzE4NTUsNyBAQCB2b2lk IGludGVsX3NoYXJlZF9kcGxsX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCQlkcGxs X21nciA9ICZza2xfcGxsX21ncjsKPiAgCWVsc2UgaWYgKElTX0JST1hUT04oZGV2KSkKPiAgCQlk cGxsX21nciA9ICZieHRfcGxsX21ncjsKPiAtCWVsc2UgaWYgKEhBU19EREkoZGV2KSkKPiArCWVs c2UgaWYgKEhBU19EREkoZGV2X3ByaXYpKQo+ICAJCWRwbGxfbWdyID0gJmhzd19wbGxfbWdyOwo+ ICAJZWxzZSBpZiAoSEFTX1BDSF9JQlgoZGV2KSB8fCBIQVNfUENIX0NQVChkZXYpKQo+ICAJCWRw bGxfbWdyID0gJnBjaF9wbGxfbWdyOwo+IEBAIC0xODgzLDcgKzE4ODMsNyBAQCB2b2lkIGludGVs X3NoYXJlZF9kcGxsX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiAgCUJVR19PTihkZXZf cHJpdi0+bnVtX3NoYXJlZF9kcGxsID4gSTkxNV9OVU1fUExMUyk7Cj4gIAo+ICAJLyogRklYTUU6 IE1vdmUgdGhpcyB0byBhIG1vcmUgc3VpdGFibGUgcGxhY2UgKi8KPiAtCWlmIChIQVNfRERJKGRl dikpCj4gKwlpZiAoSEFTX0RESShkZXZfcHJpdikpCj4gIAkJaW50ZWxfZGRpX3BsbF9pbml0KGRl dik7Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hk bWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+IGluZGV4IDhkNDZmNTgz Njc0Ni4uMDliMjE0NmYxNTdmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2hkbWkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+IEBA IC01MCw3ICs1MCw3IEBAIGFzc2VydF9oZG1pX3BvcnRfZGlzYWJsZWQoc3RydWN0IGludGVsX2hk bWkgKmludGVsX2hkbWkpCj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7Cj4gIAl1aW50MzJfdCBlbmFibGVkX2JpdHM7Cj4gIAo+IC0JZW5hYmxlZF9i aXRzID0gSEFTX0RESShkZXYpID8gRERJX0JVRl9DVExfRU5BQkxFIDogU0RWT19FTkFCTEU7Cj4g KwllbmFibGVkX2JpdHMgPSBIQVNfRERJKGRldl9wcml2KSA/IERESV9CVUZfQ1RMX0VOQUJMRSA6 IFNEVk9fRU5BQkxFOwo+ICAKPiAgCVdBUk4oSTkxNV9SRUFEKGludGVsX2hkbWktPmhkbWlfcmVn KSAmIGVuYWJsZWRfYml0cywKPiAgCSAgICAgIkhETUkgcG9ydCBlbmFibGVkLCBleHBlY3Rpbmcg ZGlzYWJsZWRcbiIpOwo+IEBAIC0xMzEyLDcgKzEzMTIsNyBAQCBib29sIGludGVsX2hkbWlfY29t cHV0ZV9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCSAgICAgICBz dHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgewo+ICAJc3RydWN0IGlu dGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaSgmZW5jb2Rlci0+YmFzZSk7 Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2 KTsKPiAgCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0gJnBpcGVfY29u ZmlnLT5iYXNlLmFkanVzdGVkX21vZGU7Cj4gIAlpbnQgY2xvY2tfOGJwYyA9IHBpcGVfY29uZmln LT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKPiAgCWludCBjbG9ja18xMmJwYyA9IGNs b2NrXzhicGMgKiAzIC8gMjsKPiBAQCAtMTMzOSw3ICsxMzM5LDcgQEAgYm9vbCBpbnRlbF9oZG1p X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCWNsb2Nr XzEyYnBjICo9IDI7Cj4gIAl9Cj4gIAo+IC0JaWYgKEhBU19QQ0hfU1BMSVQoZGV2KSAmJiAhSEFT X0RESShkZXYpKQo+ICsJaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYpICYmICFIQVNfRERJKGRl dl9wcml2KSkKPiAgCQlwaXBlX2NvbmZpZy0+aGFzX3BjaF9lbmNvZGVyID0gdHJ1ZTsKPiAgCj4g IAlpZiAocGlwZV9jb25maWctPmhhc19oZG1pX3NpbmsgJiYgaW50ZWxfaGRtaS0+aGFzX2F1ZGlv KQo+IEBAIC0xODkyLDcgKzE4OTIsNyBAQCB2b2lkIGludGVsX2hkbWlfaW5pdF9jb25uZWN0b3Io c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4gIAkJaW50ZWxfaGRt aS0+d3JpdGVfaW5mb2ZyYW1lID0gZzR4X3dyaXRlX2luZm9mcmFtZTsKPiAgCQlpbnRlbF9oZG1p LT5zZXRfaW5mb2ZyYW1lcyA9IGc0eF9zZXRfaW5mb2ZyYW1lczsKPiAgCQlpbnRlbF9oZG1pLT5p bmZvZnJhbWVfZW5hYmxlZCA9IGc0eF9pbmZvZnJhbWVfZW5hYmxlZDsKPiAtCX0gZWxzZSBpZiAo SEFTX0RESShkZXYpKSB7Cj4gKwl9IGVsc2UgaWYgKEhBU19EREkoZGV2X3ByaXYpKSB7Cj4gIAkJ aW50ZWxfaGRtaS0+d3JpdGVfaW5mb2ZyYW1lID0gaHN3X3dyaXRlX2luZm9mcmFtZTsKPiAgCQlp bnRlbF9oZG1pLT5zZXRfaW5mb2ZyYW1lcyA9IGhzd19zZXRfaW5mb2ZyYW1lczsKPiAgCQlpbnRl bF9oZG1pLT5pbmZvZnJhbWVfZW5hYmxlZCA9IGhzd19pbmZvZnJhbWVfZW5hYmxlZDsKPiBAQCAt MTkwNiw3ICsxOTA2LDcgQEAgdm9pZCBpbnRlbF9oZG1pX2luaXRfY29ubmVjdG9yKHN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAo+ICAJCWludGVsX2hkbWktPmluZm9m cmFtZV9lbmFibGVkID0gY3B0X2luZm9mcmFtZV9lbmFibGVkOwo+ICAJfQo+ICAKPiAtCWlmIChI QVNfRERJKGRldikpCj4gKwlpZiAoSEFTX0RESShkZXZfcHJpdikpCj4gIAkJaW50ZWxfY29ubmVj dG9yLT5nZXRfaHdfc3RhdGUgPSBpbnRlbF9kZGlfY29ubmVjdG9yX2dldF9od19zdGF0ZTsKPiAg CWVsc2UKPiAgCQlpbnRlbF9jb25uZWN0b3ItPmdldF9od19zdGF0ZSA9IGludGVsX2Nvbm5lY3Rv cl9nZXRfaHdfc3RhdGU7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCj4gaW5kZXggOTZkMGM1N2M4 MTZjLi5mMjk0OTEwNzcyMzUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfcG0uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKPiBAQCAtNzEz Miw3ICs3MTMyLDcgQEAgc3RhdGljIHZvaWQgbHB0X2luaXRfY2xvY2tfZ2F0aW5nKHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCj4gIAkgKiBUT0RPOiB0aGlzIGJpdCBzaG91bGQgb25seSBiZSBlbmFi bGVkIHdoZW4gcmVhbGx5IG5lZWRlZCwgdGhlbgo+ICAJICogZGlzYWJsZWQgd2hlbiBub3QgbmVl ZGVkIGFueW1vcmUgaW4gb3JkZXIgdG8gc2F2ZSBwb3dlci4KPiAgCSAqLwo+IC0JaWYgKEhBU19Q Q0hfTFBUX0xQKGRldikpCj4gKwlpZiAoSEFTX1BDSF9MUFRfTFAoZGV2X3ByaXYpKQo+ICAJCUk5 MTVfV1JJVEUoU09VVEhfRFNQQ0xLX0dBVEVfRCwKPiAgCQkJICAgSTkxNV9SRUFEKFNPVVRIX0RT UENMS19HQVRFX0QpIHwKPiAgCQkJICAgUENIX0xQX1BBUlRJVElPTl9MRVZFTF9ESVNBQkxFKTsK PiBAQCAtNzE0Nyw3ICs3MTQ3LDcgQEAgc3RhdGljIHZvaWQgbHB0X3N1c3BlbmRfaHcoc3RydWN0 IGRybV9kZXZpY2UgKmRldikKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShkZXYpOwo+ICAKPiAtCWlmIChIQVNfUENIX0xQVF9MUChkZXYpKSB7Cj4g KwlpZiAoSEFTX1BDSF9MUFRfTFAoZGV2X3ByaXYpKSB7Cj4gIAkJdWludDMyX3QgdmFsID0gSTkx NV9SRUFEKFNPVVRIX0RTUENMS19HQVRFX0QpOwo+ICAKPiAgCQl2YWwgJj0gflBDSF9MUF9QQVJU SVRJT05fTEVWRUxfRElTQUJMRTsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfcHNyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+IGluZGV4IDEw OGJhMWU1ZDY1OC4uOWUyZmJhYzk3NzZlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3Bzci5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMK PiBAQCAtMzQ0LDcgKzM0NCw3IEBAIHN0YXRpYyBib29sIGludGVsX3Bzcl9tYXRjaF9jb25kaXRp b25zKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gIAkgKiBvbmVzLiBTaW5jZSBieSBEaXNw bGF5IGRlc2lnbiB0cmFuc2NvZGVyIEVEUCBpcyB0aWVkIHRvIHBvcnQgQQo+ICAJICogd2UgY2Fu IHNhZmVseSBlc2NhcGUgYmFzZWQgb24gdGhlIHBvcnQgQS4KPiAgCSAqLwo+IC0JaWYgKEhBU19E REkoZGV2KSAmJiBkaWdfcG9ydC0+cG9ydCAhPSBQT1JUX0EpIHsKPiArCWlmIChIQVNfRERJKGRl dl9wcml2KSAmJiBkaWdfcG9ydC0+cG9ydCAhPSBQT1JUX0EpIHsKPiAgCQlEUk1fREVCVUdfS01T KCJQU1IgY29uZGl0aW9uIGZhaWxlZDogUG9ydCBub3Qgc3VwcG9ydGVkXG4iKTsKPiAgCQlyZXR1 cm4gZmFsc2U7Cj4gIAl9Cj4gQEAgLTQwMiw3ICs0MDIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9w c3JfYWN0aXZhdGUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiAgCWxvY2tkZXBfYXNzZXJ0 X2hlbGQoJmRldl9wcml2LT5wc3IubG9jayk7Cj4gIAo+ICAJLyogRW5hYmxlL1JlLWVuYWJsZSBQ U1Igb24gdGhlIGhvc3QgKi8KPiAtCWlmIChIQVNfRERJKGRldikpCj4gKwlpZiAoSEFTX0RESShk ZXZfcHJpdikpCj4gIAkJLyogT24gSFNXKyBhZnRlciB3ZSBlbmFibGUgUFNSIG9uIHNvdXJjZSBp dCB3aWxsIGFjdGl2YXRlIGl0Cj4gIAkJICogYXMgc29vbiBhcyBpdCBtYXRjaCBjb25maWd1cmUg aWRsZV9mcmFtZSBjb3VudC4gU28KPiAgCQkgKiB3ZSBqdXN0IGFjdHVhbGx5IGVuYWJsZSBpdCBo ZXJlIG9uIGFjdGl2YXRpb24gdGltZS4KPiBAQCAtNDQ4LDcgKzQ0OCw3IEBAIHZvaWQgaW50ZWxf cHNyX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ICAKPiAgCWRldl9wcml2LT5w c3IuYnVzeV9mcm9udGJ1ZmZlcl9iaXRzID0gMDsKPiAgCj4gLQlpZiAoSEFTX0RESShkZXYpKSB7 Cj4gKwlpZiAoSEFTX0RESShkZXZfcHJpdikpIHsKPiAgCQloc3dfcHNyX3NldHVwX3ZzYyhpbnRl bF9kcCk7Cj4gIAo+ICAJCWlmIChkZXZfcHJpdi0+cHNyLnBzcjJfc3VwcG9ydCkgewo+IEBAIC01 ODAsNyArNTgwLDcgQEAgdm9pZCBpbnRlbF9wc3JfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKQo+ICAJfQo+ICAKPiAgCS8qIERpc2FibGUgUFNSIG9uIFNvdXJjZSAqLwo+IC0JaWYg KEhBU19EREkoZGV2KSkKPiArCWlmIChIQVNfRERJKGRldl9wcml2KSkKPiAgCQloc3dfcHNyX2Rp c2FibGUoaW50ZWxfZHApOwo+ICAJZWxzZQo+ICAJCXZsdl9wc3JfZGlzYWJsZShpbnRlbF9kcCk7 Cj4gLS0gCj4gMi43LjQKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxp c3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNr dG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=