From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH] drm/i915: Convert intel_overlay.c to use native drm_i915_private pointers Date: Thu, 12 May 2016 13:15:43 +0100 Message-ID: <573473EF.7050408@linux.intel.com> References: <1463053403-25086-1-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 mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTP id 7D8126E861 for ; Thu, 12 May 2016 12:15:58 +0000 (UTC) In-Reply-To: <1463053403-25086-1-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 Ck9uIDEyLzA1LzE2IDEyOjQzLCBDaHJpcyBXaWxzb24gd3JvdGU6Cj4gQW5vdGhlciBkYXksIGFu b3RoZXIgbG9uZyBvdmVyZHVlIGNvbnZlcnNpb24uIE5vdCBtdWNoIHRvIHVwZGF0ZSBpbnNpZGUK PiBpbnRlbF9vdmVybGF5LmMsIGJ1dCBzdGlsbAo+Cj4gICAgIHRleHQJICAgZGF0YQkgICAgYnNz CSAgICBkZWMJICAgIGhleAlmaWxlbmFtZQo+IDYzMDk1NDcJMzU3ODc3OAkgNjk2MzIwCTEwNTg0 NjQ1CSBhMTgyNDUJdm1saW51eAo+IDYzMDkyOTEJMzU3ODc3OAkgNjk2MzIwCTEwNTg0Mzg5CSBh MTgxNDUJdm1saW51eAo+Cj4gYSBjb3VwbGUgb2YgaHVuZHJlZCBieXRlcyBvZiBwb2ludGVyIG1p c2RpcmVjdGlvbi4KPgo+IFdoaWxzdCBoZXJlLCByZW5hbWUgdGhlIGlvY3RsIGVudHJ5IHBvaW50 cyB0byBpbmNsdWRlIHRoZSBfaW9jdGwgc3VmZml4Cj4gc28gdGhhdCB0aGUgdXNlciBlbnRyeSBw b2ludHMgYXJlIGNsZWFyIChmb2xsb3dpbmcgdGhlIGlkaW9tKS4KPgo+IFNpZ25lZC1vZmYtYnk6 IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+IC0tLQo+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyAgICAgIHwgICA0ICstCj4gICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgIDQgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oICAgICB8ICAxMiArKy0tCj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9vdmVybGF5LmMgfCAxMzIgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0KPiAg IDQgZmlsZXMgY2hhbmdlZCwgNzAgaW5zZXJ0aW9ucygrKSwgODIgZGVsZXRpb25zKC0pCj4KCmlu dGVsX3NldHVwX292ZXJsYXkgbWlnaHQgYmUgdGlkaWVyIHdpdGggYSBsb2NhbCB2YXJpYWJsZSBm b3IgZGV2IHNpbmNlIAppdCBpcyB1c2VkIGEgZ29vZCBudW1iZXIgb2YgdGltZXMsIGJ1dCBlaXRo ZXIgd2F5OgoKUmV2aWV3ZWQtYnk6IFR2cnRrbyBVcnN1bGluIDx0dnJ0a28udXJzdWxpbkBpbnRl bC5jb20+CgpSZWdhcmRzLAoKVHZydGtvCgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYwo+IGluZGV4 IDBlYWRlYjY5NGZlYy4uZTQyZmExNzY5YzEwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZG1hLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5j Cj4gQEAgLTE2MjMsOCArMTYyMyw4IEBAIGNvbnN0IHN0cnVjdCBkcm1faW9jdGxfZGVzYyBpOTE1 X2lvY3Rsc1tdID0gewo+ICAgCURSTV9JT0NUTF9ERUZfRFJWKEk5MTVfR0VNX0dFVF9BUEVSVFVS RSwgaTkxNV9nZW1fZ2V0X2FwZXJ0dXJlX2lvY3RsLCBEUk1fUkVOREVSX0FMTE9XKSwKPiAgIAlE Uk1fSU9DVExfREVGX0RSVihJOTE1X0dFVF9QSVBFX0ZST01fQ1JUQ19JRCwgaW50ZWxfZ2V0X3Bp cGVfZnJvbV9jcnRjX2lkLCAwKSwKPiAgIAlEUk1fSU9DVExfREVGX0RSVihJOTE1X0dFTV9NQURW SVNFLCBpOTE1X2dlbV9tYWR2aXNlX2lvY3RsLCBEUk1fUkVOREVSX0FMTE9XKSwKPiAtCURSTV9J T0NUTF9ERUZfRFJWKEk5MTVfT1ZFUkxBWV9QVVRfSU1BR0UsIGludGVsX292ZXJsYXlfcHV0X2lt YWdlLCBEUk1fTUFTVEVSfERSTV9DT05UUk9MX0FMTE9XKSwKPiAtCURSTV9JT0NUTF9ERUZfRFJW KEk5MTVfT1ZFUkxBWV9BVFRSUywgaW50ZWxfb3ZlcmxheV9hdHRycywgRFJNX01BU1RFUnxEUk1f Q09OVFJPTF9BTExPVyksCj4gKwlEUk1fSU9DVExfREVGX0RSVihJOTE1X09WRVJMQVlfUFVUX0lN QUdFLCBpbnRlbF9vdmVybGF5X3B1dF9pbWFnZV9pb2N0bCwgRFJNX01BU1RFUnxEUk1fQ09OVFJP TF9BTExPVyksCj4gKwlEUk1fSU9DVExfREVGX0RSVihJOTE1X09WRVJMQVlfQVRUUlMsIGludGVs X292ZXJsYXlfYXR0cnNfaW9jdGwsIERSTV9NQVNURVJ8RFJNX0NPTlRST0xfQUxMT1cpLAo+ICAg CURSTV9JT0NUTF9ERUZfRFJWKEk5MTVfU0VUX1NQUklURV9DT0xPUktFWSwgaW50ZWxfc3ByaXRl X3NldF9jb2xvcmtleSwgRFJNX01BU1RFUnxEUk1fQ09OVFJPTF9BTExPVyksCj4gICAJRFJNX0lP Q1RMX0RFRl9EUlYoSTkxNV9HRVRfU1BSSVRFX0NPTE9SS0VZLCBkcm1fbm9vcCwgRFJNX01BU1RF UnxEUk1fQ09OVFJPTF9BTExPVyksCj4gICAJRFJNX0lPQ1RMX0RFRl9EUlYoSTkxNV9HRU1fV0FJ VCwgaTkxNV9nZW1fd2FpdF9pb2N0bCwgRFJNX0FVVEh8RFJNX1JFTkRFUl9BTExPVyksCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IGI2MGQ5YjY3ZTAzMy4uZDYyMTFj MzAzNmMwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXku Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xNjAy NSw3ICsxNjAyNSw3IEBAIHZvaWQgaW50ZWxfbW9kZXNldF9nZW1faW5pdChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2KQo+Cj4gICAJaW50ZWxfbW9kZXNldF9pbml0X2h3KGRldik7Cj4KPiAtCWludGVs X3NldHVwX292ZXJsYXkoZGV2KTsKPiArCWludGVsX3NldHVwX292ZXJsYXkoZGV2X3ByaXYpOwo+ Cj4gICAJLyoKPiAgIAkgKiBNYWtlIHN1cmUgYW55IGZicyB3ZSBhbGxvY2F0ZWQgYXQgc3RhcnR1 cCBhcmUgcHJvcGVybHkKPiBAQCAtMTYwOTgsNyArMTYwOTgsNyBAQCB2b2lkIGludGVsX21vZGVz ZXRfY2xlYW51cChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+Cj4gICAJZHJtX21vZGVfY29uZmln X2NsZWFudXAoZGV2KTsKPgo+IC0JaW50ZWxfY2xlYW51cF9vdmVybGF5KGRldik7Cj4gKwlpbnRl bF9jbGVhbnVwX292ZXJsYXkoZGV2X3ByaXYpOwo+Cj4gICAJaW50ZWxfY2xlYW51cF9ndF9wb3dl cnNhdmUoZGV2X3ByaXYpOwo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCAxYTNl NjllNWY5ZjUuLjBhOWMxMGQ2NWExMyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4g QEAgLTE0MzUsMTMgKzE0MzUsMTMgQEAgdm9pZCBpbnRlbF9hdHRhY2hfYXNwZWN0X3JhdGlvX3By b3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+Cj4KPiAgIC8qIGludGVs X292ZXJsYXkuYyAqLwo+IC12b2lkIGludGVsX3NldHVwX292ZXJsYXkoc3RydWN0IGRybV9kZXZp Y2UgKmRldik7Cj4gLXZvaWQgaW50ZWxfY2xlYW51cF9vdmVybGF5KHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYpOwo+ICt2b2lkIGludGVsX3NldHVwX292ZXJsYXkoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KTsKPiArdm9pZCBpbnRlbF9jbGVhbnVwX292ZXJsYXkoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiAgIGludCBpbnRlbF9vdmVybGF5X3N3aXRjaF9vZmYo c3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXkpOwo+IC1pbnQgaW50ZWxfb3ZlcmxheV9wdXRf aW1hZ2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAtCQkJICAgIHN0cnVj dCBkcm1fZmlsZSAqZmlsZV9wcml2KTsKPiAtaW50IGludGVsX292ZXJsYXlfYXR0cnMoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiAtCQkJc3RydWN0IGRybV9maWxlICpmaWxl X3ByaXYpOwo+ICtpbnQgaW50ZWxfb3ZlcmxheV9wdXRfaW1hZ2VfaW9jdGwoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPiArCQkJCSAgc3RydWN0IGRybV9maWxlICpmaWxlX3By aXYpOwo+ICtpbnQgaW50ZWxfb3ZlcmxheV9hdHRyc19pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB2b2lkICpkYXRhLAo+ICsJCQkgICAgICBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdik7 Cj4gICB2b2lkIGludGVsX292ZXJsYXlfcmVzZXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KTsKPgo+Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292 ZXJsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292ZXJsYXkuYwo+IGluZGV4IDRh MWU3NzRiYThjYy4uYjliMDQyY2M2MTlmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX292ZXJsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX292 ZXJsYXkuYwo+IEBAIC0xNjgsNyArMTY4LDcgQEAgc3RydWN0IG92ZXJsYXlfcmVnaXN0ZXJzIHsK PiAgIH07Cj4KPiAgIHN0cnVjdCBpbnRlbF9vdmVybGF5IHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXY7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNTsKPiAgIAlzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YzsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqdmlkX2JvOwo+ ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvbGRfdmlkX2JvOwo+IEBAIC0xOTAsMTQg KzE5MCwxMyBAQCBzdHJ1Y3QgaW50ZWxfb3ZlcmxheSB7Cj4gICBzdGF0aWMgc3RydWN0IG92ZXJs YXlfcmVnaXN0ZXJzIF9faW9tZW0gKgo+ICAgaW50ZWxfb3ZlcmxheV9tYXBfcmVncyhzdHJ1Y3Qg aW50ZWxfb3ZlcmxheSAqb3ZlcmxheSkKPiAgIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUob3ZlcmxheS0+ZGV2KTsKPiAtCXN0cnVjdCBpOTE1X2dndHQg KmdndHQgPSAmZGV2X3ByaXYtPmdndHQ7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBvdmVybGF5LT5pOTE1Owo+ICAgCXN0cnVjdCBvdmVybGF5X3JlZ2lzdGVycyBfX2lv bWVtICpyZWdzOwo+Cj4gLQlpZiAoT1ZFUkxBWV9ORUVEU19QSFlTSUNBTChvdmVybGF5LT5kZXYp KQo+ICsJaWYgKE9WRVJMQVlfTkVFRFNfUEhZU0lDQUwoZGV2X3ByaXYpKQo+ICAgCQlyZWdzID0g KHN0cnVjdCBvdmVybGF5X3JlZ2lzdGVycyBfX2lvbWVtICopb3ZlcmxheS0+cmVnX2JvLT5waHlz X2hhbmRsZS0+dmFkZHI7Cj4gICAJZWxzZQo+IC0JCXJlZ3MgPSBpb19tYXBwaW5nX21hcF93Yyhn Z3R0LT5tYXBwYWJsZSwKPiArCQlyZWdzID0gaW9fbWFwcGluZ19tYXBfd2MoZGV2X3ByaXYtPmdn dHQubWFwcGFibGUsCj4gICAJCQkJCSBvdmVybGF5LT5mbGlwX2FkZHIsCj4gICAJCQkJCSBQQUdF X1NJWkUpOwo+Cj4gQEAgLTIwNyw3ICsyMDYsNyBAQCBpbnRlbF9vdmVybGF5X21hcF9yZWdzKHN0 cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5KQo+ICAgc3RhdGljIHZvaWQgaW50ZWxfb3Zlcmxh eV91bm1hcF9yZWdzKHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5LAo+ICAgCQkJCSAgICAg c3RydWN0IG92ZXJsYXlfcmVnaXN0ZXJzIF9faW9tZW0gKnJlZ3MpCj4gICB7Cj4gLQlpZiAoIU9W RVJMQVlfTkVFRFNfUEhZU0lDQUwob3ZlcmxheS0+ZGV2KSkKPiArCWlmICghT1ZFUkxBWV9ORUVE U19QSFlTSUNBTChvdmVybGF5LT5pOTE1KSkKPiAgIAkJaW9fbWFwcGluZ191bm1hcChyZWdzKTsK PiAgIH0KPgo+IEBAIC0yMzMsMTQgKzIzMiwxMyBAQCBzdGF0aWMgaW50IGludGVsX292ZXJsYXlf ZG9fd2FpdF9yZXF1ZXN0KHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5LAo+ICAgLyogb3Zl cmxheSBuZWVkcyB0byBiZSBkaXNhYmxlIGluIE9DTUQgcmVnICovCj4gICBzdGF0aWMgaW50IGlu dGVsX292ZXJsYXlfb24oc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXkpCj4gICB7Cj4gLQlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gb3ZlcmxheS0+ZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IG92ZXJsYXktPmk5MTU7Cj4gICAJc3RydWN0IGludGVsX2Vu Z2luZV9jcyAqZW5naW5lID0gJmRldl9wcml2LT5lbmdpbmVbUkNTXTsKPiAgIAlzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3JlcXVlc3QgKnJlcTsKPiAgIAlpbnQgcmV0Owo+Cj4gICAJV0FSTl9PTihvdmVy bGF5LT5hY3RpdmUpOwo+IC0JV0FSTl9PTihJU19JODMwKGRldikgJiYgIShkZXZfcHJpdi0+cXVp cmtzICYgUVVJUktfUElQRUFfRk9SQ0UpKTsKPiArCVdBUk5fT04oSVNfSTgzMChkZXZfcHJpdikg JiYgIShkZXZfcHJpdi0+cXVpcmtzICYgUVVJUktfUElQRUFfRk9SQ0UpKTsKPgo+ICAgCXJlcSA9 IGk5MTVfZ2VtX3JlcXVlc3RfYWxsb2MoZW5naW5lLCBOVUxMKTsKPiAgIAlpZiAoSVNfRVJSKHJl cSkpCj4gQEAgLTI2Nyw4ICsyNjUsNyBAQCBzdGF0aWMgaW50IGludGVsX292ZXJsYXlfb24oc3Ry dWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXkpCj4gICBzdGF0aWMgaW50IGludGVsX292ZXJsYXlf Y29udGludWUoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXksCj4gICAJCQkJICBib29sIGxv YWRfcG9seXBoYXNlX2ZpbHRlcikKPiAgIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBv dmVybGF5LT5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gb3Zl cmxheS0+aTkxNTsKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSAmZGV2X3By aXYtPmVuZ2luZVtSQ1NdOwo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwo+ ICAgCXUzMiBmbGlwX2FkZHIgPSBvdmVybGF5LT5mbGlwX2FkZHI7Cj4gQEAgLTMzNiw4ICszMzMs NyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9vdmVybGF5X29mZl90YWlsKHN0cnVjdCBpbnRlbF9vdmVy bGF5ICpvdmVybGF5KQo+ICAgLyogb3ZlcmxheSBuZWVkcyB0byBiZSBkaXNhYmxlZCBpbiBPQ01E IHJlZyAqLwo+ICAgc3RhdGljIGludCBpbnRlbF9vdmVybGF5X29mZihzdHJ1Y3QgaW50ZWxfb3Zl cmxheSAqb3ZlcmxheSkKPiAgIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBvdmVybGF5 LT5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9w cml2YXRlOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gb3ZlcmxheS0+ aTkxNTsKPiAgIAlzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUgPSAmZGV2X3ByaXYtPmVu Z2luZVtSQ1NdOwo+ICAgCXN0cnVjdCBkcm1faTkxNV9nZW1fcmVxdWVzdCAqcmVxOwo+ICAgCXUz MiBmbGlwX2FkZHIgPSBvdmVybGF5LT5mbGlwX2FkZHI7Cj4gQEAgLTM2Niw3ICszNjIsNyBAQCBz dGF0aWMgaW50IGludGVsX292ZXJsYXlfb2ZmKHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5 KQo+ICAgCWludGVsX3JpbmdfZW1pdChlbmdpbmUsIGZsaXBfYWRkcik7Cj4gICAJaW50ZWxfcmlu Z19lbWl0KGVuZ2luZSwgTUlfV0FJVF9GT1JfRVZFTlQgfCBNSV9XQUlUX0ZPUl9PVkVSTEFZX0ZM SVApOwo+ICAgCS8qIHR1cm4gb3ZlcmxheSBvZmYgKi8KPiAtCWlmIChJU19JODMwKGRldikpIHsK PiArCWlmIChJU19JODMwKGRldl9wcml2KSkgewo+ICAgCQkvKiBXb3JrYXJvdW5kOiBEb24ndCBk aXNhYmxlIHRoZSBvdmVybGF5IGZ1bGx5LCBzaW5jZSBvdGhlcndpc2UKPiAgIAkJICogaXQgZGll cyBvbiB0aGUgbmV4dCBPVkVSTEFZX09OIGNtZC4gKi8KPiAgIAkJaW50ZWxfcmluZ19lbWl0KGVu Z2luZSwgTUlfTk9PUCk7Cj4gQEAgLTQwOSwxMiArNDA1LDExIEBAIHN0YXRpYyBpbnQgaW50ZWxf b3ZlcmxheV9yZWNvdmVyX2Zyb21faW50ZXJydXB0KHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVy bGF5KQo+ICAgICovCj4gICBzdGF0aWMgaW50IGludGVsX292ZXJsYXlfcmVsZWFzZV9vbGRfdmlk KHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5KQo+ICAgewo+IC0Jc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IG92ZXJsYXktPmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBvdmVybGF5LT5pOTE1Owo+ICAgCXN0cnVjdCBpbnRlbF9lbmdpbmVfY3MgKmVuZ2lu ZSA9ICZkZXZfcHJpdi0+ZW5naW5lW1JDU107Cj4gICAJaW50IHJldDsKPgo+IC0JV0FSTl9PTigh bXV0ZXhfaXNfbG9ja2VkKCZkZXYtPnN0cnVjdF9tdXRleCkpOwo+ICsJbG9ja2RlcF9hc3NlcnRf aGVsZCgmZGV2X3ByaXYtPmRldi0+c3RydWN0X211dGV4KTsKPgo+ICAgCS8qIE9ubHkgd2FpdCBp ZiB0aGVyZSBpcyBhY3R1YWxseSBhbiBvbGQgZnJhbWUgdG8gcmVsZWFzZSB0bwo+ICAgCSAqIGd1 YXJhbnRlZSBmb3J3YXJkIHByb2dyZXNzLgo+IEBAIC01MzgsMTAgKzUzMywxMCBAQCBzdGF0aWMg aW50IHV2X3ZzdWJzYW1wbGluZyh1MzIgZm9ybWF0KQo+ICAgCX0KPiAgIH0KPgo+IC1zdGF0aWMg dTMyIGNhbGNfc3dpZHRoc3coc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdTMyIG9mZnNldCwgdTMy IHdpZHRoKQo+ICtzdGF0aWMgdTMyIGNhbGNfc3dpZHRoc3coc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCB1MzIgb2Zmc2V0LCB1MzIgd2lkdGgpCj4gICB7Cj4gICAJdTMyIG1hc2ss IHNoaWZ0LCByZXQ7Cj4gLQlpZiAoSVNfR0VOMihkZXYpKSB7Cj4gKwlpZiAoSVNfR0VOMihkZXZf cHJpdikpIHsKPiAgIAkJbWFzayA9IDB4MWY7Cj4gICAJCXNoaWZ0ID0gNTsKPiAgIAl9IGVsc2Ug ewo+IEBAIC01NDksNyArNTQ0LDcgQEAgc3RhdGljIHUzMiBjYWxjX3N3aWR0aHN3KHN0cnVjdCBk cm1fZGV2aWNlICpkZXYsIHUzMiBvZmZzZXQsIHUzMiB3aWR0aCkKPiAgIAkJc2hpZnQgPSA2Owo+ ICAgCX0KPiAgIAlyZXQgPSAoKG9mZnNldCArIHdpZHRoICsgbWFzaykgPj4gc2hpZnQpIC0gKG9m ZnNldCA+PiBzaGlmdCk7Cj4gLQlpZiAoIUlTX0dFTjIoZGV2KSkKPiArCWlmICghSVNfR0VOMihk ZXZfcHJpdikpCj4gICAJCXJldCA8PD0gMTsKPiAgIAlyZXQgLT0gMTsKPiAgIAlyZXR1cm4gcmV0 IDw8IDI7Cj4gQEAgLTc0MiwxMiArNzM3LDEyIEBAIHN0YXRpYyBpbnQgaW50ZWxfb3ZlcmxheV9k b19wdXRfaW1hZ2Uoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXksCj4gICAJaW50IHJldCwg dG1wX3dpZHRoOwo+ICAgCXN0cnVjdCBvdmVybGF5X3JlZ2lzdGVycyBfX2lvbWVtICpyZWdzOwo+ ICAgCWJvb2wgc2NhbGVfY2hhbmdlZCA9IGZhbHNlOwo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IG92ZXJsYXktPmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IG92ZXJsYXktPmk5MTU7Cj4gICAJdTMyIHN3aWR0aCwgc3dpZHRoc3csIHNoZWlnaHQsIG9zdHJp ZGU7Cj4gICAJZW51bSBwaXBlIHBpcGUgPSBvdmVybGF5LT5jcnRjLT5waXBlOwo+Cj4gLQlXQVJO X09OKCFtdXRleF9pc19sb2NrZWQoJmRldi0+c3RydWN0X211dGV4KSk7Cj4gLQlXQVJOX09OKCFk cm1fbW9kZXNldF9pc19sb2NrZWQoJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCkp Owo+ICsJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPmRldi0+c3RydWN0X211dGV4KTsK PiArCVdBUk5fT04oIWRybV9tb2Rlc2V0X2lzX2xvY2tlZCgmZGV2X3ByaXYtPmRldi0+bW9kZV9j b25maWcuY29ubmVjdGlvbl9tdXRleCkpOwo+Cj4gICAJcmV0ID0gaW50ZWxfb3ZlcmxheV9yZWxl YXNlX29sZF92aWQob3ZlcmxheSk7Cj4gICAJaWYgKHJldCAhPSAwKQo+IEBAIC03NzAsNyArNzY1 LDcgQEAgc3RhdGljIGludCBpbnRlbF9vdmVybGF5X2RvX3B1dF9pbWFnZShzdHJ1Y3QgaW50ZWxf b3ZlcmxheSAqb3ZlcmxheSwKPiAgIAkJCWdvdG8gb3V0X3VucGluOwo+ICAgCQl9Cj4gICAJCW9j b25maWcgPSBPQ09ORl9DQ19PVVRfOEJJVDsKPiAtCQlpZiAoSVNfR0VONChvdmVybGF5LT5kZXYp KQo+ICsJCWlmIChJU19HRU40KGRldl9wcml2KSkKPiAgIAkJCW9jb25maWcgfD0gT0NPTkZfQ1ND X01PREVfQlQ3MDk7Cj4gICAJCW9jb25maWcgfD0gcGlwZSA9PSAwID8KPiAgIAkJCU9DT05GX1BJ UEVfQSA6IE9DT05GX1BJUEVfQjsKPiBAQCAtNzk3LDcgKzc5Miw3IEBAIHN0YXRpYyBpbnQgaW50 ZWxfb3ZlcmxheV9kb19wdXRfaW1hZ2Uoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJsYXksCj4g ICAJCXRtcF93aWR0aCA9IHBhcmFtcy0+c3JjX3c7Cj4KPiAgIAlzd2lkdGggPSBwYXJhbXMtPnNy Y193Owo+IC0Jc3dpZHRoc3cgPSBjYWxjX3N3aWR0aHN3KG92ZXJsYXktPmRldiwgcGFyYW1zLT5v ZmZzZXRfWSwgdG1wX3dpZHRoKTsKPiArCXN3aWR0aHN3ID0gY2FsY19zd2lkdGhzdyhkZXZfcHJp diwgcGFyYW1zLT5vZmZzZXRfWSwgdG1wX3dpZHRoKTsKPiAgIAlzaGVpZ2h0ID0gcGFyYW1zLT5z cmNfaDsKPiAgIAlpb3dyaXRlMzIoaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KG5ld19ibykgKyBw YXJhbXMtPm9mZnNldF9ZLCAmcmVncy0+T0JVRl8wWSk7Cj4gICAJb3N0cmlkZSA9IHBhcmFtcy0+ c3RyaWRlX1k7Cj4gQEAgLTgwNyw5ICs4MDIsOSBAQCBzdGF0aWMgaW50IGludGVsX292ZXJsYXlf ZG9fcHV0X2ltYWdlKHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5LAo+ICAgCQlpbnQgdXZf dnNjYWxlID0gdXZfdnN1YnNhbXBsaW5nKHBhcmFtcy0+Zm9ybWF0KTsKPiAgIAkJdTMyIHRtcF9V LCB0bXBfVjsKPiAgIAkJc3dpZHRoIHw9IChwYXJhbXMtPnNyY193L3V2X2hzY2FsZSkgPDwgMTY7 Cj4gLQkJdG1wX1UgPSBjYWxjX3N3aWR0aHN3KG92ZXJsYXktPmRldiwgcGFyYW1zLT5vZmZzZXRf VSwKPiArCQl0bXBfVSA9IGNhbGNfc3dpZHRoc3coZGV2X3ByaXYsIHBhcmFtcy0+b2Zmc2V0X1Us Cj4gICAJCQkJICAgICAgcGFyYW1zLT5zcmNfdy91dl9oc2NhbGUpOwo+IC0JCXRtcF9WID0gY2Fs Y19zd2lkdGhzdyhvdmVybGF5LT5kZXYsIHBhcmFtcy0+b2Zmc2V0X1YsCj4gKwkJdG1wX1YgPSBj YWxjX3N3aWR0aHN3KGRldl9wcml2LCBwYXJhbXMtPm9mZnNldF9WLAo+ICAgCQkJCSAgICAgIHBh cmFtcy0+c3JjX3cvdXZfaHNjYWxlKTsKPiAgIAkJc3dpZHRoc3cgfD0gbWF4X3QodTMyLCB0bXBf VSwgdG1wX1YpIDw8IDE2Owo+ICAgCQlzaGVpZ2h0IHw9IChwYXJhbXMtPnNyY19oL3V2X3ZzY2Fs ZSkgPDwgMTY7Cj4gQEAgLTg0MSw4ICs4MzYsNyBAQCBzdGF0aWMgaW50IGludGVsX292ZXJsYXlf ZG9fcHV0X2ltYWdlKHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5LAo+ICAgCW92ZXJsYXkt Pm9sZF92aWRfYm8gPSBvdmVybGF5LT52aWRfYm87Cj4gICAJb3ZlcmxheS0+dmlkX2JvID0gbmV3 X2JvOwo+Cj4gLQlpbnRlbF9mcm9udGJ1ZmZlcl9mbGlwKGRldiwKPiAtCQkJICAgICAgIElOVEVM X0ZST05UQlVGRkVSX09WRVJMQVkocGlwZSkpOwo+ICsJaW50ZWxfZnJvbnRidWZmZXJfZmxpcChk ZXZfcHJpdi0+ZGV2LCBJTlRFTF9GUk9OVEJVRkZFUl9PVkVSTEFZKHBpcGUpKTsKPgo+ICAgCXJl dHVybiAwOwo+Cj4gQEAgLTg1MywxMiArODQ3LDEyIEBAIG91dF91bnBpbjoKPgo+ICAgaW50IGlu dGVsX292ZXJsYXlfc3dpdGNoX29mZihzdHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSkKPiAg IHsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IG92ZXJsYXktPmk5MTU7 Cj4gICAJc3RydWN0IG92ZXJsYXlfcmVnaXN0ZXJzIF9faW9tZW0gKnJlZ3M7Cj4gLQlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gb3ZlcmxheS0+ZGV2Owo+ICAgCWludCByZXQ7Cj4KPiAtCVdBUk5f T04oIW11dGV4X2lzX2xvY2tlZCgmZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKPiAtCVdBUk5fT04oIWRy bV9tb2Rlc2V0X2lzX2xvY2tlZCgmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4KSk7 Cj4gKwlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ ICsJV0FSTl9PTighZHJtX21vZGVzZXRfaXNfbG9ja2VkKCZkZXZfcHJpdi0+ZGV2LT5tb2RlX2Nv bmZpZy5jb25uZWN0aW9uX211dGV4KSk7Cj4KPiAgIAlyZXQgPSBpbnRlbF9vdmVybGF5X3JlY292 ZXJfZnJvbV9pbnRlcnJ1cHQob3ZlcmxheSk7Cj4gICAJaWYgKHJldCAhPSAwKQo+IEBAIC04OTgs MTUgKzg5MiwxNCBAQCBzdGF0aWMgaW50IGNoZWNrX292ZXJsYXlfcG9zc2libGVfb25fY3J0Yyhz dHJ1Y3QgaW50ZWxfb3ZlcmxheSAqb3ZlcmxheSwKPgo+ICAgc3RhdGljIHZvaWQgdXBkYXRlX3Bm aXRfdnNjYWxlX3JhdGlvKHN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5KQo+ICAgewo+IC0J c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IG92ZXJsYXktPmRldjsKPiAtCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBvdmVybGF5LT5pOTE1Owo+ICAgCXUzMiBwZml0X2NvbnRy b2wgPSBJOTE1X1JFQUQoUEZJVF9DT05UUk9MKTsKPiAgIAl1MzIgcmF0aW87Cj4KPiAgIAkvKiBY WFg6IFRoaXMgaXMgbm90IHRoZSBzYW1lIGxvZ2ljIGFzIGluIHRoZSB4b3JnIGRyaXZlciwgYnV0 IG1vcmUgaW4KPiAgIAkgKiBsaW5lIHdpdGggdGhlIGludGVsIGRvY3VtZW50YXRpb24gZm9yIHRo ZSBpOTY1Cj4gICAJICovCj4gLQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNCkgewo+ICsJ aWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNCkgewo+ICAgCQkvKiBvbiBpOTY1IHVzZSB0aGUg UEdNIHJlZyB0byByZWFkIG91dCB0aGUgYXV0b3NjYWxlciB2YWx1ZXMgKi8KPiAgIAkJcmF0aW8g PSBJOTE1X1JFQUQoUEZJVF9QR01fUkFUSU9TKSA+PiBQRklUX1ZFUlRfU0NBTEVfU0hJRlRfOTY1 Owo+ICAgCX0gZWxzZSB7Cj4gQEAgLTk0OSw3ICs5NDIsNyBAQCBzdGF0aWMgaW50IGNoZWNrX292 ZXJsYXlfc2NhbGluZyhzdHJ1Y3QgcHV0X2ltYWdlX3BhcmFtcyAqcmVjKQo+ICAgCXJldHVybiAw Owo+ICAgfQo+Cj4gLXN0YXRpYyBpbnQgY2hlY2tfb3ZlcmxheV9zcmMoc3RydWN0IGRybV9kZXZp Y2UgKmRldiwKPiArc3RhdGljIGludCBjaGVja19vdmVybGF5X3NyYyhzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCj4gICAJCQkgICAgIHN0cnVjdCBkcm1faW50ZWxfb3ZlcmxheV9w dXRfaW1hZ2UgKnJlYywKPiAgIAkJCSAgICAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm5l d19ibykKPiAgIHsKPiBAQCAtOTYwLDcgKzk1Myw3IEBAIHN0YXRpYyBpbnQgY2hlY2tfb3Zlcmxh eV9zcmMoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiAgIAl1MzIgdG1wOwo+Cj4gICAJLyogY2hl Y2sgc3JjIGRpbWVuc2lvbnMgKi8KPiAtCWlmIChJU184NDVHKGRldikgfHwgSVNfSTgzMChkZXYp KSB7Cj4gKwlpZiAoSVNfODQ1RyhkZXZfcHJpdikgfHwgSVNfSTgzMChkZXZfcHJpdikpIHsKPiAg IAkJaWYgKHJlYy0+c3JjX2hlaWdodCA+IElNQUdFX01BWF9IRUlHSFRfTEVHQUNZIHx8Cj4gICAJ CSAgICByZWMtPnNyY193aWR0aCAgPiBJTUFHRV9NQVhfV0lEVEhfTEVHQUNZKQo+ICAgCQkJcmV0 dXJuIC1FSU5WQUw7Cj4gQEAgLTEwMTIsMTQgKzEwMDUsMTQgQEAgc3RhdGljIGludCBjaGVja19v dmVybGF5X3NyYyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAgCQlyZXR1cm4gLUVJTlZBTDsK Pgo+ICAgCS8qIHN0cmlkZSBjaGVja2luZyAqLwo+IC0JaWYgKElTX0k4MzAoZGV2KSB8fCBJU184 NDVHKGRldikpCj4gKwlpZiAoSVNfSTgzMChkZXZfcHJpdikgfHwgSVNfODQ1RyhkZXZfcHJpdikp Cj4gICAJCXN0cmlkZV9tYXNrID0gMjU1Owo+ICAgCWVsc2UKPiAgIAkJc3RyaWRlX21hc2sgPSA2 MzsKPgo+ICAgCWlmIChyZWMtPnN0cmlkZV9ZICYgc3RyaWRlX21hc2sgfHwgcmVjLT5zdHJpZGVf VVYgJiBzdHJpZGVfbWFzaykKPiAgIAkJcmV0dXJuIC1FSU5WQUw7Cj4gLQlpZiAoSVNfR0VONChk ZXYpICYmIHJlYy0+c3RyaWRlX1kgPCA1MTIpCj4gKwlpZiAoSVNfR0VONChkZXZfcHJpdikgJiYg cmVjLT5zdHJpZGVfWSA8IDUxMikKPiAgIAkJcmV0dXJuIC1FSU5WQUw7Cj4KPiAgIAl0bXAgPSAo cmVjLT5mbGFncyAmIEk5MTVfT1ZFUkxBWV9UWVBFX01BU0spID09IEk5MTVfT1ZFUkxBWV9ZVVZf UExBTkFSID8KPiBAQCAtMTA2NCwxMyArMTA1NywxMyBAQCBzdGF0aWMgaW50IGNoZWNrX292ZXJs YXlfc3JjKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gICAgKiBSZXR1cm4gdGhlIHBpcGUgY3Vy cmVudGx5IGNvbm5lY3RlZCB0byB0aGUgcGFuZWwgZml0dGVyLAo+ICAgICogb3IgLTEgaWYgdGhl IHBhbmVsIGZpdHRlciBpcyBub3QgcHJlc2VudCBvciBub3QgaW4gdXNlCj4gICAgKi8KPiAtc3Rh dGljIGludCBpbnRlbF9wYW5lbF9maXR0ZXJfcGlwZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ ICtzdGF0aWMgaW50IGludGVsX3BhbmVsX2ZpdHRlcl9waXBlKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKPiAgIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gICAJdTMyICBwZml0X2NvbnRyb2w7Cj4KPiAgIAkvKiBp ODMwIGRvZXNuJ3QgaGF2ZSBhIHBhbmVsIGZpdHRlciAqLwo+IC0JaWYgKElOVEVMX0lORk8oZGV2 KS0+Z2VuIDw9IDMgJiYgKElTX0k4MzAoZGV2KSB8fCAhSVNfTU9CSUxFKGRldikpKQo+ICsJaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPD0gMyAmJgo+ICsJICAgIChJU19JODMwKGRldl9wcml2KSB8 fCAhSVNfTU9CSUxFKGRldl9wcml2KSkpCj4gICAJCXJldHVybiAtMTsKPgo+ICAgCXBmaXRfY29u dHJvbCA9IEk5MTVfUkVBRChQRklUX0NPTlRST0wpOwo+IEBAIC0xMDgwLDE1ICsxMDczLDE1IEBA IHN0YXRpYyBpbnQgaW50ZWxfcGFuZWxfZml0dGVyX3BpcGUoc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPiAgIAkJcmV0dXJuIC0xOwo+Cj4gICAJLyogOTY1IGNhbiBwbGFjZSBwYW5lbCBmaXR0ZXIg b24gZWl0aGVyIHBpcGUgKi8KPiAtCWlmIChJU19HRU40KGRldikpCj4gKwlpZiAoSVNfR0VONChk ZXZfcHJpdikpCj4gICAJCXJldHVybiAocGZpdF9jb250cm9sID4+IDI5KSAmIDB4MzsKPgo+ICAg CS8qIG9sZGVyIGNoaXBzIGNhbiBvbmx5IHVzZSBwaXBlIDEgKi8KPiAgIAlyZXR1cm4gMTsKPiAg IH0KPgo+IC1pbnQgaW50ZWxfb3ZlcmxheV9wdXRfaW1hZ2Uoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKPiAtCQkJICAgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+ICtp bnQgaW50ZWxfb3ZlcmxheV9wdXRfaW1hZ2VfaW9jdGwoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg dm9pZCAqZGF0YSwKPiArCQkJCSAgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4gICB7Cj4g ICAJc3RydWN0IGRybV9pbnRlbF9vdmVybGF5X3B1dF9pbWFnZSAqcHV0X2ltYWdlX3JlYyA9IGRh dGE7Cj4gICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJp dmF0ZTsKPiBAQCAtMTE2Myw3ICsxMTU2LDcgQEAgaW50IGludGVsX292ZXJsYXlfcHV0X2ltYWdl KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4KPiAgIAkJLyogbGluZSB0b28g d2lkZSwgaS5lLiBvbmUtbGluZS1tb2RlICovCj4gICAJCWlmIChtb2RlLT5oZGlzcGxheSA+IDEw MjQgJiYKPiAtCQkgICAgaW50ZWxfcGFuZWxfZml0dGVyX3BpcGUoZGV2KSA9PSBjcnRjLT5waXBl KSB7Cj4gKwkJICAgIGludGVsX3BhbmVsX2ZpdHRlcl9waXBlKGRldl9wcml2KSA9PSBjcnRjLT5w aXBlKSB7Cj4gICAJCQlvdmVybGF5LT5wZml0X2FjdGl2ZSA9IHRydWU7Cj4gICAJCQl1cGRhdGVf cGZpdF92c2NhbGVfcmF0aW8ob3ZlcmxheSk7Cj4gICAJCX0gZWxzZQo+IEBAIC0xMTk3LDcgKzEx OTAsNyBAQCBpbnQgaW50ZWxfb3ZlcmxheV9wdXRfaW1hZ2Uoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKPiAgIAkJZ290byBvdXRfdW5sb2NrOwo+ICAgCX0KPgo+IC0JcmV0ID0g Y2hlY2tfb3ZlcmxheV9zcmMoZGV2LCBwdXRfaW1hZ2VfcmVjLCBuZXdfYm8pOwo+ICsJcmV0ID0g Y2hlY2tfb3ZlcmxheV9zcmMoZGV2X3ByaXYsIHB1dF9pbWFnZV9yZWMsIG5ld19ibyk7Cj4gICAJ aWYgKHJldCAhPSAwKQo+ICAgCQlnb3RvIG91dF91bmxvY2s7Cj4gICAJcGFyYW1zLT5mb3JtYXQg PSBwdXRfaW1hZ2VfcmVjLT5mbGFncyAmIH5JOTE1X09WRVJMQVlfRkxBR1NfTUFTSzsKPiBAQCAt MTI4NSw4ICsxMjc4LDggQEAgc3RhdGljIGludCBjaGVja19nYW1tYShzdHJ1Y3QgZHJtX2ludGVs X292ZXJsYXlfYXR0cnMgKmF0dHJzKQo+ICAgCXJldHVybiAwOwo+ICAgfQo+Cj4gLWludCBpbnRl bF9vdmVybGF5X2F0dHJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gLQkJ CXN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2KQo+ICtpbnQgaW50ZWxfb3ZlcmxheV9hdHRyc19p b2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICsJCQkgICAgICBzdHJ1 Y3QgZHJtX2ZpbGUgKmZpbGVfcHJpdikKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2ludGVsX292ZXJs YXlfYXR0cnMgKmF0dHJzID0gZGF0YTsKPiAgIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IEBAIC0xMzEwLDcgKzEzMDMsNyBAQCBpbnQgaW50 ZWxfb3ZlcmxheV9hdHRycyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lkICpkYXRhLAo+ICAg CQlhdHRycy0+Y29udHJhc3QgICA9IG92ZXJsYXktPmNvbnRyYXN0Owo+ICAgCQlhdHRycy0+c2F0 dXJhdGlvbiA9IG92ZXJsYXktPnNhdHVyYXRpb247Cj4KPiAtCQlpZiAoIUlTX0dFTjIoZGV2KSkg ewo+ICsJCWlmICghSVNfR0VOMihkZXZfcHJpdikpIHsKPiAgIAkJCWF0dHJzLT5nYW1tYTAgPSBJ OTE1X1JFQUQoT0dBTUMwKTsKPiAgIAkJCWF0dHJzLT5nYW1tYTEgPSBJOTE1X1JFQUQoT0dBTUMx KTsKPiAgIAkJCWF0dHJzLT5nYW1tYTIgPSBJOTE1X1JFQUQoT0dBTUMyKTsKPiBAQCAtMTM0Miw3 ICsxMzM1LDcgQEAgaW50IGludGVsX292ZXJsYXlfYXR0cnMoc3RydWN0IGRybV9kZXZpY2UgKmRl diwgdm9pZCAqZGF0YSwKPiAgIAkJaW50ZWxfb3ZlcmxheV91bm1hcF9yZWdzKG92ZXJsYXksIHJl Z3MpOwo+Cj4gICAJCWlmIChhdHRycy0+ZmxhZ3MgJiBJOTE1X09WRVJMQVlfVVBEQVRFX0dBTU1B KSB7Cj4gLQkJCWlmIChJU19HRU4yKGRldikpCj4gKwkJCWlmIChJU19HRU4yKGRldl9wcml2KSkK PiAgIAkJCQlnb3RvIG91dF91bmxvY2s7Cj4KPiAgIAkJCWlmIChvdmVybGF5LT5hY3RpdmUpIHsK PiBAQCAtMTM3MiwzNyArMTM2NSwzNiBAQCBvdXRfdW5sb2NrOgo+ICAgCXJldHVybiByZXQ7Cj4g ICB9Cj4KPiAtdm9pZCBpbnRlbF9zZXR1cF9vdmVybGF5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4gK3ZvaWQgaW50ZWxfc2V0dXBfb3ZlcmxheShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCj4gICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYt PmRldl9wcml2YXRlOwo+ICAgCXN0cnVjdCBpbnRlbF9vdmVybGF5ICpvdmVybGF5Owo+ICAgCXN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpyZWdfYm87Cj4gICAJc3RydWN0IG92ZXJsYXlfcmVn aXN0ZXJzIF9faW9tZW0gKnJlZ3M7Cj4gICAJaW50IHJldDsKPgo+IC0JaWYgKCFIQVNfT1ZFUkxB WShkZXYpKQo+ICsJaWYgKCFIQVNfT1ZFUkxBWShkZXZfcHJpdikpCj4gICAJCXJldHVybjsKPgo+ ICAgCW92ZXJsYXkgPSBremFsbG9jKHNpemVvZigqb3ZlcmxheSksIEdGUF9LRVJORUwpOwo+ICAg CWlmICghb3ZlcmxheSkKPiAgIAkJcmV0dXJuOwo+Cj4gLQltdXRleF9sb2NrKCZkZXYtPnN0cnVj dF9tdXRleCk7Cj4gKwltdXRleF9sb2NrKCZkZXZfcHJpdi0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ ICAgCWlmIChXQVJOX09OKGRldl9wcml2LT5vdmVybGF5KSkKPiAgIAkJZ290byBvdXRfZnJlZTsK Pgo+IC0Jb3ZlcmxheS0+ZGV2ID0gZGV2Owo+ICsJb3ZlcmxheS0+aTkxNSA9IGRldl9wcml2Owo+ Cj4gICAJcmVnX2JvID0gTlVMTDsKPiAtCWlmICghT1ZFUkxBWV9ORUVEU19QSFlTSUNBTChkZXYp KQo+IC0JCXJlZ19ibyA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfc3RvbGVuKGRldiwgUEFHRV9T SVpFKTsKPiArCWlmICghT1ZFUkxBWV9ORUVEU19QSFlTSUNBTChkZXZfcHJpdikpCj4gKwkJcmVn X2JvID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9zdG9sZW4oZGV2X3ByaXYtPmRldiwgUEFHRV9T SVpFKTsKPiAgIAlpZiAocmVnX2JvID09IE5VTEwpCj4gLQkJcmVnX2JvID0gaTkxNV9nZW1fb2Jq ZWN0X2NyZWF0ZShkZXYsIFBBR0VfU0laRSk7Cj4gKwkJcmVnX2JvID0gaTkxNV9nZW1fb2JqZWN0 X2NyZWF0ZShkZXZfcHJpdi0+ZGV2LCBQQUdFX1NJWkUpOwo+ICAgCWlmIChJU19FUlIocmVnX2Jv KSkKPiAgIAkJZ290byBvdXRfZnJlZTsKPiAgIAlvdmVybGF5LT5yZWdfYm8gPSByZWdfYm87Cj4K PiAtCWlmIChPVkVSTEFZX05FRURTX1BIWVNJQ0FMKGRldikpIHsKPiArCWlmIChPVkVSTEFZX05F RURTX1BIWVNJQ0FMKGRldl9wcml2KSkgewo+ICAgCQlyZXQgPSBpOTE1X2dlbV9vYmplY3RfYXR0 YWNoX3BoeXMocmVnX2JvLCBQQUdFX1NJWkUpOwo+ICAgCQlpZiAocmV0KSB7Cj4gICAJCQlEUk1f RVJST1IoImZhaWxlZCB0byBhdHRhY2ggcGh5cyBvdmVybGF5IHJlZ3NcbiIpOwo+IEBAIC0xNDQy LDI1ICsxNDM0LDIzIEBAIHZvaWQgaW50ZWxfc2V0dXBfb3ZlcmxheShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+ICAgCWludGVsX292ZXJsYXlfdW5tYXBfcmVncyhvdmVybGF5LCByZWdzKTsKPgo+ ICAgCWRldl9wcml2LT5vdmVybGF5ID0gb3ZlcmxheTsKPiAtCW11dGV4X3VubG9jaygmZGV2LT5z dHJ1Y3RfbXV0ZXgpOwo+ICsJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+ZGV2LT5zdHJ1Y3RfbXV0 ZXgpOwo+ICAgCURSTV9JTkZPKCJpbml0aWFsaXplZCBvdmVybGF5IHN1cHBvcnRcbiIpOwo+ICAg CXJldHVybjsKPgo+ICAgb3V0X3VucGluX2JvOgo+IC0JaWYgKCFPVkVSTEFZX05FRURTX1BIWVNJ Q0FMKGRldikpCj4gKwlpZiAoIU9WRVJMQVlfTkVFRFNfUEhZU0lDQUwoZGV2X3ByaXYpKQo+ICAg CQlpOTE1X2dlbV9vYmplY3RfZ2d0dF91bnBpbihyZWdfYm8pOwo+ICAgb3V0X2ZyZWVfYm86Cj4g ICAJZHJtX2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJnJlZ19iby0+YmFzZSk7Cj4gICBvdXRfZnJl ZToKPiAtCW11dGV4X3VubG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICsJbXV0ZXhfdW5sb2Nr KCZkZXZfcHJpdi0+ZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICAgCWtmcmVlKG92ZXJsYXkpOwo+ICAg CXJldHVybjsKPiAgIH0KPgo+IC12b2lkIGludGVsX2NsZWFudXBfb3ZlcmxheShzdHJ1Y3QgZHJt X2RldmljZSAqZGV2KQo+ICt2b2lkIGludGVsX2NsZWFudXBfb3ZlcmxheShzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+IC0KPiAgIAlpZiAoIWRldl9wcml2LT5vdmVy bGF5KQo+ICAgCQlyZXR1cm47Cj4KPiBAQCAtMTQ4MywxNyArMTQ3MywxNiBAQCBzdHJ1Y3QgaW50 ZWxfb3ZlcmxheV9lcnJvcl9zdGF0ZSB7Cj4gICBzdGF0aWMgc3RydWN0IG92ZXJsYXlfcmVnaXN0 ZXJzIF9faW9tZW0gKgo+ICAgaW50ZWxfb3ZlcmxheV9tYXBfcmVnc19hdG9taWMoc3RydWN0IGlu dGVsX292ZXJsYXkgKm92ZXJsYXkpCj4gICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KG92ZXJsYXktPmRldik7Cj4gLQlzdHJ1Y3QgaTkxNV9nZ3R0ICpn Z3R0ID0gJmRldl9wcml2LT5nZ3R0Owo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gb3ZlcmxheS0+aTkxNTsKPiAgIAlzdHJ1Y3Qgb3ZlcmxheV9yZWdpc3RlcnMgX19pb21l bSAqcmVnczsKPgo+IC0JaWYgKE9WRVJMQVlfTkVFRFNfUEhZU0lDQUwob3ZlcmxheS0+ZGV2KSkK PiArCWlmIChPVkVSTEFZX05FRURTX1BIWVNJQ0FMKGRldl9wcml2KSkKPiAgIAkJLyogQ2FzdCB0 byBtYWtlIHNwYXJzZSBoYXBweSwgYnV0IGl0J3Mgd2MgbWVtb3J5IGFueXdheSwgc28KPiAgIAkJ ICogZXF1aXZhbGVudCB0byB0aGUgd2MgaW8gbWFwcGluZyBvbiBYODYuICovCj4gICAJCXJlZ3Mg PSAoc3RydWN0IG92ZXJsYXlfcmVnaXN0ZXJzIF9faW9tZW0gKikKPiAgIAkJCW92ZXJsYXktPnJl Z19iby0+cGh5c19oYW5kbGUtPnZhZGRyOwo+ICAgCWVsc2UKPiAtCQlyZWdzID0gaW9fbWFwcGlu Z19tYXBfYXRvbWljX3djKGdndHQtPm1hcHBhYmxlLAo+ICsJCXJlZ3MgPSBpb19tYXBwaW5nX21h cF9hdG9taWNfd2MoZGV2X3ByaXYtPmdndHQubWFwcGFibGUsCj4gICAJCQkJCQlvdmVybGF5LT5m bGlwX2FkZHIpOwo+Cj4gICAJcmV0dXJuIHJlZ3M7Cj4gQEAgLTE1MDIsMTEgKzE0OTEsMTAgQEAg aW50ZWxfb3ZlcmxheV9tYXBfcmVnc19hdG9taWMoc3RydWN0IGludGVsX292ZXJsYXkgKm92ZXJs YXkpCj4gICBzdGF0aWMgdm9pZCBpbnRlbF9vdmVybGF5X3VubWFwX3JlZ3NfYXRvbWljKHN0cnVj dCBpbnRlbF9vdmVybGF5ICpvdmVybGF5LAo+ICAgCQkJCQlzdHJ1Y3Qgb3ZlcmxheV9yZWdpc3Rl cnMgX19pb21lbSAqcmVncykKPiAgIHsKPiAtCWlmICghT1ZFUkxBWV9ORUVEU19QSFlTSUNBTChv dmVybGF5LT5kZXYpKQo+ICsJaWYgKCFPVkVSTEFZX05FRURTX1BIWVNJQ0FMKG92ZXJsYXktPmk5 MTUpKQo+ICAgCQlpb19tYXBwaW5nX3VubWFwX2F0b21pYyhyZWdzKTsKPiAgIH0KPgo+IC0KPiAg IHN0cnVjdCBpbnRlbF9vdmVybGF5X2Vycm9yX3N0YXRlICoKPiAgIGludGVsX292ZXJsYXlfY2Fw dHVyZV9lcnJvcl9zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gICB7 Cj4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwt Z2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8v bGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==