From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 09/18] drm/i915: Pass intel_encoder to infoframe functions Date: Fri, 21 Sep 2018 15:59:06 +0200 Message-ID: <20180921135906.GH11082@phenom.ffwll.local> References: <20180920185145.1912-1-ville.syrjala@linux.intel.com> <20180920185145.1912-10-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-ed1-x541.google.com (mail-ed1-x541.google.com [IPv6:2a00:1450:4864:20::541]) by gabe.freedesktop.org (Postfix) with ESMTPS id 629F36E7F0 for ; Fri, 21 Sep 2018 13:59:10 +0000 (UTC) Received: by mail-ed1-x541.google.com with SMTP id u23so1680337edx.10 for ; Fri, 21 Sep 2018 06:59:10 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180920185145.1912-10-ville.syrjala@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: Ville Syrjala Cc: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBTZXAgMjAsIDIwMTggYXQgMDk6NTE6MzZQTSArMDMwMCwgVmlsbGUgU3lyamFsYSB3 cm90ZToKPiBGcm9tOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+IAo+IE1ha2UgbGlmZSBzaW1wbGVyIGJ5IHBhc3NpbmcgYXJvdW5kIGludGVsX2VuY29k ZXIgaW5zdGVhZCBvZgo+IGRybV9lbmNvZGVyLgo+IAo+IEByMUAKPiBpZGVudGlmaWVyIEYgPX4g ImluZm9mcmFtZSI7Cj4gaWRlbnRpZmllciBJLCBNOwo+IEBACj4gRigKPiAtIHN0cnVjdCBkcm1f ZW5jb2RlciAqSQo+ICsgc3RydWN0IGludGVsX2VuY29kZXIgKkkKPiAgICwgLi4uKQo+IHsKPiA8 Li4uCj4gKAo+IC0gSS0+TQo+ICsgSS0+YmFzZS5NCj4gfAo+IC0gSQo+ICsgJkktPmJhc2UKPiAp Cj4gLi4uPgo+IH0KPiAKPiBAcjJACj4gaWRlbnRpZmllciBGID1+ICJpbmZvZnJhbWUiOwo+IGlk ZW50aWZpZXIgSTsKPiB0eXBlIFQsIFNUOwo+IEBACj4gU1Qgewo+IC4uLgo+IAlUICgqRikoCj4g LQkgICAgICAgc3RydWN0IGRybV9lbmNvZGVyICpJCj4gKwkgICAgICAgc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIKPiAJICAgICAgICwgLi4uKTsKPiAuLi4KPiB9Owo+IAo+IEBACj4gaWRl bnRpZmllciByMS5GOwo+IGV4cHJlc3Npb24gRTsKPiBAQAo+IEYoCj4gLSBFCj4gKyB0b19pbnRl bF9lbmNvZGVyKEUpCj4gICAsLi4uKQo+IAo+IEBACj4gaWRlbnRpZmllciByMi5GOwo+IGV4cHJl c3Npb24gRSwgWDsKPiBAQAo+ICgKPiBYLkYoCj4gLSAgIEUKPiArICAgdG9faW50ZWxfZW5jb2Rl cihFKQo+ICAgICAsLi4uKQo+IHwKPiBYLT5GKAo+IC0gICAgRQo+ICsgICAgdG9faW50ZWxfZW5j b2RlcihFKQo+ICAgICAgLC4uLikKPiApCj4gCj4gQEAKPiBleHByZXNzaW9uIEU7Cj4gQEAKPiAo Cj4gLSB0b19pbnRlbF9lbmNvZGVyKCZFLT5iYXNlKQo+ICsgRQo+IHwKPiAtIHRvX2ludGVsX2Vu Y29kZXIoJkUtPmJhc2UuYmFzZSkKPiArICZFLT5iYXNlCj4gKQo+IAo+IEBACj4gaWRlbnRpZmll ciBELCBNOwo+IGV4cHJlc3Npb24gRTsKPiBAQAo+ICBEID0gZW5jX3RvX2RpZ19wb3J0KCZFLT5i YXNlKQo+IDwuLi4KPiAoCj4gLSBELT5iYXNlLk0KPiArIEUtPk0KPiB8Cj4gLSAmRC0+YmFzZQo+ ICsgRQo+ICkKPiAuLi4+Cj4gCj4gQEAKPiBpZGVudGlmaWVyIEQ7Cj4gZXhwcmVzc2lvbiBFOwo+ IHR5cGUgVDsKPiBAQAo+IC0gVCBEID0gZW5jX3RvX2RpZ19wb3J0KEUpOwo+IC4uLiB3aGVuICE9 IEQKClNvbWVvbmUga25vd3MgYSBsb3QgbW9yZSBjb2NjaSB0aGFuIEkgZG8sIGltcHJlc3NpdmUu IEhvdyBkbyB5b3UgZmlndXJlCnRoaXMgc3R1ZmYgb3V0PyBSZWFkIHRoZSBzb3VyY2U/CgpBbHNv IHNlZW1zIHRvIGhhdmUgc29tZSBtYW51YWwgZml4dXBzIGJlbG93LCBzbyBJIGp1c3QgbG9va2Vk IGF0IHRoZSBkaWZmLgpUaGF0IGxvb2tzIGZpbmUuCgpBY2tlZC1ieTogRGFuaWVsIFZldHRlciA8 ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KCkknbGwgdHJ1c3QgdGhlIGNvbXBpbGVyIG1vcmUgaGVy ZSA6LSkKCkNoZWVycywgRGFuaWVsCgoKPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6Qg PHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kZGkuYyAgfCAgIDYgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHJ2LmggIHwgICA2ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyB8IDEy OSArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9wc3IuYyAgfCAgIDMgKy0KPiAgNCBmaWxlcyBjaGFuZ2VkLCA3MSBpbnNl cnRpb25zKCspLCA3MyBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ IGluZGV4IGI2OTEwYzhiNGUwOC4uMDg2ZTNmOTQwNTg2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGRpLmMKPiBAQCAtMjk0Nyw3ICsyOTQ3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3By ZV9lbmFibGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCj4gIAlpbnRl bF9kZGlfZW5hYmxlX3BpcGVfY2xvY2soY3J0Y19zdGF0ZSk7Cj4gIAo+IC0JaW50ZWxfZGlnX3Bv cnQtPnNldF9pbmZvZnJhbWVzKCZlbmNvZGVyLT5iYXNlLAo+ICsJaW50ZWxfZGlnX3BvcnQtPnNl dF9pbmZvZnJhbWVzKGVuY29kZXIsCj4gIAkJCQkgICAgICAgY3J0Y19zdGF0ZS0+aGFzX2luZm9m cmFtZSwKPiAgCQkJCSAgICAgICBjcnRjX3N0YXRlLCBjb25uX3N0YXRlKTsKPiAgfQo+IEBAIC0z MDQ2LDcgKzMwNDYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcG9zdF9kaXNhYmxlX2hkbWko c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9w b3J0ICpkaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7Cj4gIAlzdHJ1 Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9ICZkaWdfcG9ydC0+aGRtaTsKPiAgCj4gLQlkaWdf cG9ydC0+c2V0X2luZm9mcmFtZXMoJmVuY29kZXItPmJhc2UsIGZhbHNlLAo+ICsJZGlnX3BvcnQt PnNldF9pbmZvZnJhbWVzKGVuY29kZXIsIGZhbHNlLAo+ICAJCQkJIG9sZF9jcnRjX3N0YXRlLCBv bGRfY29ubl9zdGF0ZSk7Cj4gIAo+ICAJaW50ZWxfZGRpX2Rpc2FibGVfcGlwZV9jbG9jayhvbGRf Y3J0Y19zdGF0ZSk7Cj4gQEAgLTMzOTAsNyArMzM5MCw3IEBAIHZvaWQgaW50ZWxfZGRpX2dldF9j b25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJcGlwZV9jb25maWctPmhh c19oZG1pX3NpbmsgPSB0cnVlOwo+ICAJCWludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0 KCZlbmNvZGVyLT5iYXNlKTsKPiAgCj4gLQkJaWYgKGludGVsX2RpZ19wb3J0LT5pbmZvZnJhbWVf ZW5hYmxlZCgmZW5jb2Rlci0+YmFzZSwgcGlwZV9jb25maWcpKQo+ICsJCWlmIChpbnRlbF9kaWdf cG9ydC0+aW5mb2ZyYW1lX2VuYWJsZWQoZW5jb2RlciwgcGlwZV9jb25maWcpKQo+ICAJCQlwaXBl X2NvbmZpZy0+aGFzX2luZm9mcmFtZSA9IHRydWU7Cj4gIAo+ICAJCWlmICgodGVtcCAmIFRSQU5T X0RESV9IRE1JX1NDUkFNQkxJTkdfTUFTSykgPT0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ IGluZGV4IGJmMWMzODcyOGE1OS4uZTBmM2E3OWZjNzVlIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHJ2LmgKPiBAQCAtMTE3MywxNSArMTE3MywxNSBAQCBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9w b3J0IHsKPiAgCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZGRpX2lvX3Bvd2VyX2Rv bWFpbjsKPiAgCWVudW0gdGNfcG9ydF90eXBlIHRjX3R5cGU7Cj4gIAo+IC0Jdm9pZCAoKndyaXRl X2luZm9mcmFtZSkoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICsJdm9pZCAoKndyaXRl X2luZm9mcmFtZSkoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQljb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJCXVuc2lnbmVkIGludCB0 eXBlLAo+ICAJCQkJY29uc3Qgdm9pZCAqZnJhbWUsIHNzaXplX3QgbGVuKTsKPiAtCXZvaWQgKCpz ZXRfaW5mb2ZyYW1lcykoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICsJdm9pZCAoKnNl dF9pbmZvZnJhbWVzKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJICAgICAg IGJvb2wgZW5hYmxlLAo+ICAJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCj4gIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqY29ubl9zdGF0ZSk7Cj4gLQlib29sICgqaW5mb2ZyYW1lX2VuYWJsZWQpKHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlciwKPiArCWJvb2wgKCppbmZvZnJhbWVfZW5hYmxlZCkoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpwaXBlX2NvbmZpZyk7Cj4gIH07Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMK PiBpbmRleCAzYjU2YWIyNTMxNzEuLjQ1NGY1NzAyNzVlOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9oZG1pLmMKPiBAQCAtMTQ4LDE0ICsxNDgsMTMgQEAgaHN3X2RpcF9kYXRhX3JlZyhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAl9Cj4gIH0KPiAgCj4gLXN0YXRpYyB2 b2lkIGc0eF93cml0ZV9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICtz dGF0aWMgdm9pZCBnNHhfd3JpdGVfaW5mb2ZyYW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ICAJCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4g IAkJCQl1bnNpZ25lZCBpbnQgdHlwZSwKPiAgCQkJCWNvbnN0IHZvaWQgKmZyYW1lLCBzc2l6ZV90 IGxlbikKPiAgewo+ICAJY29uc3QgdTMyICpkYXRhID0gZnJhbWU7Cj4gLQlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAl1MzIgdmFsID0gSTkxNV9SRUFE KFZJREVPX0RJUF9DVEwpOwo+ICAJaW50IGk7Cj4gIAo+IEBAIC0xODYsMzEgKzE4NSwyOSBAQCBz dGF0aWMgdm9pZCBnNHhfd3JpdGVfaW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl ciwKPiAgCVBPU1RJTkdfUkVBRChWSURFT19ESVBfQ1RMKTsKPiAgfQo+ICAKPiAtc3RhdGljIGJv b2wgZzR4X2luZm9mcmFtZV9lbmFibGVkKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAr c3RhdGljIGJvb2wgZzR4X2luZm9mcmFtZV9lbmFibGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAo+ICAJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25m aWcpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+ZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19w b3J0ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAl1MzIgdmFsID0g STkxNV9SRUFEKFZJREVPX0RJUF9DVEwpOwo+ICAKPiAgCWlmICgodmFsICYgVklERU9fRElQX0VO QUJMRSkgPT0gMCkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+IC0JaWYgKCh2YWwgJiBWSURFT19E SVBfUE9SVF9NQVNLKSAhPSBWSURFT19ESVBfUE9SVChpbnRlbF9kaWdfcG9ydC0+YmFzZS5wb3J0 KSkKPiArCWlmICgodmFsICYgVklERU9fRElQX1BPUlRfTUFTSykgIT0gVklERU9fRElQX1BPUlQo ZW5jb2Rlci0+cG9ydCkpCj4gIAkJcmV0dXJuIGZhbHNlOwo+ICAKPiAgCXJldHVybiB2YWwgJiAo VklERU9fRElQX0VOQUJMRV9BVkkgfAo+ICAJCSAgICAgIFZJREVPX0RJUF9FTkFCTEVfVkVORE9S IHwgVklERU9fRElQX0VOQUJMRV9TUEQpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBpYnhfd3Jp dGVfaW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiArc3RhdGljIHZvaWQg aWJ4X3dyaXRlX2luZm9mcmFtZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJ CWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkJdW5zaWdu ZWQgaW50IHR5cGUsCj4gIAkJCQljb25zdCB2b2lkICpmcmFtZSwgc3NpemVfdCBsZW4pCj4gIHsK PiAgCWNvbnN0IHUzMiAqZGF0YSA9IGZyYW1lOwo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGVuY29kZXItPmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoZGV2KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMg PSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gIAlpOTE1X3JlZ190IHJl ZyA9IFRWSURFT19ESVBfQ1RMKGludGVsX2NydGMtPnBpcGUpOwo+ICAJdTMyIHZhbCA9IEk5MTVf UkVBRChyZWcpOwo+IEBAIC0yNDMsMTEgKzI0MCwxMCBAQCBzdGF0aWMgdm9pZCBpYnhfd3JpdGVf aW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgCVBPU1RJTkdfUkVBRChy ZWcpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgYm9vbCBpYnhfaW5mb2ZyYW1lX2VuYWJsZWQoc3RydWN0 IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICtzdGF0aWMgYm9vbCBpYnhfaW5mb2ZyYW1lX2VuYWJs ZWQoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkgIGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5kZXYpOwo+IC0Jc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7 Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXIt PmJhc2UuZGV2KTsKPiAgCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZp Zy0+YmFzZS5jcnRjKS0+cGlwZTsKPiAgCWk5MTVfcmVnX3QgcmVnID0gVFZJREVPX0RJUF9DVEwo cGlwZSk7Cj4gIAl1MzIgdmFsID0gSTkxNV9SRUFEKHJlZyk7Cj4gQEAgLTI1NSw3ICsyNTEsNyBA QCBzdGF0aWMgYm9vbCBpYnhfaW5mb2ZyYW1lX2VuYWJsZWQoc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyLAo+ICAJaWYgKCh2YWwgJiBWSURFT19ESVBfRU5BQkxFKSA9PSAwKQo+ICAJCXJldHVy biBmYWxzZTsKPiAgCj4gLQlpZiAoKHZhbCAmIFZJREVPX0RJUF9QT1JUX01BU0spICE9IFZJREVP X0RJUF9QT1JUKGludGVsX2RpZ19wb3J0LT5iYXNlLnBvcnQpKQo+ICsJaWYgKCh2YWwgJiBWSURF T19ESVBfUE9SVF9NQVNLKSAhPSBWSURFT19ESVBfUE9SVChlbmNvZGVyLT5wb3J0KSkKPiAgCQly ZXR1cm4gZmFsc2U7Cj4gIAo+ICAJcmV0dXJuIHZhbCAmIChWSURFT19ESVBfRU5BQkxFX0FWSSB8 Cj4gQEAgLTI2MywxNCArMjU5LDEzIEBAIHN0YXRpYyBib29sIGlieF9pbmZvZnJhbWVfZW5hYmxl ZChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJICAgICAgVklERU9fRElQX0VOQUJM RV9TUEQgfCBWSURFT19ESVBfRU5BQkxFX0dDUCk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGNw dF93cml0ZV9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICtzdGF0aWMg dm9pZCBjcHRfd3JpdGVfaW5mb2ZyYW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ ICAJCQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJCQl1 bnNpZ25lZCBpbnQgdHlwZSwKPiAgCQkJCWNvbnN0IHZvaWQgKmZyYW1lLCBzc2l6ZV90IGxlbikK PiAgewo+ICAJY29uc3QgdTMyICpkYXRhID0gZnJhbWU7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gZW5jb2Rlci0+ZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShkZXYpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiAgCWk5MTVfcmVn X3QgcmVnID0gVFZJREVPX0RJUF9DVEwoaW50ZWxfY3J0Yy0+cGlwZSk7Cj4gIAl1MzIgdmFsID0g STkxNV9SRUFEKHJlZyk7Cj4gQEAgLTMwNiwxMCArMzAxLDEwIEBAIHN0YXRpYyB2b2lkIGNwdF93 cml0ZV9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICAJUE9TVElOR19S RUFEKHJlZyk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBib29sIGNwdF9pbmZvZnJhbWVfZW5hYmxlZChz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gK3N0YXRpYyBib29sIGNwdF9pbmZvZnJhbWVf ZW5hYmxlZChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJCSAgY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmRldik7Cj4gKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsK PiAgCWVudW0gcGlwZSBwaXBlID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRj KS0+cGlwZTsKPiAgCXUzMiB2YWwgPSBJOTE1X1JFQUQoVFZJREVPX0RJUF9DVEwocGlwZSkpOwo+ ICAKPiBAQCAtMzIxLDE0ICszMTYsMTMgQEAgc3RhdGljIGJvb2wgY3B0X2luZm9mcmFtZV9lbmFi bGVkKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgCQkgICAgICBWSURFT19ESVBfRU5B QkxFX1NQRCB8IFZJREVPX0RJUF9FTkFCTEVfR0NQKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQg dmx2X3dyaXRlX2luZm9mcmFtZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gK3N0YXRp YyB2b2lkIHZsdl93cml0ZV9pbmZvZnJhbWUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs Cj4gIAkJCQljb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJ CXVuc2lnbmVkIGludCB0eXBlLAo+ICAJCQkJY29uc3Qgdm9pZCAqZnJhbWUsIHNzaXplX3QgbGVu KQo+ICB7Cj4gIAljb25zdCB1MzIgKmRhdGEgPSBmcmFtZTsKPiAtCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBlbmNvZGVyLT5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGRldik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRl bF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+ICAJaTkxNV9y ZWdfdCByZWcgPSBWTFZfVFZJREVPX0RJUF9DVEwoaW50ZWxfY3J0Yy0+cGlwZSk7Cj4gIAl1MzIg dmFsID0gSTkxNV9SRUFEKHJlZyk7Cj4gQEAgLTM2MSwxOCArMzU1LDE3IEBAIHN0YXRpYyB2b2lk IHZsdl93cml0ZV9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICAJUE9T VElOR19SRUFEKHJlZyk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBib29sIHZsdl9pbmZvZnJhbWVfZW5h YmxlZChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gK3N0YXRpYyBib29sIHZsdl9pbmZv ZnJhbWVfZW5hYmxlZChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJCSAgY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ICB7Cj4gLQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmRldik7Cj4gLQlz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGVuY190b19kaWdfcG9y dChlbmNvZGVyKTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJZW51bSBwaXBlIHBpcGUgPSB0b19pbnRlbF9jcnRj KHBpcGVfY29uZmlnLT5iYXNlLmNydGMpLT5waXBlOwo+ICAJdTMyIHZhbCA9IEk5MTVfUkVBRChW TFZfVFZJREVPX0RJUF9DVEwocGlwZSkpOwo+ICAKPiAgCWlmICgodmFsICYgVklERU9fRElQX0VO QUJMRSkgPT0gMCkKPiAgCQlyZXR1cm4gZmFsc2U7Cj4gIAo+IC0JaWYgKCh2YWwgJiBWSURFT19E SVBfUE9SVF9NQVNLKSAhPSBWSURFT19ESVBfUE9SVChpbnRlbF9kaWdfcG9ydC0+YmFzZS5wb3J0 KSkKPiArCWlmICgodmFsICYgVklERU9fRElQX1BPUlRfTUFTSykgIT0gVklERU9fRElQX1BPUlQo ZW5jb2Rlci0+cG9ydCkpCj4gIAkJcmV0dXJuIGZhbHNlOwo+ICAKPiAgCXJldHVybiB2YWwgJiAo VklERU9fRElQX0VOQUJMRV9BVkkgfAo+IEBAIC0zODAsMTQgKzM3MywxMyBAQCBzdGF0aWMgYm9v bCB2bHZfaW5mb2ZyYW1lX2VuYWJsZWQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICAJ CSAgICAgIFZJREVPX0RJUF9FTkFCTEVfU1BEIHwgVklERU9fRElQX0VOQUJMRV9HQ1ApOwo+ICB9 Cj4gIAo+IC1zdGF0aWMgdm9pZCBoc3dfd3JpdGVfaW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5jb2Rl ciAqZW5jb2RlciwKPiArc3RhdGljIHZvaWQgaHN3X3dyaXRlX2luZm9mcmFtZShzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAo+ICAJCQkJdW5zaWduZWQgaW50IHR5cGUsCj4gIAkJCQljb25zdCB2b2lk ICpmcmFtZSwgc3NpemVfdCBsZW4pCj4gIHsKPiAgCWNvbnN0IHUzMiAqZGF0YSA9IGZyYW1lOwo+ IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKPiAtCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiArCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJZW51 bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7 Cj4gIAlpOTE1X3JlZ190IGN0bF9yZWcgPSBIU1dfVFZJREVPX0RJUF9DVEwoY3B1X3RyYW5zY29k ZXIpOwo+ICAJaW50IGRhdGFfc2l6ZSA9IHR5cGUgPT0gRFBfU0RQX1ZTQyA/Cj4gQEAgLTQxNSwx MCArNDA3LDEwIEBAIHN0YXRpYyB2b2lkIGhzd193cml0ZV9pbmZvZnJhbWUoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyLAo+ICAJUE9TVElOR19SRUFEKGN0bF9yZWcpOwo+ICB9Cj4gIAo+IC1z dGF0aWMgYm9vbCBoc3dfaW5mb2ZyYW1lX2VuYWJsZWQoc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyLAo+ICtzdGF0aWMgYm9vbCBoc3dfaW5mb2ZyYW1lX2VuYWJsZWQoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gIAkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpw aXBlX2NvbmZpZykKPiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShlbmNvZGVyLT5kZXYpOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAl1MzIgdmFsID0gSTkxNV9SRUFE KEhTV19UVklERU9fRElQX0NUTChwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29kZXIpKTsKPiAgCj4g IAlyZXR1cm4gdmFsICYgKFZJREVPX0RJUF9FTkFCTEVfVlNDX0hTVyB8IFZJREVPX0RJUF9FTkFC TEVfQVZJX0hTVyB8Cj4gQEAgLTQ0MywxMSArNDM1LDExIEBAIHN0YXRpYyBib29sIGhzd19pbmZv ZnJhbWVfZW5hYmxlZChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gICAqIHRyaWNrIHRo ZW0gYnkgZ2l2aW5nIGFuIG9mZnNldCBpbnRvIHRoZSBidWZmZXIgYW5kIG1vdmluZyBiYWNrIHRo ZSBoZWFkZXIKPiAgICogYnl0ZXMgYnkgb25lLgo+ICAgKi8KPiAtc3RhdGljIHZvaWQgaW50ZWxf d3JpdGVfaW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiArc3RhdGljIHZv aWQgaW50ZWxfd3JpdGVfaW5mb2ZyYW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ ICAJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJ CSAgdW5pb24gaGRtaV9pbmZvZnJhbWUgKmZyYW1lKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydChlbmNvZGVyKTsKPiAr CXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19w b3J0KCZlbmNvZGVyLT5iYXNlKTsKPiAgCXU4IGJ1ZmZlcltWSURFT19ESVBfREFUQV9TSVpFXTsK PiAgCXNzaXplX3QgbGVuOwo+ICAKPiBAQCAtNDYxLDE0ICs0NTMsMTYgQEAgc3RhdGljIHZvaWQg aW50ZWxfd3JpdGVfaW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgCWJ1 ZmZlclszXSA9IDA7Cj4gIAlsZW4rKzsKPiAgCj4gLQlpbnRlbF9kaWdfcG9ydC0+d3JpdGVfaW5m b2ZyYW1lKGVuY29kZXIsIGNydGNfc3RhdGUsIGZyYW1lLT5hbnkudHlwZSwgYnVmZmVyLCBsZW4p Owo+ICsJaW50ZWxfZGlnX3BvcnQtPndyaXRlX2luZm9mcmFtZShlbmNvZGVyLAo+ICsJCQkJCWNy dGNfc3RhdGUsCj4gKwkJCQkJZnJhbWUtPmFueS50eXBlLCBidWZmZXIsIGxlbik7Cj4gIH0KPiAg Cj4gLXN0YXRpYyB2b2lkIGludGVsX2hkbWlfc2V0X2F2aV9pbmZvZnJhbWUoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyLAo+ICtzdGF0aWMgdm9pZCBpbnRlbF9oZG1pX3NldF9hdmlfaW5mb2Zy YW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkJCSBjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJCQkgY29uc3Qgc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBpbnRlbF9oZG1pICpp bnRlbF9oZG1pID0gZW5jX3RvX2ludGVsX2hkbWkoZW5jb2Rlcik7Cj4gKwlzdHJ1Y3QgaW50ZWxf aGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNvZGVyLT5iYXNlKTsKPiAg CWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KPiAgCQkmY3J0 Y19zdGF0ZS0+YmFzZS5hZGp1c3RlZF9tb2RlOwo+ICAJc3RydWN0IGRybV9jb25uZWN0b3IgKmNv bm5lY3RvciA9ICZpbnRlbF9oZG1pLT5hdHRhY2hlZF9jb25uZWN0b3ItPmJhc2U7Cj4gQEAgLTUw MCwxMCArNDk0LDExIEBAIHN0YXRpYyB2b2lkIGludGVsX2hkbWlfc2V0X2F2aV9pbmZvZnJhbWUo c3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkJCSAgICBjb25uX3N0YXRlKTsKPiAg Cj4gIAkvKiBUT0RPOiBoYW5kbGUgcGl4ZWwgcmVwZXRpdGlvbiBmb3IgWUNCQ1I0MjAgb3V0cHV0 cyAqLwo+IC0JaW50ZWxfd3JpdGVfaW5mb2ZyYW1lKGVuY29kZXIsIGNydGNfc3RhdGUsICZmcmFt ZSk7Cj4gKwlpbnRlbF93cml0ZV9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0ZSwKPiArCQkJ ICAgICAgJmZyYW1lKTsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaW50ZWxfaGRtaV9zZXRfc3Bk X2luZm9mcmFtZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gK3N0YXRpYyB2b2lkIGlu dGVsX2hkbWlfc2V0X3NwZF9pbmZvZnJhbWUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs Cj4gIAkJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+ICB7 Cj4gIAl1bmlvbiBoZG1pX2luZm9mcmFtZSBmcmFtZTsKPiBAQCAtNTE3LDExICs1MTIsMTIgQEAg c3RhdGljIHZvaWQgaW50ZWxfaGRtaV9zZXRfc3BkX2luZm9mcmFtZShzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIsCj4gIAo+ICAJZnJhbWUuc3BkLnNkaSA9IEhETUlfU1BEX1NESV9QQzsKPiAg Cj4gLQlpbnRlbF93cml0ZV9pbmZvZnJhbWUoZW5jb2RlciwgY3J0Y19zdGF0ZSwgJmZyYW1lKTsK PiArCWludGVsX3dyaXRlX2luZm9mcmFtZShlbmNvZGVyLCBjcnRjX3N0YXRlLAo+ICsJCQkgICAg ICAmZnJhbWUpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgdm9pZAo+IC1pbnRlbF9oZG1pX3NldF9oZG1p X2luZm9mcmFtZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gK2ludGVsX2hkbWlfc2V0 X2hkbWlfaW5mb2ZyYW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgICAg ICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJICAgICAg Y29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gIHsKPiBAQCAt NTM0LDIwICs1MzAsMjEgQEAgaW50ZWxfaGRtaV9zZXRfaGRtaV9pbmZvZnJhbWUoc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyLAo+ICAJaWYgKHJldCA8IDApCj4gIAkJcmV0dXJuOwo+ICAKPiAt CWludGVsX3dyaXRlX2luZm9mcmFtZShlbmNvZGVyLCBjcnRjX3N0YXRlLCAmZnJhbWUpOwo+ICsJ aW50ZWxfd3JpdGVfaW5mb2ZyYW1lKGVuY29kZXIsIGNydGNfc3RhdGUsCj4gKwkJCSAgICAgICZm cmFtZSk7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGc0eF9zZXRfaW5mb2ZyYW1lcyhzdHJ1Y3Qg ZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gK3N0YXRpYyB2b2lkIGc0eF9zZXRfaW5mb2ZyYW1lcyhz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJICAgICAgIGJvb2wgZW5hYmxlLAo+ ICAJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4g IAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkK PiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNv ZGVyLT5kZXYpOwo+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQg PSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiArCXN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5i YXNlKTsKPiAgCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gJmludGVsX2RpZ19wb3J0 LT5oZG1pOwo+ICAJaTkxNV9yZWdfdCByZWcgPSBWSURFT19ESVBfQ1RMOwo+ICAJdTMyIHZhbCA9 IEk5MTVfUkVBRChyZWcpOwo+IC0JdTMyIHBvcnQgPSBWSURFT19ESVBfUE9SVChpbnRlbF9kaWdf cG9ydC0+YmFzZS5wb3J0KTsKPiArCXUzMiBwb3J0ID0gVklERU9fRElQX1BPUlQoZW5jb2Rlci0+ cG9ydCk7Cj4gIAo+ICAJYXNzZXJ0X2hkbWlfcG9ydF9kaXNhYmxlZChpbnRlbF9oZG1pKTsKPiAg Cj4gQEAgLTY1NSwxMSArNjUyLDExIEBAIHN0YXRpYyBib29sIGdjcF9kZWZhdWx0X3BoYXNlX3Bv c3NpYmxlKGludCBwaXBlX2JwcCwKPiAgCQkgbW9kZS0+Y3J0Y19odG90YWwvMiAlIHBpeGVsc19w ZXJfZ3JvdXAgPT0gMCk7Cj4gIH0KPiAgCj4gLXN0YXRpYyBib29sIGludGVsX2hkbWlfc2V0X2dj cF9pbmZvZnJhbWUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICtzdGF0aWMgYm9vbCBp bnRlbF9oZG1pX3NldF9nY3BfaW5mb2ZyYW1lKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAo+ICAJCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAg CQkJCQkgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gIHsK PiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+ ZGV2KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5j b2Rlci0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9j cnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gIAlpOTE1X3JlZ190IHJlZzsKPiAgCXUzMiB2 YWwgPSAwOwo+IEBAIC02ODcsMTggKzY4NCwxOCBAQCBzdGF0aWMgYm9vbCBpbnRlbF9oZG1pX3Nl dF9nY3BfaW5mb2ZyYW1lKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAgCXJldHVybiB2 YWwgIT0gMDsKPiAgfQo+ICAKPiAtc3RhdGljIHZvaWQgaWJ4X3NldF9pbmZvZnJhbWVzKHN0cnVj dCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiArc3RhdGljIHZvaWQgaWJ4X3NldF9pbmZvZnJhbWVz KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgICAgICAgYm9vbCBlbmFibGUs Cj4gIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwK PiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRl KQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVu Y29kZXItPmRldik7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRj ID0gdG9faW50ZWxfY3J0YyhjcnRjX3N0YXRlLT5iYXNlLmNydGMpOwo+IC0Jc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7 Cj4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGVuY190b19k aWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7Cj4gIAlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRt aSA9ICZpbnRlbF9kaWdfcG9ydC0+aGRtaTsKPiAgCWk5MTVfcmVnX3QgcmVnID0gVFZJREVPX0RJ UF9DVEwoaW50ZWxfY3J0Yy0+cGlwZSk7Cj4gIAl1MzIgdmFsID0gSTkxNV9SRUFEKHJlZyk7Cj4g LQl1MzIgcG9ydCA9IFZJREVPX0RJUF9QT1JUKGludGVsX2RpZ19wb3J0LT5iYXNlLnBvcnQpOwo+ ICsJdTMyIHBvcnQgPSBWSURFT19ESVBfUE9SVChlbmNvZGVyLT5wb3J0KTsKPiAgCj4gIAlhc3Nl cnRfaGRtaV9wb3J0X2Rpc2FibGVkKGludGVsX2hkbWkpOwo+ICAKPiBAQCAtNzQwLDE0ICs3Mzcs MTQgQEAgc3RhdGljIHZvaWQgaWJ4X3NldF9pbmZvZnJhbWVzKHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlciwKPiAgCWludGVsX2hkbWlfc2V0X2hkbWlfaW5mb2ZyYW1lKGVuY29kZXIsIGNydGNf c3RhdGUsIGNvbm5fc3RhdGUpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBjcHRfc2V0X2luZm9m cmFtZXMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICtzdGF0aWMgdm9pZCBjcHRfc2V0 X2luZm9mcmFtZXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCSAgICAgICBi b29sIGVuYWJsZSwKPiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAo+ICAJCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUg KmNvbm5fc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZW5jb2Rlci0+ZGV2KTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGNfc3RhdGUtPmJhc2UuY3J0Yyk7Cj4gLQlz dHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGVuY190b19pbnRlbF9oZG1pKGVuY29kZXIp Owo+ICsJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBlbmNfdG9faW50ZWxfaGRtaSgm ZW5jb2Rlci0+YmFzZSk7Cj4gIAlpOTE1X3JlZ190IHJlZyA9IFRWSURFT19ESVBfQ1RMKGludGVs X2NydGMtPnBpcGUpOwo+ICAJdTMyIHZhbCA9IEk5MTVfUkVBRChyZWcpOwo+ICAKPiBAQCAtNzgz LDE4ICs3ODAsMTcgQEAgc3RhdGljIHZvaWQgY3B0X3NldF9pbmZvZnJhbWVzKHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlciwKPiAgCWludGVsX2hkbWlfc2V0X2hkbWlfaW5mb2ZyYW1lKGVuY29k ZXIsIGNydGNfc3RhdGUsIGNvbm5fc3RhdGUpOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCB2bHZf c2V0X2luZm9mcmFtZXMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAo+ICtzdGF0aWMgdm9p ZCB2bHZfc2V0X2luZm9mcmFtZXMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJ CSAgICAgICBib29sIGVuYWJsZSwKPiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkgICAgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0 b3Jfc3RhdGUgKmNvbm5fc3RhdGUpCj4gIHsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+ZGV2KTsKPiAtCXN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KGVuY29kZXIpOwo+ICsJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRl dik7Cj4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0 Y19zdGF0ZS0+YmFzZS5jcnRjKTsKPiAtCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0g ZW5jX3RvX2ludGVsX2hkbWkoZW5jb2Rlcik7Cj4gKwlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxf aGRtaSA9IGVuY190b19pbnRlbF9oZG1pKCZlbmNvZGVyLT5iYXNlKTsKPiAgCWk5MTVfcmVnX3Qg cmVnID0gVkxWX1RWSURFT19ESVBfQ1RMKGludGVsX2NydGMtPnBpcGUpOwo+ICAJdTMyIHZhbCA9 IEk5MTVfUkVBRChyZWcpOwo+IC0JdTMyIHBvcnQgPSBWSURFT19ESVBfUE9SVChpbnRlbF9kaWdf cG9ydC0+YmFzZS5wb3J0KTsKPiArCXUzMiBwb3J0ID0gVklERU9fRElQX1BPUlQoZW5jb2Rlci0+ cG9ydCk7Cj4gIAo+ICAJYXNzZXJ0X2hkbWlfcG9ydF9kaXNhYmxlZChpbnRlbF9oZG1pKTsKPiAg Cj4gQEAgLTgzNiwxMiArODMyLDEyIEBAIHN0YXRpYyB2b2lkIHZsdl9zZXRfaW5mb2ZyYW1lcyhz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsCj4gIAlpbnRlbF9oZG1pX3NldF9oZG1pX2luZm9m cmFtZShlbmNvZGVyLCBjcnRjX3N0YXRlLCBjb25uX3N0YXRlKTsKPiAgfQo+ICAKPiAtc3RhdGlj IHZvaWQgaHN3X3NldF9pbmZvZnJhbWVzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAr c3RhdGljIHZvaWQgaHN3X3NldF9pbmZvZnJhbWVzKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ICAJCQkgICAgICAgYm9vbCBlbmFibGUsCj4gIAkJCSAgICAgICBjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCBk cm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmRldik7Cj4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiAg CWk5MTVfcmVnX3QgcmVnID0gSFNXX1RWSURFT19ESVBfQ1RMKGNydGNfc3RhdGUtPmNwdV90cmFu c2NvZGVyKTsKPiAgCXUzMiB2YWwgPSBJOTE1X1JFQUQocmVnKTsKPiAgCj4gQEAgLTEyMTUsNyAr MTIxMSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2hkbWlfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAgCWlmICh0bXAgJiBIRE1JX01PREVfU0VMRUNUX0hETUkpCj4g IAkJcGlwZV9jb25maWctPmhhc19oZG1pX3NpbmsgPSB0cnVlOwo+ICAKPiAtCWlmIChpbnRlbF9k aWdfcG9ydC0+aW5mb2ZyYW1lX2VuYWJsZWQoJmVuY29kZXItPmJhc2UsIHBpcGVfY29uZmlnKSkK PiArCWlmIChpbnRlbF9kaWdfcG9ydC0+aW5mb2ZyYW1lX2VuYWJsZWQoZW5jb2RlciwgcGlwZV9j b25maWcpKQo+ICAJCXBpcGVfY29uZmlnLT5oYXNfaW5mb2ZyYW1lID0gdHJ1ZTsKPiAgCj4gIAlp ZiAodG1wICYgU0RWT19BVURJT19FTkFCTEUpCj4gQEAgLTE0MzYsNyArMTQzMiw4IEBAIHN0YXRp YyB2b2lkIGludGVsX2Rpc2FibGVfaGRtaShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiAgCQlpbnRlbF9zZXRfcGNoX2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2LCBQSVBF X0EsIHRydWUpOwo+ICAJfQo+ICAKPiAtCWludGVsX2RpZ19wb3J0LT5zZXRfaW5mb2ZyYW1lcygm ZW5jb2Rlci0+YmFzZSwgZmFsc2UsCj4gKwlpbnRlbF9kaWdfcG9ydC0+c2V0X2luZm9mcmFtZXMo ZW5jb2RlciwKPiArCQkJCSAgICAgICBmYWxzZSwKPiAgCQkJCSAgICAgICBvbGRfY3J0Y19zdGF0 ZSwgb2xkX2Nvbm5fc3RhdGUpOwo+ICAKPiAgCWludGVsX2RwX2R1YWxfbW9kZV9zZXRfdG1kc19v dXRwdXQoaW50ZWxfaGRtaSwgZmFsc2UpOwo+IEBAIC0xOTcxLDcgKzE5NjgsNyBAQCBzdGF0aWMg dm9pZCBpbnRlbF9oZG1pX3ByZV9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIs Cj4gIAo+ICAJaW50ZWxfaGRtaV9wcmVwYXJlKGVuY29kZXIsIHBpcGVfY29uZmlnKTsKPiAgCj4g LQlpbnRlbF9kaWdfcG9ydC0+c2V0X2luZm9mcmFtZXMoJmVuY29kZXItPmJhc2UsCj4gKwlpbnRl bF9kaWdfcG9ydC0+c2V0X2luZm9mcmFtZXMoZW5jb2RlciwKPiAgCQkJCSAgICAgICBwaXBlX2Nv bmZpZy0+aGFzX2luZm9mcmFtZSwKPiAgCQkJCSAgICAgICBwaXBlX2NvbmZpZywgY29ubl9zdGF0 ZSk7Cj4gIH0KPiBAQCAtMTk4OSw3ICsxOTg2LDcgQEAgc3RhdGljIHZvaWQgdmx2X2hkbWlfcHJl X2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCXZsdl9zZXRfcGh5X3Np Z25hbF9sZXZlbChlbmNvZGVyLCAweDJiMjQ1ZjVmLCAweDAwMDAyMDAwLCAweDU1NzhiODNhLAo+ ICAJCQkJIDB4MmIyNDc4NzgpOwo+ICAKPiAtCWRwb3J0LT5zZXRfaW5mb2ZyYW1lcygmZW5jb2Rl ci0+YmFzZSwKPiArCWRwb3J0LT5zZXRfaW5mb2ZyYW1lcyhlbmNvZGVyLAo+ICAJCQkgICAgICBw aXBlX2NvbmZpZy0+aGFzX2luZm9mcmFtZSwKPiAgCQkJICAgICAgcGlwZV9jb25maWcsIGNvbm5f c3RhdGUpOwo+ICAKPiBAQCAtMjA2MCw3ICsyMDU3LDcgQEAgc3RhdGljIHZvaWQgY2h2X2hkbWlf cHJlX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCS8qIFVzZSA4MDBt Vi0wZEIgKi8KPiAgCWNodl9zZXRfcGh5X3NpZ25hbF9sZXZlbChlbmNvZGVyLCAxMjgsIDEwMiwg ZmFsc2UpOwo+ICAKPiAtCWRwb3J0LT5zZXRfaW5mb2ZyYW1lcygmZW5jb2Rlci0+YmFzZSwKPiAr CWRwb3J0LT5zZXRfaW5mb2ZyYW1lcyhlbmNvZGVyLAo+ICAJCQkgICAgICBwaXBlX2NvbmZpZy0+ aGFzX2luZm9mcmFtZSwKPiAgCQkJICAgICAgcGlwZV9jb25maWcsIGNvbm5fc3RhdGUpOwo+ICAK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wc3IuYwo+IGluZGV4IGI2ODM4YjUyNTUwMi4uMTFmZGVmYWY3 NzI4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bzci5jCj4gKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcHNyLmMKPiBAQCAtMjk0LDcgKzI5NCw4IEBA IHN0YXRpYyB2b2lkIGludGVsX3Bzcl9zZXR1cF92c2Moc3RydWN0IGludGVsX2RwICppbnRlbF9k cCwKPiAgCQlwc3JfdnNjLnNkcF9oZWFkZXIuSEIzID0gMHg4Owo+ICAJfQo+ICAKPiAtCWludGVs X2RpZ19wb3J0LT53cml0ZV9pbmZvZnJhbWUoJmludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UsIGNy dGNfc3RhdGUsCj4gKwlpbnRlbF9kaWdfcG9ydC0+d3JpdGVfaW5mb2ZyYW1lKCZpbnRlbF9kaWdf cG9ydC0+YmFzZSwKPiArCQkJCQljcnRjX3N0YXRlLAo+ICAJCQkJCURQX1NEUF9WU0MsICZwc3Jf dnNjLCBzaXplb2YocHNyX3ZzYykpOwo+ICB9Cj4gIAo+IC0tIAo+IDIuMTYuNAo+IAo+IF9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gZHJpLWRldmVsIG1h aWxpbmcgbGlzdAo+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAoKLS0gCkRhbmll bCBWZXR0ZXIKU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCmh0dHA6Ly9ibG9n LmZmd2xsLmNoCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=