From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH v5 05/10] drm/i915: Stop frobbing with DDI encoder->type Date: Fri, 27 Oct 2017 14:05:38 +0200 Message-ID: <822d296c-3fd2-70d4-e7dd-a99c16598925@linux.intel.com> References: <20171019133721.11794-1-ville.syrjala@linux.intel.com> <20171019133721.11794-6-ville.syrjala@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 23BA76E904 for ; Fri, 27 Oct 2017 12:05:41 +0000 (UTC) In-Reply-To: <20171019133721.11794-6-ville.syrjala@linux.intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Ville Syrjala , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T3AgMTktMTAtMTcgb20gMTU6Mzcgc2NocmVlZiBWaWxsZSBTeXJqYWxhOgo+IEZyb206IFZpbGxl IFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4KPiBDdXJyZW50bHkg dGhlIERESSBlbmNvZGVyLT50eXBlIHdpbGwgY2hhbmdlIGF0IHJ1bnRpbWUgZGVwZW5kaW5nIG9u Cj4gd2hhdCBraW5kIG9mIGhvdHBsdWdzIHdlJ3ZlIHByb2Nlc3NlZC4gVGhhdCdzIHF1aXRlIGJh ZCBzaW5jZSB3ZSBjYW4ndAo+IHJlYWxseSB0cnVzdCB0aGF0IHRoYXQgY3VycmVudCB2YWx1ZSBv ZiBlbmNvZGVyLT50eXBlIGFjdHVhbGx5IG1hdGNoZXMKPiB0aGUgdHlwZSBvZiBzaWduYWwgd2Un cmUgdHJ5aW5nIHRvIGRyaXZlIHRocm91Z2ggaXQuCj4KPiBMZXQncyBlbGltaW5hdGUgdGhhdCBw cm9ibGVtIGJ5IGRlY2xhcmluZyB0aGF0IG5vbi1lRFAgRERJIHBvcnQgd2lsbAo+IGFsd2F5cyBo YXZlIHRoZSBlbmNvZGVyIHR5cGUgYXMgSU5URUxfT1VUUFVUX0RESS4gVGhpcyBtZWFucyB0aGUg Y29kZQo+IGNhbiBubyBsb25nZXIgdHJ5IHRvIGRpc3Rpbmd1aXNoIERQIHZzLiBIRE1JIGJhc2Vk IG9uIGVuY29kZXItPnR5cGUuCj4gV2UnbGwgbGVhdmUgZURQIGFzIElOVEVMX09VVFBVVF9FRFAs IHNpbmNlIGl0J2xsIG5ldmVyIGNoYW5nZSBhbmQKPiB0aGVyZSdzIGEgYnVuY2ggb2YgY29kZSB0 aGF0IHJlbGllcyBvbiB0aGF0IHZhbHVlIHRvIGlkZW50aWZ5IGVEUAo+IGVuY29kZXJzLgo+Cj4g V2UnbGwgaW50cm9kdWNlIGEgbmV3IGVuY29kZXIgLmNvbXB1dGVfb3V0cHV0X3R5cGUoKSBob29r LiBUaGlzIGFsbG93cwo+IHVzIHRvIGNvbXB1dGUgdGhlIGZ1bGwgb3V0cHV0X3R5cGVzIGJlZm9y ZSBhbnkgZW5jb2RlciAuY29tcHV0ZV9jb25maWcoKQo+IGhvb2tzIGdldCBjYWxsZWQsIHRodXMg dGhvc2UgaG9va3MgY2FuIHJlbHkgb24gb3V0cHV0X3R5cGVzIGJlaW5nCj4gY29ycmVjdCwgd2hp Y2ggaXMgdXNlZnVsIGZvciBjbG9uaW5nIG9uIG9sZHIgcGxhdGZvcm1zLiBGb3Igbm93IHdlJ2xs Cj4ganVzdCBsb29rIGF0IHRoZSBjb25uZWN0b3IgdHlwZSBhbmQgcGljayB0aGUgY29ycmVjdCBt b2RlIGJhc2VkIG9uIHRoYXQuCj4gSW4gdGhlIGZ1dHVyZSB0aGUgbmV3IGhvb2sgY291bGQgYmUg dXNlZCB0byBpbXBsZW1lbnQgZHluYW1pYyBzd2l0Y2hpbmcKPiBiZXR3ZWVuIExTIGFuZCBQQ09O IG1vZGVzIGZvciBMU1BDT04uCj4KPiBUT0RPOiBtYXliZSBtYWtlIC5nZXRfY29uZmlnKCkgcG9w dWxhdGUgb3V0cHV0X3R5cGVzIHJhdGhlciB0aGFuIGRvaW5nCj4gdGhlIGRlZmF1bHQgZW5jb2Rl ci0+dHlwZSB0aGluZyBpbiBjYWxsZXIgYW5kIHRoZW4gdW5kb2luZyBpdCBmb3IKPiBEREkgaW4g LmdldF9jb25maWcoKS4KPgo+IHYyOiBGaXggQlhUL0dMSyBQUFMgZXhwbG9zaW9uIHdpdGggRFNJ L01TVCBlbmNvZGVycwo+IHYzOiBBdm9pZCB0aGUgUFBTIHdhcm4gb24gcHVyZSBIRE1JL0RWSSBE REkgZW5jb2RlcnMgYnkgY2hlY2tpbmcgZHAub3V0cHV0X3JlZwo+IHY0OiBSZWJhc2UKPiB2NTog UG9wdWxhdGUgb3V0cHV0X3R5cGVzIGluIC5nZXRfY29uZmlnKCkgcmF0aGVyIHRoYW4gaW4gdGhl IGNhbGxlcgoKQ291bGQgd2UgZ2V0IHJpZCBvZiBjb21wdXRlX291dHB1dF90eXBlIGluIHRoaXMg cGF0Y2g/IFBlcmhhcHMgZG8gaXQgYXMgcHJlbGltaW5hcnkKcGF0Y2ggdG93YXJkcyByZW1vdmlu ZyB0aGUgdXNlPwoKUmVzdCBvZiB0aGUgc2VyaWVzIGV4Y2VwdCBwYXRjaCA4IGxvb2tzIGdvb2Qu IEZvciBwYXRjaCAxLTQsIDYsIDcsIDkgKGlmIHRoZSBkZWx0YQpiZXR3ZWVuIGRkaV9nZXRfY29u ZmlnIGFuZCBvbGQgbXN0IGdldF9jb25maWcgaXMgaGFybWxlc3Mgb3IgYmVuZWZpY2lhbCkgYW5k IDEwOgoKUmV2aWV3ZWQtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBs aW51eC5pbnRlbC5jb20+CgpUaGFua3MgZm9yIHRoZSB3b3JrIHRvd2FyZHMgY2xlYW5pbmcgdGhp cyBtZXNzIHVwLgoKfk1hYXJ0ZW4KPiBTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2RlYnVnZnMuYyAgIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf Y3J0LmMgICAgICB8ICAyICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jICAg ICAgfCA0MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgIHwgMTYgKysrKysrKy0tLS0tLQo+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jICAgICAgIHwgMjQgKysrKysrKysrLS0tLS0tLS0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyAgIHwgIDIgKysKPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggICAgICB8ICA3ICsrKystLQo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kc2kuYyAgICAgIHwgIDIgKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHZvLmMgICAgICB8ICAyICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hkbWkuYyAgICAgfCAxMiArKysrLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2x2ZHMuYyAgICAgfCAgMiArKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vcHJlZ2lv bi5jIHwgIDIgKy0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5jICAgICB8ICAy ICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMgICAgICAgfCAgMiArKwo+ICAx NCBmaWxlcyBjaGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkKPgo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gaW5kZXggYzY1ZTM4MWI4NWYzLi5lNTMzM2Jm ZGYzMmQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYwo+IEBAIC0zMDQ5LDcg KzMwNDksNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jb25uZWN0b3JfaW5mbyhzdHJ1Y3Qgc2VxX2Zp bGUgKm0sCj4gIAkJYnJlYWs7Cj4gIAljYXNlIERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQToKPiAg CQlpZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfSERNSSB8fAo+IC0JCSAg ICBpbnRlbF9lbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9VTktOT1dOKQo+ICsJCSAgICBp bnRlbF9lbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9EREkpCj4gIAkJCWludGVsX2hkbWlf aW5mbyhtLCBpbnRlbF9jb25uZWN0b3IpOwo+ICAJCWJyZWFrOwo+ICAJZGVmYXVsdDoKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9jcnQuYwo+IGluZGV4IDY2OGU4YzNlNzkxZC4uYTYxZTYxZWZlOWFhIDEw MDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMKPiBAQCAtMTE5LDYgKzExOSw4IEBAIHN0YXRp YyB1bnNpZ25lZCBpbnQgaW50ZWxfY3J0X2dldF9mbGFncyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZW5jb2RlcikKPiAgc3RhdGljIHZvaWQgaW50ZWxfY3J0X2dldF9jb25maWcoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCQkgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVf Y29uZmlnKQo+ICB7Cj4gKwlwaXBlX2NvbmZpZy0+b3V0cHV0X3R5cGVzIHw9IEJJVChJTlRFTF9P VVRQVVRfQU5BTE9HKTsKPiArCj4gIAlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZs YWdzIHw9IGludGVsX2NydF9nZXRfZmxhZ3MoZW5jb2Rlcik7Cj4gIAo+ICAJcGlwZV9jb25maWct PmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrID0gcGlwZV9jb25maWctPnBvcnRfY2xvY2s7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBpbmRleCBjODc5MGJiNzQ4MzkuLjYzMDYwOTU3 NWRiNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gQEAgLTQ5NywxMCArNDk3LDgg QEAgZW51bSBwb3J0IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9wb3J0KHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKQo+ICAJc3dpdGNoIChlbmNvZGVyLT50eXBlKSB7Cj4gIAljYXNlIElOVEVM X09VVFBVVF9EUF9NU1Q6Cj4gIAkJcmV0dXJuIGVuY190b19tc3QoJmVuY29kZXItPmJhc2UpLT5w cmltYXJ5LT5wb3J0Owo+IC0JY2FzZSBJTlRFTF9PVVRQVVRfRFA6Cj4gIAljYXNlIElOVEVMX09V VFBVVF9FRFA6Cj4gLQljYXNlIElOVEVMX09VVFBVVF9IRE1JOgo+IC0JY2FzZSBJTlRFTF9PVVRQ VVRfVU5LTk9XTjoKPiArCWNhc2UgSU5URUxfT1VUUFVUX0RESToKPiAgCQlyZXR1cm4gZW5jX3Rv X2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKS0+cG9ydDsKPiAgCWNhc2UgSU5URUxfT1VUUFVUX0FO QUxPRzoKPiAgCQlyZXR1cm4gUE9SVF9FOwo+IEBAIC0xNTMyLDYgKzE1MzAsNyBAQCB2b2lkIGlu dGVsX2RkaV9zZXRfdmNfcGF5bG9hZF9hbGxvYyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY3J0Yy0+YmFzZS5kZXYpOwo+ICAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVy ID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7Cj4gIAl1aW50MzJfdCB0ZW1wOwo+ICsKPiAg CXRlbXAgPSBJOTE1X1JFQUQoVFJBTlNfRERJX0ZVTkNfQ1RMKGNwdV90cmFuc2NvZGVyKSk7Cj4g IAlpZiAoc3RhdGUgPT0gdHJ1ZSkKPiAgCQl0ZW1wIHw9IFRSQU5TX0RESV9EUF9WQ19QQVlMT0FE X0FMTE9DOwo+IEBAIC0yNTg2LDEyICsyNTg1LDIzIEBAIHZvaWQgaW50ZWxfZGRpX2dldF9jb25m aWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkJCXBpcGVfY29uZmlnLT5oZG1p X2hpZ2hfdG1kc19jbG9ja19yYXRpbyA9IHRydWU7Cj4gIAkJLyogZmFsbCB0aHJvdWdoICovCj4g IAljYXNlIFRSQU5TX0RESV9NT0RFX1NFTEVDVF9EVkk6Cj4gKwkJcGlwZV9jb25maWctPm91dHB1 dF90eXBlcyB8PSBCSVQoSU5URUxfT1VUUFVUX0hETUkpOwo+ICAJCXBpcGVfY29uZmlnLT5sYW5l X2NvdW50ID0gNDsKPiAgCQlicmVhazsKPiAgCWNhc2UgVFJBTlNfRERJX01PREVfU0VMRUNUX0ZE SToKPiArCQlwaXBlX2NvbmZpZy0+b3V0cHV0X3R5cGVzIHw9IEJJVChJTlRFTF9PVVRQVVRfQU5B TE9HKTsKPiAgCQlicmVhazsKPiAgCWNhc2UgVFJBTlNfRERJX01PREVfU0VMRUNUX0RQX1NTVDoK PiArCQlpZiAoZW5jb2Rlci0+dHlwZSA9PSBJTlRFTF9PVVRQVVRfRURQKQo+ICsJCQlwaXBlX2Nv bmZpZy0+b3V0cHV0X3R5cGVzIHw9IEJJVChJTlRFTF9PVVRQVVRfRURQKTsKPiArCQllbHNlCj4g KwkJCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMgfD0gQklUKElOVEVMX09VVFBVVF9EUCk7Cj4g KwkJcGlwZV9jb25maWctPmxhbmVfY291bnQgPQo+ICsJCQkoKHRlbXAgJiBERElfUE9SVF9XSURU SF9NQVNLKSA+PiBERElfUE9SVF9XSURUSF9TSElGVCkgKyAxOwo+ICsJCWludGVsX2RwX2dldF9t X24oaW50ZWxfY3J0YywgcGlwZV9jb25maWcpOwo+ICsJCWJyZWFrOwo+ICAJY2FzZSBUUkFOU19E RElfTU9ERV9TRUxFQ1RfRFBfTVNUOgo+ICsJCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMgfD0g QklUKElOVEVMX09VVFBVVF9EUF9NU1QpOwo+ICAJCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50ID0K PiAgCQkJKCh0ZW1wICYgRERJX1BPUlRfV0lEVEhfTUFTSykgPj4gRERJX1BPUlRfV0lEVEhfU0hJ RlQpICsgMTsKPiAgCQlpbnRlbF9kcF9nZXRfbV9uKGludGVsX2NydGMsIHBpcGVfY29uZmlnKTsK PiBAQCAtMjYzMCwyMSArMjY0MCwzNiBAQCB2b2lkIGludGVsX2RkaV9nZXRfY29uZmlnKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQlieHRfZGRpX3BoeV9nZXRfbGFuZV9sYXRf b3B0aW1fbWFzayhlbmNvZGVyKTsKPiAgfQo+ICAKPiArc3RhdGljIGVudW0gaW50ZWxfb3V0cHV0 X3R5cGUKPiAraW50ZWxfZGRpX2NvbXB1dGVfb3V0cHV0X3R5cGUoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCj4gKwkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0 YXRlLAo+ICsJCQkgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkK PiArewo+ICsJc3dpdGNoIChjb25uX3N0YXRlLT5jb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlKSB7 Cj4gKwljYXNlIERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQToKPiArCQlyZXR1cm4gSU5URUxfT1VU UFVUX0hETUk7Cj4gKwljYXNlIERSTV9NT0RFX0NPTk5FQ1RPUl9lRFA6Cj4gKwkJcmV0dXJuIElO VEVMX09VVFBVVF9FRFA7Cj4gKwljYXNlIERSTV9NT0RFX0NPTk5FQ1RPUl9EaXNwbGF5UG9ydDoK PiArCQlyZXR1cm4gSU5URUxfT1VUUFVUX0RQOwo+ICsJZGVmYXVsdDoKPiArCQlNSVNTSU5HX0NB U0UoY29ubl9zdGF0ZS0+Y29ubmVjdG9yLT5jb25uZWN0b3JfdHlwZSk7Cj4gKwkJcmV0dXJuIElO VEVMX09VVFBVVF9VTlVTRUQ7Cj4gKwl9Cj4gK30KPiArCj4gIHN0YXRpYyBib29sIGludGVsX2Rk aV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCQkJCSAg ICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAo+ICAJCQkJICAgICBzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiAgewo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gLQlp bnQgdHlwZSA9IGVuY29kZXItPnR5cGU7Cj4gIAlpbnQgcG9ydCA9IGludGVsX2RkaV9nZXRfZW5j b2Rlcl9wb3J0KGVuY29kZXIpOwo+ICAJaW50IHJldDsKPiAgCj4gLQlXQVJOKHR5cGUgPT0gSU5U RUxfT1VUUFVUX1VOS05PV04sICJjb21wdXRlX2NvbmZpZygpIG9uIHVua25vd24gb3V0cHV0IVxu Iik7Cj4gLQo+ICAJaWYgKHBvcnQgPT0gUE9SVF9BKQo+ICAJCXBpcGVfY29uZmlnLT5jcHVfdHJh bnNjb2RlciA9IFRSQU5TQ09ERVJfRURQOwo+ICAKPiAtCWlmICh0eXBlID09IElOVEVMX09VVFBV VF9IRE1JKQo+ICsJaWYgKGludGVsX2NydGNfaGFzX3R5cGUocGlwZV9jb25maWcsIElOVEVMX09V VFBVVF9IRE1JKSkKPiAgCQlyZXQgPSBpbnRlbF9oZG1pX2NvbXB1dGVfY29uZmlnKGVuY29kZXIs IHBpcGVfY29uZmlnLCBjb25uX3N0YXRlKTsKPiAgCWVsc2UKPiAgCQlyZXQgPSBpbnRlbF9kcF9j b21wdXRlX2NvbmZpZyhlbmNvZGVyLCBwaXBlX2NvbmZpZywgY29ubl9zdGF0ZSk7Cj4gQEAgLTI3 NjQsNiArMjc4OSw3IEBAIHZvaWQgaW50ZWxfZGRpX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkKPiAgCWRybV9lbmNvZGVyX2luaXQoJmRldl9w cml2LT5kcm0sIGVuY29kZXIsICZpbnRlbF9kZGlfZnVuY3MsCj4gIAkJCSBEUk1fTU9ERV9FTkNP REVSX1RNRFMsICJEREkgJWMiLCBwb3J0X25hbWUocG9ydCkpOwo+ICAKPiArCWludGVsX2VuY29k ZXItPmNvbXB1dGVfb3V0cHV0X3R5cGUgPSBpbnRlbF9kZGlfY29tcHV0ZV9vdXRwdXRfdHlwZTsK PiAgCWludGVsX2VuY29kZXItPmNvbXB1dGVfY29uZmlnID0gaW50ZWxfZGRpX2NvbXB1dGVfY29u ZmlnOwo+ICAJaW50ZWxfZW5jb2Rlci0+ZW5hYmxlID0gaW50ZWxfZW5hYmxlX2RkaTsKPiAgCWlm IChJU19HRU45X0xQKGRldl9wcml2KSkKPiBAQCAtMjgyMSw5ICsyODQ3LDEwIEBAIHZvaWQgaW50 ZWxfZGRpX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQg cG9ydCkKPiAgCQl9Cj4gIAl9Cj4gIAo+ICsJaW50ZWxfZGlnX3BvcnQtPmRwLm91dHB1dF9yZWcg PSBJTlZBTElEX01NSU9fUkVHOwo+ICAJaW50ZWxfZGlnX3BvcnQtPm1heF9sYW5lcyA9IG1heF9s YW5lczsKPiAgCj4gLQlpbnRlbF9lbmNvZGVyLT50eXBlID0gSU5URUxfT1VUUFVUX1VOS05PV047 Cj4gKwlpbnRlbF9lbmNvZGVyLT50eXBlID0gSU5URUxfT1VUUFVUX0RESTsKPiAgCWludGVsX2Vu Y29kZXItPnBvd2VyX2RvbWFpbiA9IGludGVsX3BvcnRfdG9fcG93ZXJfZG9tYWluKHBvcnQpOwo+ ICAJaW50ZWxfZW5jb2Rlci0+cG9ydCA9IHBvcnQ7Cj4gIAlpbnRlbF9lbmNvZGVyLT5jcnRjX21h c2sgPSAoMSA8PCAwKSB8ICgxIDw8IDEpIHwgKDEgPDwgMik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rpc3BsYXkuYwo+IGluZGV4IGJkNjJjMGE2NWJjZC4uYTdlMDJhZTMzNTgzIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC0xMDU5MSw3ICsxMDU5MSw3IEBA IHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgb3V0cHV0X3R5cGVfc3RyW10gPSB7Cj4gIAlPVVRQ VVRfVFlQRShEUCksCj4gIAlPVVRQVVRfVFlQRShFRFApLAo+ICAJT1VUUFVUX1RZUEUoRFNJKSwK PiAtCU9VVFBVVF9UWVBFKFVOS05PV04pLAo+ICsJT1VUUFVUX1RZUEUoRERJKSwKPiAgCU9VVFBV VF9UWVBFKERQX01TVCksCj4gIH07Cj4gIAo+IEBAIC0xMDc2Miw3ICsxMDc2Miw3IEBAIHN0YXRp YyBib29sIGNoZWNrX2RpZ2l0YWxfcG9ydF9jb25mbGljdHMoc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlKQo+ICAKPiAgCQlzd2l0Y2ggKGVuY29kZXItPnR5cGUpIHsKPiAgCQkJdW5zaWdu ZWQgaW50IHBvcnRfbWFzazsKPiAtCQljYXNlIElOVEVMX09VVFBVVF9VTktOT1dOOgo+ICsJCWNh c2UgSU5URUxfT1VUUFVUX0RESToKPiAgCQkJaWYgKFdBUk5fT04oIUhBU19EREkodG9faTkxNShk ZXYpKSkpCj4gIAkJCQlicmVhazsKPiAgCQljYXNlIElOVEVMX09VVFBVVF9EUDoKPiBAQCAtMTA4 OTUsNyArMTA4OTUsMTIgQEAgaW50ZWxfbW9kZXNldF9waXBlX2NvbmZpZyhzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCj4gIAkJICogRGV0ZXJtaW5lIG91dHB1dF90eXBlcyBiZWZvcmUgY2FsbGluZyB0 aGUgLmNvbXB1dGVfY29uZmlnKCkKPiAgCQkgKiBob29rcyBzbyB0aGF0IHRoZSBob29rcyBjYW4g dXNlIHRoaXMgaW5mb3JtYXRpb24gc2FmZWx5Lgo+ICAJCSAqLwo+IC0JCXBpcGVfY29uZmlnLT5v dXRwdXRfdHlwZXMgfD0gMSA8PCBlbmNvZGVyLT50eXBlOwo+ICsJCWlmIChlbmNvZGVyLT5jb21w dXRlX291dHB1dF90eXBlKQo+ICsJCQlwaXBlX2NvbmZpZy0+b3V0cHV0X3R5cGVzIHw9Cj4gKwkJ CQlCSVQoZW5jb2Rlci0+Y29tcHV0ZV9vdXRwdXRfdHlwZShlbmNvZGVyLCBwaXBlX2NvbmZpZywK PiArCQkJCQkJCQkgY29ubmVjdG9yX3N0YXRlKSk7Cj4gKwkJZWxzZQo+ICsJCQlwaXBlX2NvbmZp Zy0+b3V0cHV0X3R5cGVzIHw9IEJJVChlbmNvZGVyLT50eXBlKTsKPiAgCX0KPiAgCj4gIGVuY29k ZXJfcmV0cnk6Cj4gQEAgLTExNTcyLDEwICsxMTU3Nyw4IEBAIHZlcmlmeV9jcnRjX3N0YXRlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQkJCSJFbmNvZGVyIGNvbm5lY3RlZCB0byB3cm9uZyBw aXBlICVjXG4iLAo+ICAJCQkJcGlwZV9uYW1lKHBpcGUpKTsKPiAgCj4gLQkJaWYgKGFjdGl2ZSkg ewo+IC0JCQlwaXBlX2NvbmZpZy0+b3V0cHV0X3R5cGVzIHw9IDEgPDwgZW5jb2Rlci0+dHlwZTsK PiArCQlpZiAoYWN0aXZlKQo+ICAJCQllbmNvZGVyLT5nZXRfY29uZmlnKGVuY29kZXIsIHBpcGVf Y29uZmlnKTsKPiAtCQl9Cj4gIAl9Cj4gIAo+ICAJaW50ZWxfY3J0Y19jb21wdXRlX3BpeGVsX3Jh dGUocGlwZV9jb25maWcpOwo+IEBAIC0xNDk2Myw3ICsxNDk2Niw2IEBAIHN0YXRpYyB2b2lkIGlu dGVsX21vZGVzZXRfcmVhZG91dF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ICAJ CQljcnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjLT5iYXNlLnN0YXRlKTsKPiAg Cj4gIAkJCWVuY29kZXItPmJhc2UuY3J0YyA9ICZjcnRjLT5iYXNlOwo+IC0JCQljcnRjX3N0YXRl LT5vdXRwdXRfdHlwZXMgfD0gMSA8PCBlbmNvZGVyLT50eXBlOwo+ICAJCQllbmNvZGVyLT5nZXRf Y29uZmlnKGVuY29kZXIsIGNydGNfc3RhdGUpOwo+ICAJCX0gZWxzZSB7Cj4gIAkJCWVuY29kZXIt PmJhc2UuY3J0YyA9IE5VTEw7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gaW5kZXggYWE3NWY1 NWVlYjYxLi4yYjQ4MmQxMjAwMGUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiBAQCAt NzU4LDExICs3NTgsMTYgQEAgdm9pZCBpbnRlbF9wb3dlcl9zZXF1ZW5jZXJfcmVzZXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ICAJCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxf ZHA7Cj4gIAo+ICAJCWlmIChlbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9EUCAmJgo+IC0J CSAgICBlbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9FRFApCj4gKwkJICAgIGVuY29kZXIt PnR5cGUgIT0gSU5URUxfT1VUUFVUX0VEUCAmJgo+ICsJCSAgICBlbmNvZGVyLT50eXBlICE9IElO VEVMX09VVFBVVF9EREkpCj4gIAkJCWNvbnRpbnVlOwo+ICAKPiAgCQlpbnRlbF9kcCA9IGVuY190 b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gIAo+ICsJCS8qIFNraXAgcHVyZSBEVkkvSERN SSBEREkgZW5jb2RlcnMgKi8KPiArCQlpZiAoIWk5MTVfbW1pb19yZWdfdmFsaWQoaW50ZWxfZHAt Pm91dHB1dF9yZWcpKQo+ICsJCQljb250aW51ZTsKPiArCj4gIAkJV0FSTl9PTihpbnRlbF9kcC0+ YWN0aXZlX3BpcGUgIT0gSU5WQUxJRF9QSVBFKTsKPiAgCj4gIAkJaWYgKGVuY29kZXItPnR5cGUg IT0gSU5URUxfT1VUUFVUX0VEUCkKPiBAQCAtMjYwMyw2ICsyNjA4LDExIEBAIHN0YXRpYyB2b2lk IGludGVsX2RwX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAll bnVtIHBvcnQgcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKS0+cG9ydDsKPiAgCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5iYXNlLmNydGMpOwo+ ICAKPiArCWlmIChlbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9FRFApCj4gKwkJcGlwZV9j b25maWctPm91dHB1dF90eXBlcyB8PSBCSVQoSU5URUxfT1VUUFVUX0VEUCk7Cj4gKwllbHNlCj4g KwkJcGlwZV9jb25maWctPm91dHB1dF90eXBlcyB8PSBCSVQoSU5URUxfT1VUUFVUX0RQKTsKPiAr Cj4gIAl0bXAgPSBJOTE1X1JFQUQoaW50ZWxfZHAtPm91dHB1dF9yZWcpOwo+ICAKPiAgCXBpcGVf Y29uZmlnLT5oYXNfYXVkaW8gPSB0bXAgJiBEUF9BVURJT19PVVRQVVRfRU5BQkxFICYmIHBvcnQg IT0gUE9SVF9BOwo+IEBAIC00Njk5LDggKzQ3MDksNiBAQCBpbnRlbF9kcF9sb25nX3B1bHNlKHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcikKPiAgewo+ICAJc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciA9ICZpbnRlbF9jb25uZWN0b3ItPmJhc2U7Cj4gIAlzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gaW50ZWxfYXR0YWNoZWRfZHAoY29ubmVjdG9yKTsKPiAt CXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZHBfdG9fZGlnX3Bv cnQoaW50ZWxfZHApOwo+IC0Jc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAm aW50ZWxfZGlnX3BvcnQtPmJhc2U7Cj4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVj dG9yLT5kZXY7Cj4gIAllbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIHN0YXR1czsKPiAgCXU4IHNp bmtfaXJxX3ZlY3RvciA9IDA7Cj4gQEAgLTQ3MzMsOSArNDc0MSw2IEBAIGludGVsX2RwX2xvbmdf cHVsc2Uoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQo+ICAJCWdvdG8g b3V0Owo+ICAJfQo+ICAKPiAtCWlmIChpbnRlbF9lbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBV VF9FRFApCj4gLQkJaW50ZWxfZW5jb2Rlci0+dHlwZSA9IElOVEVMX09VVFBVVF9EUDsKPiAtCj4g IAlpZiAoaW50ZWxfZHAtPnJlc2V0X2xpbmtfcGFyYW1zKSB7Cj4gIAkJLyogSW5pdGlhbCBtYXgg bGluayBsYW5lIGNvdW50ICovCj4gIAkJaW50ZWxfZHAtPm1heF9saW5rX2xhbmVfY291bnQgPSBp bnRlbF9kcF9tYXhfY29tbW9uX2xhbmVfY291bnQoaW50ZWxfZHApOwo+IEBAIC00ODUyLDkgKzQ4 NTcsNiBAQCBpbnRlbF9kcF9mb3JjZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ ICAJaW50ZWxfZHBfc2V0X2VkaWQoaW50ZWxfZHApOwo+ICAKPiAgCWludGVsX2Rpc3BsYXlfcG93 ZXJfcHV0KGRldl9wcml2LCBpbnRlbF9kcC0+YXV4X3Bvd2VyX2RvbWFpbik7Cj4gLQo+IC0JaWYg KGludGVsX2VuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0VEUCkKPiAtCQlpbnRlbF9lbmNv ZGVyLT50eXBlID0gSU5URUxfT1VUUFVUX0RQOwo+ICB9Cj4gIAo+ICBzdGF0aWMgaW50IGludGVs X2RwX2dldF9tb2RlcyhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+IEBAIC01MDcz LDEwICs1MDc1LDYgQEAgaW50ZWxfZHBfaHBkX3B1bHNlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKmludGVsX2RpZ19wb3J0LCBib29sIGxvbmdfaHBkKQo+ICAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ICAJZW51bSBpcnFyZXR1cm4gcmV0ID0g SVJRX05PTkU7Cj4gIAo+IC0JaWYgKGludGVsX2RpZ19wb3J0LT5iYXNlLnR5cGUgIT0gSU5URUxf T1VUUFVUX0VEUCAmJgo+IC0JICAgIGludGVsX2RpZ19wb3J0LT5iYXNlLnR5cGUgIT0gSU5URUxf T1VUUFVUX0hETUkpCj4gLQkJaW50ZWxfZGlnX3BvcnQtPmJhc2UudHlwZSA9IElOVEVMX09VVFBV VF9EUDsKPiAtCj4gIAlpZiAobG9uZ19ocGQgJiYgaW50ZWxfZGlnX3BvcnQtPmJhc2UudHlwZSA9 PSBJTlRFTF9PVVRQVVRfRURQKSB7Cj4gIAkJLyoKPiAgCQkgKiB2ZGQgb2ZmIGNhbiBnZW5lcmF0 ZSBhIGxvbmcgcHVsc2Ugb24gZURQIHdoaWNoCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwX21zdC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0 LmMKPiBpbmRleCA3NzI1MjE0NDBhOWYuLjliZTZmMzJiYjEwMCAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2RwX21zdC5jCj4gQEAgLTI3MCw2ICsyNzAsOCBAQCBzdGF0aWMgdm9pZCBpbnRl bF9kcF9tc3RfZW5jX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4g IAllbnVtIHRyYW5zY29kZXIgY3B1X3RyYW5zY29kZXIgPSBwaXBlX2NvbmZpZy0+Y3B1X3RyYW5z Y29kZXI7Cj4gIAl1MzIgdGVtcCwgZmxhZ3MgPSAwOwo+ICAKPiArCXBpcGVfY29uZmlnLT5vdXRw dXRfdHlwZXMgfD0gQklUKElOVEVMX09VVFBVVF9EUF9NU1QpOwo+ICsKPiAgCXBpcGVfY29uZmln LT5oYXNfYXVkaW8gPQo+ICAJCWludGVsX2RkaV9pc19hdWRpb19lbmFibGVkKGRldl9wcml2LCBj cnRjKTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCBhMDVhYjNhMWFiMjcu LjY1MDEyOTk4MGNlMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTE3Myw3 ICsxNzMsNyBAQCBlbnVtIGludGVsX291dHB1dF90eXBlIHsKPiAgCUlOVEVMX09VVFBVVF9EUCA9 IDcsCj4gIAlJTlRFTF9PVVRQVVRfRURQID0gOCwKPiAgCUlOVEVMX09VVFBVVF9EU0kgPSA5LAo+ IC0JSU5URUxfT1VUUFVUX1VOS05PV04gPSAxMCwKPiArCUlOVEVMX09VVFBVVF9EREkgPSAxMCwK PiAgCUlOVEVMX09VVFBVVF9EUF9NU1QgPSAxMSwKPiAgfTsKPiAgCj4gQEAgLTIxNiw2ICsyMTYs OSBAQCBzdHJ1Y3QgaW50ZWxfZW5jb2RlciB7Cj4gIAllbnVtIHBvcnQgcG9ydDsKPiAgCXVuc2ln bmVkIGludCBjbG9uZWFibGU7Cj4gIAl2b2lkICgqaG90X3BsdWcpKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICopOwo+ICsJZW51bSBpbnRlbF9vdXRwdXRfdHlwZSAoKmNvbXB1dGVfb3V0cHV0X3R5cGUp KHN0cnVjdCBpbnRlbF9lbmNvZGVyICosCj4gKwkJCQkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICosCj4gKwkJCQkJCSAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICopOwo+ ICAJYm9vbCAoKmNvbXB1dGVfY29uZmlnKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAo+ICAJCQkg ICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKiwKPiAgCQkJICAgICAgIHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICopOwo+IEBAIC0xMTQ5LDcgKzExNTIsNyBAQCBlbmNfdG9fZGlnX3Bv cnQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ICAJc3RydWN0IGludGVsX2VuY29kZXIg KmludGVsX2VuY29kZXIgPSB0b19pbnRlbF9lbmNvZGVyKGVuY29kZXIpOwo+ICAKPiAgCXN3aXRj aCAoaW50ZWxfZW5jb2Rlci0+dHlwZSkgewo+IC0JY2FzZSBJTlRFTF9PVVRQVVRfVU5LTk9XTjoK PiArCWNhc2UgSU5URUxfT1VUUFVUX0RESToKPiAgCQlXQVJOX09OKCFIQVNfRERJKHRvX2k5MTUo ZW5jb2Rlci0+ZGV2KSkpOwo+ICAJY2FzZSBJTlRFTF9PVVRQVVRfRFA6Cj4gIAljYXNlIElOVEVM X09VVFBVVF9FRFA6Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rz aS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNpLmMKPiBpbmRleCA2NmJiZWRjNWZh MDEuLjJhZTNlZWExOTMxNyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kc2kuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4gQEAgLTEy NDMsNiArMTI0Myw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9nZXRfY29uZmlnKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJdTMyIHBjbGs7Cj4gIAlEUk1fREVCVUdfS01TKCJc biIpOwo+ICAKPiArCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMgfD0gQklUKElOVEVMX09VVFBV VF9EU0kpOwo+ICsKPiAgCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkKPiAgCQlieHRfZHNpX2dl dF9waXBlX2NvbmZpZyhlbmNvZGVyLCBwaXBlX2NvbmZpZyk7Cj4gIAo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kdm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2R2by5jCj4gaW5kZXggNTNjOWI3NjNmNGNlLi43NTRiYWEwMGJlYTkgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHZvLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kdm8uYwo+IEBAIC0xNTksNiArMTU5LDggQEAgc3RhdGljIHZvaWQgaW50 ZWxfZHZvX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlzdHJ1 Y3QgaW50ZWxfZHZvICppbnRlbF9kdm8gPSBlbmNfdG9fZHZvKGVuY29kZXIpOwo+ICAJdTMyIHRt cCwgZmxhZ3MgPSAwOwo+ICAKPiArCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMgfD0gQklUKElO VEVMX09VVFBVVF9EVk8pOwo+ICsKPiAgCXRtcCA9IEk5MTVfUkVBRChpbnRlbF9kdm8tPmRldi5k dm9fcmVnKTsKPiAgCWlmICh0bXAgJiBEVk9fSFNZTkNfQUNUSVZFX0hJR0gpCj4gIAkJZmxhZ3Mg fD0gRFJNX01PREVfRkxBR19QSFNZTkM7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+IGlu ZGV4IDUxMzJkYzgxNDc4OC4uMWZmNDQ4YTY3Yjk5IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hkbWkuYwo+IEBAIC05NTcsNiArOTU3LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfaGRtaV9nZXRf Y29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJdTMyIHRtcCwgZmxhZ3Mg PSAwOwo+ICAJaW50IGRvdGNsb2NrOwo+ICAKPiArCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMg fD0gQklUKElOVEVMX09VVFBVVF9IRE1JKTsKPiArCj4gIAl0bXAgPSBJOTE1X1JFQUQoaW50ZWxf aGRtaS0+aGRtaV9yZWcpOwo+ICAKPiAgCWlmICh0bXAgJiBTRFZPX0hTWU5DX0FDVElWRV9ISUdI KQo+IEBAIC0xNjEwLDEyICsxNjEyLDkgQEAgaW50ZWxfaGRtaV9kZXRlY3Qoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiAgCj4gIAlpbnRlbF9oZG1pX3Vuc2V0 X2VkaWQoY29ubmVjdG9yKTsKPiAgCj4gLQlpZiAoaW50ZWxfaGRtaV9zZXRfZWRpZChjb25uZWN0 b3IpKSB7Cj4gLQkJc3RydWN0IGludGVsX2hkbWkgKmludGVsX2hkbWkgPSBpbnRlbF9hdHRhY2hl ZF9oZG1pKGNvbm5lY3Rvcik7Cj4gLQo+IC0JCWhkbWlfdG9fZGlnX3BvcnQoaW50ZWxfaGRtaSkt PmJhc2UudHlwZSA9IElOVEVMX09VVFBVVF9IRE1JOwo+ICsJaWYgKGludGVsX2hkbWlfc2V0X2Vk aWQoY29ubmVjdG9yKSkKPiAgCQlzdGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX2Nvbm5lY3RlZDsK PiAtCX0gZWxzZQo+ICsJZWxzZQo+ICAJCXN0YXR1cyA9IGNvbm5lY3Rvcl9zdGF0dXNfZGlzY29u bmVjdGVkOwo+ICAKPiAgCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBQT1dFUl9E T01BSU5fR01CVVMpOwo+IEBAIC0xNjI2LDggKzE2MjUsNiBAQCBpbnRlbF9oZG1pX2RldGVjdChz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNlKQo+ICBzdGF0aWMgdm9p ZAo+ICBpbnRlbF9oZG1pX2ZvcmNlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4g IHsKPiAtCXN0cnVjdCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gaW50ZWxfYXR0YWNoZWRfaGRt aShjb25uZWN0b3IpOwo+IC0KPiAgCURSTV9ERUJVR19LTVMoIltDT05ORUNUT1I6JWQ6JXNdXG4i LAo+ICAJCSAgICAgIGNvbm5lY3Rvci0+YmFzZS5pZCwgY29ubmVjdG9yLT5uYW1lKTsKPiAgCj4g QEAgLTE2MzcsNyArMTYzNCw2IEBAIGludGVsX2hkbWlfZm9yY2Uoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvcikKPiAgCQlyZXR1cm47Cj4gIAo+ICAJaW50ZWxfaGRtaV9zZXRfZWRpZChj b25uZWN0b3IpOwo+IC0JaGRtaV90b19kaWdfcG9ydChpbnRlbF9oZG1pKS0+YmFzZS50eXBlID0g SU5URUxfT1VUUFVUX0hETUk7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbnQgaW50ZWxfaGRtaV9nZXRf bW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfbHZkcy5jCj4gaW5kZXggMzg1NzJkNjVlNDZlLi5lZjgwNDk5MTEzZWUgMTAwNjQ0Cj4gLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfbHZkcy5jCj4gQEAgLTEyNSw2ICsxMjUsOCBAQCBzdGF0aWMgdm9pZCBp bnRlbF9sdmRzX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAlz dHJ1Y3QgaW50ZWxfbHZkc19lbmNvZGVyICpsdmRzX2VuY29kZXIgPSB0b19sdmRzX2VuY29kZXIo JmVuY29kZXItPmJhc2UpOwo+ICAJdTMyIHRtcCwgZmxhZ3MgPSAwOwo+ICAKPiArCXBpcGVfY29u ZmlnLT5vdXRwdXRfdHlwZXMgfD0gQklUKElOVEVMX09VVFBVVF9MVkRTKTsKPiArCj4gIAl0bXAg PSBJOTE1X1JFQUQobHZkc19lbmNvZGVyLT5yZWcpOwo+ICAJaWYgKHRtcCAmIExWRFNfSFNZTkNf UE9MQVJJVFkpCj4gIAkJZmxhZ3MgfD0gRFJNX01PREVfRkxBR19OSFNZTkM7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX29wcmVnaW9uLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9vcHJlZ2lvbi5jCj4gaW5kZXggMWQ5NDYyNDBlNTVmLi4zOTcxNGJlM2Vi NmIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ByZWdpb24uYwo+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX29wcmVnaW9uLmMKPiBAQCAtMzgzLDcg KzM4Myw3IEBAIGludCBpbnRlbF9vcHJlZ2lvbl9ub3RpZnlfZW5jb2RlcihzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqaW50ZWxfZW5jb2RlciwKPiAgCWNhc2UgSU5URUxfT1VUUFVUX0FOQUxPRzoKPiAg CQl0eXBlID0gRElTUExBWV9UWVBFX0NSVDsKPiAgCQlicmVhazsKPiAtCWNhc2UgSU5URUxfT1VU UFVUX1VOS05PV046Cj4gKwljYXNlIElOVEVMX09VVFBVVF9EREk6Cj4gIAljYXNlIElOVEVMX09V VFBVVF9EUDoKPiAgCWNhc2UgSU5URUxfT1VUUFVUX0hETUk6Cj4gIAljYXNlIElOVEVMX09VVFBV VF9EUF9NU1Q6Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8u YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwo+IGluZGV4IDc0Mzc5NDRiMzg4 Zi4uNDJlYzJkMWY3YTYxIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3Nkdm8uYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwo+IEBAIC0x NDI5LDYgKzE0MjksOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9zZHZvX2dldF9jb25maWcoc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAl1OCB2YWw7Cj4gIAlib29sIHJldDsKPiAgCj4g KwlwaXBlX2NvbmZpZy0+b3V0cHV0X3R5cGVzIHw9IEJJVChJTlRFTF9PVVRQVVRfU0RWTyk7Cj4g Kwo+ICAJc2R2b3ggPSBJOTE1X1JFQUQoaW50ZWxfc2R2by0+c2R2b19yZWcpOwo+ICAKPiAgCXJl dCA9IGludGVsX3Nkdm9fZ2V0X2lucHV0X3RpbWluZyhpbnRlbF9zZHZvLCAmZHRkKTsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3R2LmMKPiBpbmRleCBhNzlhNzU5MWIyY2YuLmIxODYwOWNlYmUwMyAxMDA2 NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90di5jCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwo+IEBAIC04NjgsNiArODY4LDggQEAgc3RhdGljIHZv aWQKPiAgaW50ZWxfdHZfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiAgCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ICB7Cj4gKwlw aXBlX2NvbmZpZy0+b3V0cHV0X3R5cGVzIHw9IEJJVChJTlRFTF9PVVRQVVRfVFZPVVQpOwo+ICsK PiAgCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jayA9IHBpcGVfY29u ZmlnLT5wb3J0X2Nsb2NrOwo+ICB9Cj4gIAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=