From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v5 05/10] drm/i915: Stop frobbing with DDI encoder->type Date: Fri, 27 Oct 2017 22:32:25 +0300 Message-ID: <20171027193225.GK10981@intel.com> References: <20171019133721.11794-1-ville.syrjala@linux.intel.com> <20171019133721.11794-6-ville.syrjala@linux.intel.com> <822d296c-3fd2-70d4-e7dd-a99c16598925@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 307496E201 for ; Fri, 27 Oct 2017 19:32:29 +0000 (UTC) Content-Disposition: inline In-Reply-To: <822d296c-3fd2-70d4-e7dd-a99c16598925@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: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBPY3QgMjcsIDIwMTcgYXQgMDI6MDU6MzhQTSArMDIwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gT3AgMTktMTAtMTcgb20gMTU6Mzcgc2NocmVlZiBWaWxsZSBTeXJqYWxhOgo+ ID4gRnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4K PiA+Cj4gPiBDdXJyZW50bHkgdGhlIERESSBlbmNvZGVyLT50eXBlIHdpbGwgY2hhbmdlIGF0IHJ1 bnRpbWUgZGVwZW5kaW5nIG9uCj4gPiB3aGF0IGtpbmQgb2YgaG90cGx1Z3Mgd2UndmUgcHJvY2Vz c2VkLiBUaGF0J3MgcXVpdGUgYmFkIHNpbmNlIHdlIGNhbid0Cj4gPiByZWFsbHkgdHJ1c3QgdGhh dCB0aGF0IGN1cnJlbnQgdmFsdWUgb2YgZW5jb2Rlci0+dHlwZSBhY3R1YWxseSBtYXRjaGVzCj4g PiB0aGUgdHlwZSBvZiBzaWduYWwgd2UncmUgdHJ5aW5nIHRvIGRyaXZlIHRocm91Z2ggaXQuCj4g Pgo+ID4gTGV0J3MgZWxpbWluYXRlIHRoYXQgcHJvYmxlbSBieSBkZWNsYXJpbmcgdGhhdCBub24t ZURQIERESSBwb3J0IHdpbGwKPiA+IGFsd2F5cyBoYXZlIHRoZSBlbmNvZGVyIHR5cGUgYXMgSU5U RUxfT1VUUFVUX0RESS4gVGhpcyBtZWFucyB0aGUgY29kZQo+ID4gY2FuIG5vIGxvbmdlciB0cnkg dG8gZGlzdGluZ3Vpc2ggRFAgdnMuIEhETUkgYmFzZWQgb24gZW5jb2Rlci0+dHlwZS4KPiA+IFdl J2xsIGxlYXZlIGVEUCBhcyBJTlRFTF9PVVRQVVRfRURQLCBzaW5jZSBpdCdsbCBuZXZlciBjaGFu Z2UgYW5kCj4gPiB0aGVyZSdzIGEgYnVuY2ggb2YgY29kZSB0aGF0IHJlbGllcyBvbiB0aGF0IHZh bHVlIHRvIGlkZW50aWZ5IGVEUAo+ID4gZW5jb2RlcnMuCj4gPgo+ID4gV2UnbGwgaW50cm9kdWNl IGEgbmV3IGVuY29kZXIgLmNvbXB1dGVfb3V0cHV0X3R5cGUoKSBob29rLiBUaGlzIGFsbG93cwo+ ID4gdXMgdG8gY29tcHV0ZSB0aGUgZnVsbCBvdXRwdXRfdHlwZXMgYmVmb3JlIGFueSBlbmNvZGVy IC5jb21wdXRlX2NvbmZpZygpCj4gPiBob29rcyBnZXQgY2FsbGVkLCB0aHVzIHRob3NlIGhvb2tz IGNhbiByZWx5IG9uIG91dHB1dF90eXBlcyBiZWluZwo+ID4gY29ycmVjdCwgd2hpY2ggaXMgdXNl ZnVsIGZvciBjbG9uaW5nIG9uIG9sZHIgcGxhdGZvcm1zLiBGb3Igbm93IHdlJ2xsCj4gPiBqdXN0 IGxvb2sgYXQgdGhlIGNvbm5lY3RvciB0eXBlIGFuZCBwaWNrIHRoZSBjb3JyZWN0IG1vZGUgYmFz ZWQgb24gdGhhdC4KPiA+IEluIHRoZSBmdXR1cmUgdGhlIG5ldyBob29rIGNvdWxkIGJlIHVzZWQg dG8gaW1wbGVtZW50IGR5bmFtaWMgc3dpdGNoaW5nCj4gPiBiZXR3ZWVuIExTIGFuZCBQQ09OIG1v ZGVzIGZvciBMU1BDT04uCj4gPgo+ID4gVE9ETzogbWF5YmUgbWFrZSAuZ2V0X2NvbmZpZygpIHBv cHVsYXRlIG91dHB1dF90eXBlcyByYXRoZXIgdGhhbiBkb2luZwo+ID4gdGhlIGRlZmF1bHQgZW5j b2Rlci0+dHlwZSB0aGluZyBpbiBjYWxsZXIgYW5kIHRoZW4gdW5kb2luZyBpdCBmb3IKPiA+IERE SSBpbiAuZ2V0X2NvbmZpZygpLgo+ID4KPiA+IHYyOiBGaXggQlhUL0dMSyBQUFMgZXhwbG9zaW9u IHdpdGggRFNJL01TVCBlbmNvZGVycwo+ID4gdjM6IEF2b2lkIHRoZSBQUFMgd2FybiBvbiBwdXJl IEhETUkvRFZJIERESSBlbmNvZGVycyBieSBjaGVja2luZyBkcC5vdXRwdXRfcmVnCj4gPiB2NDog UmViYXNlCj4gPiB2NTogUG9wdWxhdGUgb3V0cHV0X3R5cGVzIGluIC5nZXRfY29uZmlnKCkgcmF0 aGVyIHRoYW4gaW4gdGhlIGNhbGxlcgo+IAo+IENvdWxkIHdlIGdldCByaWQgb2YgY29tcHV0ZV9v dXRwdXRfdHlwZSBpbiB0aGlzIHBhdGNoPyBQZXJoYXBzIGRvIGl0IGFzIHByZWxpbWluYXJ5Cj4g cGF0Y2ggdG93YXJkcyByZW1vdmluZyB0aGUgdXNlPwo+IAo+IFJlc3Qgb2YgdGhlIHNlcmllcyBl eGNlcHQgcGF0Y2ggOCBsb29rcyBnb29kLiBGb3IgcGF0Y2ggMS00LCA2LCA3LCA5IChpZiB0aGUg ZGVsdGEKPiBiZXR3ZWVuIGRkaV9nZXRfY29uZmlnIGFuZCBvbGQgbXN0IGdldF9jb25maWcgaXMg aGFybWxlc3Mgb3IgYmVuZWZpY2lhbCkgYW5kIDEwOgo+IAo+IFJldmlld2VkLWJ5OiBNYWFydGVu IExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgoKVGhhbmtzLiBG aXJzdCBmb3VyIHBhdGNoZXMgcHVzaGVkIHRvIGRpbnEuIFRoZSByZXN0IHJlcG9zdGVkIGFzIGEg bmV3CnNlcmllcywgd2l0aCB0aGlzIHBhdGNoIHNwbGl0IHVwLgoKPiAKPiBUaGFua3MgZm9yIHRo ZSB3b3JrIHRvd2FyZHMgY2xlYW5pbmcgdGhpcyBtZXNzIHVwLgo+IAo+IH5NYWFydGVuCj4gPiBT aWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMgICB8 ICAyICstCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMgICAgICB8ICAyICsr Cj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgICAgICB8IDQzICsrKysrKysr KysrKysrKysrKysrKysrKysrKystLS0tLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jICB8IDE2ICsrKysrKystLS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kcC5jICAgICAgIHwgMjQgKysrKysrKysrLS0tLS0tLS0tLQo+ID4gIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jICAgfCAgMiArKwo+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oICAgICAgfCAgNyArKysrLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kc2kuYyAgICAgIHwgIDIgKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kdm8uYyAgICAgIHwgIDIgKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9o ZG1pLmMgICAgIHwgMTIgKysrKy0tLS0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2x2ZHMuYyAgICAgfCAgMiArKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX29wcmVn aW9uLmMgfCAgMiArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYyAgICAg fCAgMiArKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3R2LmMgICAgICAgfCAgMiAr Kwo+ID4gIDE0IGZpbGVzIGNoYW5nZWQsIDgwIGluc2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygt KQo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gPiBpbmRleCBjNjVlMzgx Yjg1ZjMuLmU1MzMzYmZkZjMyZCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZGVidWdmcy5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVn ZnMuYwo+ID4gQEAgLTMwNDksNyArMzA0OSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2Nvbm5lY3Rv cl9pbmZvKHN0cnVjdCBzZXFfZmlsZSAqbSwKPiA+ICAJCWJyZWFrOwo+ID4gIAljYXNlIERSTV9N T0RFX0NPTk5FQ1RPUl9IRE1JQToKPiA+ICAJCWlmIChpbnRlbF9lbmNvZGVyLT50eXBlID09IElO VEVMX09VVFBVVF9IRE1JIHx8Cj4gPiAtCQkgICAgaW50ZWxfZW5jb2Rlci0+dHlwZSA9PSBJTlRF TF9PVVRQVVRfVU5LTk9XTikKPiA+ICsJCSAgICBpbnRlbF9lbmNvZGVyLT50eXBlID09IElOVEVM X09VVFBVVF9EREkpCj4gPiAgCQkJaW50ZWxfaGRtaV9pbmZvKG0sIGludGVsX2Nvbm5lY3Rvcik7 Cj4gPiAgCQlicmVhazsKPiA+ICAJZGVmYXVsdDoKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9jcnQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5j Cj4gPiBpbmRleCA2NjhlOGMzZTc5MWQuLmE2MWU2MWVmZTlhYSAxMDA2NDQKPiA+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9jcnQuYwo+ID4gQEAgLTExOSw2ICsxMTksOCBAQCBzdGF0aWMgdW5zaWduZWQg aW50IGludGVsX2NydF9nZXRfZmxhZ3Moc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4g PiAgc3RhdGljIHZvaWQgaW50ZWxfY3J0X2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIsCj4gPiAgCQkJCSBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcp Cj4gPiAgewo+ID4gKwlwaXBlX2NvbmZpZy0+b3V0cHV0X3R5cGVzIHw9IEJJVChJTlRFTF9PVVRQ VVRfQU5BTE9HKTsKPiA+ICsKPiA+ICAJcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5m bGFncyB8PSBpbnRlbF9jcnRfZ2V0X2ZsYWdzKGVuY29kZXIpOwo+ID4gIAo+ID4gIAlwaXBlX2Nv bmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBwaXBlX2NvbmZpZy0+cG9ydF9j bG9jazsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPiBpbmRleCBjODc5MGJiNzQ4Mzku LjYzMDYwOTU3NWRiNCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2RkaS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4gQEAg LTQ5NywxMCArNDk3LDggQEAgZW51bSBwb3J0IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9wb3J0KHN0 cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQo+ID4gIAlzd2l0Y2ggKGVuY29kZXItPnR5cGUp IHsKPiA+ICAJY2FzZSBJTlRFTF9PVVRQVVRfRFBfTVNUOgo+ID4gIAkJcmV0dXJuIGVuY190b19t c3QoJmVuY29kZXItPmJhc2UpLT5wcmltYXJ5LT5wb3J0Owo+ID4gLQljYXNlIElOVEVMX09VVFBV VF9EUDoKPiA+ICAJY2FzZSBJTlRFTF9PVVRQVVRfRURQOgo+ID4gLQljYXNlIElOVEVMX09VVFBV VF9IRE1JOgo+ID4gLQljYXNlIElOVEVMX09VVFBVVF9VTktOT1dOOgo+ID4gKwljYXNlIElOVEVM X09VVFBVVF9EREk6Cj4gPiAgCQlyZXR1cm4gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNl KS0+cG9ydDsKPiA+ICAJY2FzZSBJTlRFTF9PVVRQVVRfQU5BTE9HOgo+ID4gIAkJcmV0dXJuIFBP UlRfRTsKPiA+IEBAIC0xNTMyLDYgKzE1MzAsNyBAQCB2b2lkIGludGVsX2RkaV9zZXRfdmNfcGF5 bG9hZF9hbGxvYyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiA+ ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7Cj4gPiAgCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGNydGNfc3RhdGUt PmNwdV90cmFuc2NvZGVyOwo+ID4gIAl1aW50MzJfdCB0ZW1wOwo+ID4gKwo+ID4gIAl0ZW1wID0g STkxNV9SRUFEKFRSQU5TX0RESV9GVU5DX0NUTChjcHVfdHJhbnNjb2RlcikpOwo+ID4gIAlpZiAo c3RhdGUgPT0gdHJ1ZSkKPiA+ICAJCXRlbXAgfD0gVFJBTlNfRERJX0RQX1ZDX1BBWUxPQURfQUxM T0M7Cj4gPiBAQCAtMjU4NiwxMiArMjU4NSwyMyBAQCB2b2lkIGludGVsX2RkaV9nZXRfY29uZmln KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gIAkJCXBpcGVfY29uZmlnLT5oZG1p X2hpZ2hfdG1kc19jbG9ja19yYXRpbyA9IHRydWU7Cj4gPiAgCQkvKiBmYWxsIHRocm91Z2ggKi8K PiA+ICAJY2FzZSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRFZJOgo+ID4gKwkJcGlwZV9jb25maWct Pm91dHB1dF90eXBlcyB8PSBCSVQoSU5URUxfT1VUUFVUX0hETUkpOwo+ID4gIAkJcGlwZV9jb25m aWctPmxhbmVfY291bnQgPSA0Owo+ID4gIAkJYnJlYWs7Cj4gPiAgCWNhc2UgVFJBTlNfRERJX01P REVfU0VMRUNUX0ZESToKPiA+ICsJCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMgfD0gQklUKElO VEVMX09VVFBVVF9BTkFMT0cpOwo+ID4gIAkJYnJlYWs7Cj4gPiAgCWNhc2UgVFJBTlNfRERJX01P REVfU0VMRUNUX0RQX1NTVDoKPiA+ICsJCWlmIChlbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBV VF9FRFApCj4gPiArCQkJcGlwZV9jb25maWctPm91dHB1dF90eXBlcyB8PSBCSVQoSU5URUxfT1VU UFVUX0VEUCk7Cj4gPiArCQllbHNlCj4gPiArCQkJcGlwZV9jb25maWctPm91dHB1dF90eXBlcyB8 PSBCSVQoSU5URUxfT1VUUFVUX0RQKTsKPiA+ICsJCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50ID0K PiA+ICsJCQkoKHRlbXAgJiBERElfUE9SVF9XSURUSF9NQVNLKSA+PiBERElfUE9SVF9XSURUSF9T SElGVCkgKyAxOwo+ID4gKwkJaW50ZWxfZHBfZ2V0X21fbihpbnRlbF9jcnRjLCBwaXBlX2NvbmZp Zyk7Cj4gPiArCQlicmVhazsKPiA+ICAJY2FzZSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRFBfTVNU Ogo+ID4gKwkJcGlwZV9jb25maWctPm91dHB1dF90eXBlcyB8PSBCSVQoSU5URUxfT1VUUFVUX0RQ X01TVCk7Cj4gPiAgCQlwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9Cj4gPiAgCQkJKCh0ZW1wICYg RERJX1BPUlRfV0lEVEhfTUFTSykgPj4gRERJX1BPUlRfV0lEVEhfU0hJRlQpICsgMTsKPiA+ICAJ CWludGVsX2RwX2dldF9tX24oaW50ZWxfY3J0YywgcGlwZV9jb25maWcpOwo+ID4gQEAgLTI2MzAs MjEgKzI2NDAsMzYgQEAgdm9pZCBpbnRlbF9kZGlfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiA+ICAJCQlieHRfZGRpX3BoeV9nZXRfbGFuZV9sYXRfb3B0aW1fbWFz ayhlbmNvZGVyKTsKPiA+ICB9Cj4gPiAgCj4gPiArc3RhdGljIGVudW0gaW50ZWxfb3V0cHV0X3R5 cGUKPiA+ICtpbnRlbF9kZGlfY29tcHV0ZV9vdXRwdXRfdHlwZShzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiA+ICsJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKPiA+ICsJCQkgICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0 ZSkKPiA+ICt7Cj4gPiArCXN3aXRjaCAoY29ubl9zdGF0ZS0+Y29ubmVjdG9yLT5jb25uZWN0b3Jf dHlwZSkgewo+ID4gKwljYXNlIERSTV9NT0RFX0NPTk5FQ1RPUl9IRE1JQToKPiA+ICsJCXJldHVy biBJTlRFTF9PVVRQVVRfSERNSTsKPiA+ICsJY2FzZSBEUk1fTU9ERV9DT05ORUNUT1JfZURQOgo+ ID4gKwkJcmV0dXJuIElOVEVMX09VVFBVVF9FRFA7Cj4gPiArCWNhc2UgRFJNX01PREVfQ09OTkVD VE9SX0Rpc3BsYXlQb3J0Ogo+ID4gKwkJcmV0dXJuIElOVEVMX09VVFBVVF9EUDsKPiA+ICsJZGVm YXVsdDoKPiA+ICsJCU1JU1NJTkdfQ0FTRShjb25uX3N0YXRlLT5jb25uZWN0b3ItPmNvbm5lY3Rv cl90eXBlKTsKPiA+ICsJCXJldHVybiBJTlRFTF9PVVRQVVRfVU5VU0VEOwo+ID4gKwl9Cj4gPiAr fQo+ID4gKwo+ID4gIHN0YXRpYyBib29sIGludGVsX2RkaV9jb21wdXRlX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJCQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqcGlwZV9jb25maWcsCj4gPiAgCQkJCSAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKmNvbm5fc3RhdGUpCj4gPiAgewo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiA+IC0JaW50IHR5cGUgPSBlbmNv ZGVyLT50eXBlOwo+ID4gIAlpbnQgcG9ydCA9IGludGVsX2RkaV9nZXRfZW5jb2Rlcl9wb3J0KGVu Y29kZXIpOwo+ID4gIAlpbnQgcmV0Owo+ID4gIAo+ID4gLQlXQVJOKHR5cGUgPT0gSU5URUxfT1VU UFVUX1VOS05PV04sICJjb21wdXRlX2NvbmZpZygpIG9uIHVua25vd24gb3V0cHV0IVxuIik7Cj4g PiAtCj4gPiAgCWlmIChwb3J0ID09IFBPUlRfQSkKPiA+ICAJCXBpcGVfY29uZmlnLT5jcHVfdHJh bnNjb2RlciA9IFRSQU5TQ09ERVJfRURQOwo+ID4gIAo+ID4gLQlpZiAodHlwZSA9PSBJTlRFTF9P VVRQVVRfSERNSSkKPiA+ICsJaWYgKGludGVsX2NydGNfaGFzX3R5cGUocGlwZV9jb25maWcsIElO VEVMX09VVFBVVF9IRE1JKSkKPiA+ICAJCXJldCA9IGludGVsX2hkbWlfY29tcHV0ZV9jb25maWco ZW5jb2RlciwgcGlwZV9jb25maWcsIGNvbm5fc3RhdGUpOwo+ID4gIAllbHNlCj4gPiAgCQlyZXQg PSBpbnRlbF9kcF9jb21wdXRlX2NvbmZpZyhlbmNvZGVyLCBwaXBlX2NvbmZpZywgY29ubl9zdGF0 ZSk7Cj4gPiBAQCAtMjc2NCw2ICsyNzg5LDcgQEAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQo+ID4gIAlkcm1fZW5j b2Rlcl9pbml0KCZkZXZfcHJpdi0+ZHJtLCBlbmNvZGVyLCAmaW50ZWxfZGRpX2Z1bmNzLAo+ID4g IAkJCSBEUk1fTU9ERV9FTkNPREVSX1RNRFMsICJEREkgJWMiLCBwb3J0X25hbWUocG9ydCkpOwo+ ID4gIAo+ID4gKwlpbnRlbF9lbmNvZGVyLT5jb21wdXRlX291dHB1dF90eXBlID0gaW50ZWxfZGRp X2NvbXB1dGVfb3V0cHV0X3R5cGU7Cj4gPiAgCWludGVsX2VuY29kZXItPmNvbXB1dGVfY29uZmln ID0gaW50ZWxfZGRpX2NvbXB1dGVfY29uZmlnOwo+ID4gIAlpbnRlbF9lbmNvZGVyLT5lbmFibGUg PSBpbnRlbF9lbmFibGVfZGRpOwo+ID4gIAlpZiAoSVNfR0VOOV9MUChkZXZfcHJpdikpCj4gPiBA QCAtMjgyMSw5ICsyODQ3LDEwIEBAIHZvaWQgaW50ZWxfZGRpX2luaXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkKPiA+ICAJCX0KPiA+ICAJfQo+ID4g IAo+ID4gKwlpbnRlbF9kaWdfcG9ydC0+ZHAub3V0cHV0X3JlZyA9IElOVkFMSURfTU1JT19SRUc7 Cj4gPiAgCWludGVsX2RpZ19wb3J0LT5tYXhfbGFuZXMgPSBtYXhfbGFuZXM7Cj4gPiAgCj4gPiAt CWludGVsX2VuY29kZXItPnR5cGUgPSBJTlRFTF9PVVRQVVRfVU5LTk9XTjsKPiA+ICsJaW50ZWxf ZW5jb2Rlci0+dHlwZSA9IElOVEVMX09VVFBVVF9EREk7Cj4gPiAgCWludGVsX2VuY29kZXItPnBv d2VyX2RvbWFpbiA9IGludGVsX3BvcnRfdG9fcG93ZXJfZG9tYWluKHBvcnQpOwo+ID4gIAlpbnRl bF9lbmNvZGVyLT5wb3J0ID0gcG9ydDsKPiA+ICAJaW50ZWxfZW5jb2Rlci0+Y3J0Y19tYXNrID0g KDEgPDwgMCkgfCAoMSA8PCAxKSB8ICgxIDw8IDIpOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwo+ID4gaW5kZXggYmQ2MmMwYTY1YmNkLi5hN2UwMmFlMzM1ODMgMTAwNjQ0Cj4g PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gQEAgLTEwNTkxLDcgKzEwNTkx LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBvdXRwdXRfdHlwZV9zdHJbXSA9IHsKPiA+ ICAJT1VUUFVUX1RZUEUoRFApLAo+ID4gIAlPVVRQVVRfVFlQRShFRFApLAo+ID4gIAlPVVRQVVRf VFlQRShEU0kpLAo+ID4gLQlPVVRQVVRfVFlQRShVTktOT1dOKSwKPiA+ICsJT1VUUFVUX1RZUEUo RERJKSwKPiA+ICAJT1VUUFVUX1RZUEUoRFBfTVNUKSwKPiA+ICB9Owo+ID4gIAo+ID4gQEAgLTEw NzYyLDcgKzEwNzYyLDcgQEAgc3RhdGljIGJvb2wgY2hlY2tfZGlnaXRhbF9wb3J0X2NvbmZsaWN0 cyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gPiAgCj4gPiAgCQlzd2l0Y2ggKGVu Y29kZXItPnR5cGUpIHsKPiA+ICAJCQl1bnNpZ25lZCBpbnQgcG9ydF9tYXNrOwo+ID4gLQkJY2Fz ZSBJTlRFTF9PVVRQVVRfVU5LTk9XTjoKPiA+ICsJCWNhc2UgSU5URUxfT1VUUFVUX0RESToKPiA+ ICAJCQlpZiAoV0FSTl9PTighSEFTX0RESSh0b19pOTE1KGRldikpKSkKPiA+ICAJCQkJYnJlYWs7 Cj4gPiAgCQljYXNlIElOVEVMX09VVFBVVF9EUDoKPiA+IEBAIC0xMDg5NSw3ICsxMDg5NSwxMiBA QCBpbnRlbF9tb2Rlc2V0X3BpcGVfY29uZmlnKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ICAJ CSAqIERldGVybWluZSBvdXRwdXRfdHlwZXMgYmVmb3JlIGNhbGxpbmcgdGhlIC5jb21wdXRlX2Nv bmZpZygpCj4gPiAgCQkgKiBob29rcyBzbyB0aGF0IHRoZSBob29rcyBjYW4gdXNlIHRoaXMgaW5m b3JtYXRpb24gc2FmZWx5Lgo+ID4gIAkJICovCj4gPiAtCQlwaXBlX2NvbmZpZy0+b3V0cHV0X3R5 cGVzIHw9IDEgPDwgZW5jb2Rlci0+dHlwZTsKPiA+ICsJCWlmIChlbmNvZGVyLT5jb21wdXRlX291 dHB1dF90eXBlKQo+ID4gKwkJCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMgfD0KPiA+ICsJCQkJ QklUKGVuY29kZXItPmNvbXB1dGVfb3V0cHV0X3R5cGUoZW5jb2RlciwgcGlwZV9jb25maWcsCj4g PiArCQkJCQkJCQkgY29ubmVjdG9yX3N0YXRlKSk7Cj4gPiArCQllbHNlCj4gPiArCQkJcGlwZV9j b25maWctPm91dHB1dF90eXBlcyB8PSBCSVQoZW5jb2Rlci0+dHlwZSk7Cj4gPiAgCX0KPiA+ICAK PiA+ICBlbmNvZGVyX3JldHJ5Ogo+ID4gQEAgLTExNTcyLDEwICsxMTU3Nyw4IEBAIHZlcmlmeV9j cnRjX3N0YXRlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPiA+ICAJCQkJIkVuY29kZXIgY29ubmVj dGVkIHRvIHdyb25nIHBpcGUgJWNcbiIsCj4gPiAgCQkJCXBpcGVfbmFtZShwaXBlKSk7Cj4gPiAg Cj4gPiAtCQlpZiAoYWN0aXZlKSB7Cj4gPiAtCQkJcGlwZV9jb25maWctPm91dHB1dF90eXBlcyB8 PSAxIDw8IGVuY29kZXItPnR5cGU7Cj4gPiArCQlpZiAoYWN0aXZlKQo+ID4gIAkJCWVuY29kZXIt PmdldF9jb25maWcoZW5jb2RlciwgcGlwZV9jb25maWcpOwo+ID4gLQkJfQo+ID4gIAl9Cj4gPiAg Cj4gPiAgCWludGVsX2NydGNfY29tcHV0ZV9waXhlbF9yYXRlKHBpcGVfY29uZmlnKTsKPiA+IEBA IC0xNDk2Myw3ICsxNDk2Niw2IEBAIHN0YXRpYyB2b2lkIGludGVsX21vZGVzZXRfcmVhZG91dF9o d19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIAkJCWNydGNfc3RhdGUgPSB0b19p bnRlbF9jcnRjX3N0YXRlKGNydGMtPmJhc2Uuc3RhdGUpOwo+ID4gIAo+ID4gIAkJCWVuY29kZXIt PmJhc2UuY3J0YyA9ICZjcnRjLT5iYXNlOwo+ID4gLQkJCWNydGNfc3RhdGUtPm91dHB1dF90eXBl cyB8PSAxIDw8IGVuY29kZXItPnR5cGU7Cj4gPiAgCQkJZW5jb2Rlci0+Z2V0X2NvbmZpZyhlbmNv ZGVyLCBjcnRjX3N0YXRlKTsKPiA+ICAJCX0gZWxzZSB7Cj4gPiAgCQkJZW5jb2Rlci0+YmFzZS5j cnRjID0gTlVMTDsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gaW5kZXggYWE3NWY1NWVl YjYxLi4yYjQ4MmQxMjAwMGUgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBA QCAtNzU4LDExICs3NTgsMTYgQEAgdm9pZCBpbnRlbF9wb3dlcl9zZXF1ZW5jZXJfcmVzZXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gIAkJc3RydWN0IGludGVsX2RwICpp bnRlbF9kcDsKPiA+ICAKPiA+ICAJCWlmIChlbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9E UCAmJgo+ID4gLQkJICAgIGVuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0VEUCkKPiA+ICsJ CSAgICBlbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9FRFAgJiYKPiA+ICsJCSAgICBlbmNv ZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9EREkpCj4gPiAgCQkJY29udGludWU7Cj4gPiAgCj4g PiAgCQlpbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gPiAgCj4g PiArCQkvKiBTa2lwIHB1cmUgRFZJL0hETUkgRERJIGVuY29kZXJzICovCj4gPiArCQlpZiAoIWk5 MTVfbW1pb19yZWdfdmFsaWQoaW50ZWxfZHAtPm91dHB1dF9yZWcpKQo+ID4gKwkJCWNvbnRpbnVl Owo+ID4gKwo+ID4gIAkJV0FSTl9PTihpbnRlbF9kcC0+YWN0aXZlX3BpcGUgIT0gSU5WQUxJRF9Q SVBFKTsKPiA+ICAKPiA+ICAJCWlmIChlbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9FRFAp Cj4gPiBAQCAtMjYwMyw2ICsyNjA4LDExIEBAIHN0YXRpYyB2b2lkIGludGVsX2RwX2dldF9jb25m aWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCWVudW0gcG9ydCBwb3J0ID0g ZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5wb3J0Owo+ID4gIAlzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+YmFzZS5jcnRjKTsKPiA+ICAKPiA+ICsJaWYg KGVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkKPiA+ICsJCXBpcGVfY29uZmlnLT5v dXRwdXRfdHlwZXMgfD0gQklUKElOVEVMX09VVFBVVF9FRFApOwo+ID4gKwllbHNlCj4gPiArCQlw aXBlX2NvbmZpZy0+b3V0cHV0X3R5cGVzIHw9IEJJVChJTlRFTF9PVVRQVVRfRFApOwo+ID4gKwo+ ID4gIAl0bXAgPSBJOTE1X1JFQUQoaW50ZWxfZHAtPm91dHB1dF9yZWcpOwo+ID4gIAo+ID4gIAlw aXBlX2NvbmZpZy0+aGFzX2F1ZGlvID0gdG1wICYgRFBfQVVESU9fT1VUUFVUX0VOQUJMRSAmJiBw b3J0ICE9IFBPUlRfQTsKPiA+IEBAIC00Njk5LDggKzQ3MDksNiBAQCBpbnRlbF9kcF9sb25nX3B1 bHNlKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5lY3RvcikKPiA+ICB7Cj4gPiAg CXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAmaW50ZWxfY29ubmVjdG9yLT5iYXNl Owo+ID4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwID0gaW50ZWxfYXR0YWNoZWRfZHAoY29u bmVjdG9yKTsKPiA+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQg PSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gPiAtCXN0cnVjdCBpbnRlbF9lbmNvZGVyICpp bnRlbF9lbmNvZGVyID0gJmludGVsX2RpZ19wb3J0LT5iYXNlOwo+ID4gIAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7Cj4gPiAgCWVudW0gZHJtX2Nvbm5lY3Rvcl9zdGF0 dXMgc3RhdHVzOwo+ID4gIAl1OCBzaW5rX2lycV92ZWN0b3IgPSAwOwo+ID4gQEAgLTQ3MzMsOSAr NDc0MSw2IEBAIGludGVsX2RwX2xvbmdfcHVsc2Uoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50 ZWxfY29ubmVjdG9yKQo+ID4gIAkJZ290byBvdXQ7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JaWYgKGlu dGVsX2VuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0VEUCkKPiA+IC0JCWludGVsX2VuY29k ZXItPnR5cGUgPSBJTlRFTF9PVVRQVVRfRFA7Cj4gPiAtCj4gPiAgCWlmIChpbnRlbF9kcC0+cmVz ZXRfbGlua19wYXJhbXMpIHsKPiA+ICAJCS8qIEluaXRpYWwgbWF4IGxpbmsgbGFuZSBjb3VudCAq Lwo+ID4gIAkJaW50ZWxfZHAtPm1heF9saW5rX2xhbmVfY291bnQgPSBpbnRlbF9kcF9tYXhfY29t bW9uX2xhbmVfY291bnQoaW50ZWxfZHApOwo+ID4gQEAgLTQ4NTIsOSArNDg1Nyw2IEBAIGludGVs X2RwX2ZvcmNlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiAgCWludGVsX2Rw X3NldF9lZGlkKGludGVsX2RwKTsKPiA+ICAKPiA+ICAJaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQo ZGV2X3ByaXYsIGludGVsX2RwLT5hdXhfcG93ZXJfZG9tYWluKTsKPiA+IC0KPiA+IC0JaWYgKGlu dGVsX2VuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0VEUCkKPiA+IC0JCWludGVsX2VuY29k ZXItPnR5cGUgPSBJTlRFTF9PVVRQVVRfRFA7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRpYyBpbnQg aW50ZWxfZHBfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCj4gPiBA QCAtNTA3MywxMCArNTA3NSw2IEBAIGludGVsX2RwX2hwZF9wdWxzZShzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwgYm9vbCBsb25nX2hwZCkKPiA+ICAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4gIAllbnVtIGlycXJl dHVybiByZXQgPSBJUlFfTk9ORTsKPiA+ICAKPiA+IC0JaWYgKGludGVsX2RpZ19wb3J0LT5iYXNl LnR5cGUgIT0gSU5URUxfT1VUUFVUX0VEUCAmJgo+ID4gLQkgICAgaW50ZWxfZGlnX3BvcnQtPmJh c2UudHlwZSAhPSBJTlRFTF9PVVRQVVRfSERNSSkKPiA+IC0JCWludGVsX2RpZ19wb3J0LT5iYXNl LnR5cGUgPSBJTlRFTF9PVVRQVVRfRFA7Cj4gPiAtCj4gPiAgCWlmIChsb25nX2hwZCAmJiBpbnRl bF9kaWdfcG9ydC0+YmFzZS50eXBlID09IElOVEVMX09VVFBVVF9FRFApIHsKPiA+ICAJCS8qCj4g PiAgCQkgKiB2ZGQgb2ZmIGNhbiBnZW5lcmF0ZSBhIGxvbmcgcHVsc2Ugb24gZURQIHdoaWNoCj4g PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+ID4gaW5kZXggNzcyNTIxNDQwYTlmLi45 YmU2ZjMyYmIxMDAgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cF9tc3QuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiA+ IEBAIC0yNzAsNiArMjcwLDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfbXN0X2VuY19nZXRfY29u ZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gIAllbnVtIHRyYW5zY29kZXIg Y3B1X3RyYW5zY29kZXIgPSBwaXBlX2NvbmZpZy0+Y3B1X3RyYW5zY29kZXI7Cj4gPiAgCXUzMiB0 ZW1wLCBmbGFncyA9IDA7Cj4gPiAgCj4gPiArCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMgfD0g QklUKElOVEVMX09VVFBVVF9EUF9NU1QpOwo+ID4gKwo+ID4gIAlwaXBlX2NvbmZpZy0+aGFzX2F1 ZGlvID0KPiA+ICAJCWludGVsX2RkaV9pc19hdWRpb19lbmFibGVkKGRldl9wcml2LCBjcnRjKTsK PiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBpbmRleCBhMDVhYjNhMWFiMjcu LjY1MDEyOTk4MGNlMiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rydi5oCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAg LTE3Myw3ICsxNzMsNyBAQCBlbnVtIGludGVsX291dHB1dF90eXBlIHsKPiA+ICAJSU5URUxfT1VU UFVUX0RQID0gNywKPiA+ICAJSU5URUxfT1VUUFVUX0VEUCA9IDgsCj4gPiAgCUlOVEVMX09VVFBV VF9EU0kgPSA5LAo+ID4gLQlJTlRFTF9PVVRQVVRfVU5LTk9XTiA9IDEwLAo+ID4gKwlJTlRFTF9P VVRQVVRfRERJID0gMTAsCj4gPiAgCUlOVEVMX09VVFBVVF9EUF9NU1QgPSAxMSwKPiA+ICB9Owo+ ID4gIAo+ID4gQEAgLTIxNiw2ICsyMTYsOSBAQCBzdHJ1Y3QgaW50ZWxfZW5jb2RlciB7Cj4gPiAg CWVudW0gcG9ydCBwb3J0Owo+ID4gIAl1bnNpZ25lZCBpbnQgY2xvbmVhYmxlOwo+ID4gIAl2b2lk ICgqaG90X3BsdWcpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICopOwo+ID4gKwllbnVtIGludGVsX291 dHB1dF90eXBlICgqY29tcHV0ZV9vdXRwdXRfdHlwZSkoc3RydWN0IGludGVsX2VuY29kZXIgKiwK PiA+ICsJCQkJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqLAo+ID4gKwkJCQkJCSAg ICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICopOwo+ID4gIAlib29sICgqY29tcHV0ZV9j b25maWcpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICosCj4gPiAgCQkJICAgICAgIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICosCj4gPiAgCQkJICAgICAgIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRl ICopOwo+ID4gQEAgLTExNDksNyArMTE1Miw3IEBAIGVuY190b19kaWdfcG9ydChzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIpCj4gPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNv ZGVyID0gdG9faW50ZWxfZW5jb2RlcihlbmNvZGVyKTsKPiA+ICAKPiA+ICAJc3dpdGNoIChpbnRl bF9lbmNvZGVyLT50eXBlKSB7Cj4gPiAtCWNhc2UgSU5URUxfT1VUUFVUX1VOS05PV046Cj4gPiAr CWNhc2UgSU5URUxfT1VUUFVUX0RESToKPiA+ICAJCVdBUk5fT04oIUhBU19EREkodG9faTkxNShl bmNvZGVyLT5kZXYpKSk7Cj4gPiAgCWNhc2UgSU5URUxfT1VUUFVUX0RQOgo+ID4gIAljYXNlIElO VEVMX09VVFBVVF9FRFA6Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHNpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+ID4gaW5kZXggNjZi YmVkYzVmYTAxLi4yYWUzZWVhMTkzMTcgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kc2kuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHNp LmMKPiA+IEBAIC0xMjQzLDYgKzEyNDMsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kc2lfZ2V0X2Nv bmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJdTMyIHBjbGs7Cj4gPiAg CURSTV9ERUJVR19LTVMoIlxuIik7Cj4gPiAgCj4gPiArCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlw ZXMgfD0gQklUKElOVEVMX09VVFBVVF9EU0kpOwo+ID4gKwo+ID4gIAlpZiAoSVNfR0VOOV9MUChk ZXZfcHJpdikpCj4gPiAgCQlieHRfZHNpX2dldF9waXBlX2NvbmZpZyhlbmNvZGVyLCBwaXBlX2Nv bmZpZyk7Cj4gPiAgCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHZvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kdm8uYwo+ID4gaW5kZXggNTNjOWI3 NjNmNGNlLi43NTRiYWEwMGJlYTkgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kdm8uYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHZvLmMK PiA+IEBAIC0xNTksNiArMTU5LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfZHZvX2dldF9jb25maWco c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCXN0cnVjdCBpbnRlbF9kdm8gKmlu dGVsX2R2byA9IGVuY190b19kdm8oZW5jb2Rlcik7Cj4gPiAgCXUzMiB0bXAsIGZsYWdzID0gMDsK PiA+ICAKPiA+ICsJcGlwZV9jb25maWctPm91dHB1dF90eXBlcyB8PSBCSVQoSU5URUxfT1VUUFVU X0RWTyk7Cj4gPiArCj4gPiAgCXRtcCA9IEk5MTVfUkVBRChpbnRlbF9kdm8tPmRldi5kdm9fcmVn KTsKPiA+ICAJaWYgKHRtcCAmIERWT19IU1lOQ19BQ1RJVkVfSElHSCkKPiA+ICAJCWZsYWdzIHw9 IERSTV9NT0RFX0ZMQUdfUEhTWU5DOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYwo+ID4g aW5kZXggNTEzMmRjODE0Nzg4Li4xZmY0NDhhNjdiOTkgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9oZG1pLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2hkbWkuYwo+ID4gQEAgLTk1Nyw2ICs5NTcsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9o ZG1pX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCXUzMiB0 bXAsIGZsYWdzID0gMDsKPiA+ICAJaW50IGRvdGNsb2NrOwo+ID4gIAo+ID4gKwlwaXBlX2NvbmZp Zy0+b3V0cHV0X3R5cGVzIHw9IEJJVChJTlRFTF9PVVRQVVRfSERNSSk7Cj4gPiArCj4gPiAgCXRt cCA9IEk5MTVfUkVBRChpbnRlbF9oZG1pLT5oZG1pX3JlZyk7Cj4gPiAgCj4gPiAgCWlmICh0bXAg JiBTRFZPX0hTWU5DX0FDVElWRV9ISUdIKQo+ID4gQEAgLTE2MTAsMTIgKzE2MTIsOSBAQCBpbnRl bF9oZG1pX2RldGVjdChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBib29sIGZvcmNl KQo+ID4gIAo+ID4gIAlpbnRlbF9oZG1pX3Vuc2V0X2VkaWQoY29ubmVjdG9yKTsKPiA+ICAKPiA+ IC0JaWYgKGludGVsX2hkbWlfc2V0X2VkaWQoY29ubmVjdG9yKSkgewo+ID4gLQkJc3RydWN0IGlu dGVsX2hkbWkgKmludGVsX2hkbWkgPSBpbnRlbF9hdHRhY2hlZF9oZG1pKGNvbm5lY3Rvcik7Cj4g PiAtCj4gPiAtCQloZG1pX3RvX2RpZ19wb3J0KGludGVsX2hkbWkpLT5iYXNlLnR5cGUgPSBJTlRF TF9PVVRQVVRfSERNSTsKPiA+ICsJaWYgKGludGVsX2hkbWlfc2V0X2VkaWQoY29ubmVjdG9yKSkK PiA+ICAJCXN0YXR1cyA9IGNvbm5lY3Rvcl9zdGF0dXNfY29ubmVjdGVkOwo+ID4gLQl9IGVsc2UK PiA+ICsJZWxzZQo+ID4gIAkJc3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c19kaXNjb25uZWN0ZWQ7 Cj4gPiAgCj4gPiAgCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0KGRldl9wcml2LCBQT1dFUl9ET01B SU5fR01CVVMpOwo+ID4gQEAgLTE2MjYsOCArMTYyNSw2IEBAIGludGVsX2hkbWlfZGV0ZWN0KHN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCj4gPiAgc3RhdGljIHZv aWQKPiA+ICBpbnRlbF9oZG1pX2ZvcmNlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Ip Cj4gPiAgewo+ID4gLQlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRtaSA9IGludGVsX2F0dGFj aGVkX2hkbWkoY29ubmVjdG9yKTsKPiA+IC0KPiA+ICAJRFJNX0RFQlVHX0tNUygiW0NPTk5FQ1RP UjolZDolc11cbiIsCj4gPiAgCQkgICAgICBjb25uZWN0b3ItPmJhc2UuaWQsIGNvbm5lY3Rvci0+ bmFtZSk7Cj4gPiAgCj4gPiBAQCAtMTYzNyw3ICsxNjM0LDYgQEAgaW50ZWxfaGRtaV9mb3JjZShz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ID4gIAkJcmV0dXJuOwo+ID4gIAo+ID4g IAlpbnRlbF9oZG1pX3NldF9lZGlkKGNvbm5lY3Rvcik7Cj4gPiAtCWhkbWlfdG9fZGlnX3BvcnQo aW50ZWxfaGRtaSktPmJhc2UudHlwZSA9IElOVEVMX09VVFBVVF9IRE1JOwo+ID4gIH0KPiA+ICAK PiA+ICBzdGF0aWMgaW50IGludGVsX2hkbWlfZ2V0X21vZGVzKHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IpCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf bHZkcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCj4gPiBpbmRleCAzODU3 MmQ2NWU0NmUuLmVmODA0OTkxMTNlZSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX2x2ZHMuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZk cy5jCj4gPiBAQCAtMTI1LDYgKzEyNSw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2x2ZHNfZ2V0X2Nv bmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJc3RydWN0IGludGVsX2x2 ZHNfZW5jb2RlciAqbHZkc19lbmNvZGVyID0gdG9fbHZkc19lbmNvZGVyKCZlbmNvZGVyLT5iYXNl KTsKPiA+ICAJdTMyIHRtcCwgZmxhZ3MgPSAwOwo+ID4gIAo+ID4gKwlwaXBlX2NvbmZpZy0+b3V0 cHV0X3R5cGVzIHw9IEJJVChJTlRFTF9PVVRQVVRfTFZEUyk7Cj4gPiArCj4gPiAgCXRtcCA9IEk5 MTVfUkVBRChsdmRzX2VuY29kZXItPnJlZyk7Cj4gPiAgCWlmICh0bXAgJiBMVkRTX0hTWU5DX1BP TEFSSVRZKQo+ID4gIAkJZmxhZ3MgfD0gRFJNX01PREVfRkxBR19OSFNZTkM7Cj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ByZWdpb24uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX29wcmVnaW9uLmMKPiA+IGluZGV4IDFkOTQ2MjQwZTU1Zi4uMzk3MTRi ZTNlYjZiIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ByZWdp b24uYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ByZWdpb24uYwo+ID4g QEAgLTM4Myw3ICszODMsNyBAQCBpbnQgaW50ZWxfb3ByZWdpb25fbm90aWZ5X2VuY29kZXIoc3Ry dWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIsCj4gPiAgCWNhc2UgSU5URUxfT1VUUFVU X0FOQUxPRzoKPiA+ICAJCXR5cGUgPSBESVNQTEFZX1RZUEVfQ1JUOwo+ID4gIAkJYnJlYWs7Cj4g PiAtCWNhc2UgSU5URUxfT1VUUFVUX1VOS05PV046Cj4gPiArCWNhc2UgSU5URUxfT1VUUFVUX0RE SToKPiA+ICAJY2FzZSBJTlRFTF9PVVRQVVRfRFA6Cj4gPiAgCWNhc2UgSU5URUxfT1VUUFVUX0hE TUk6Cj4gPiAgCWNhc2UgSU5URUxfT1VUUFVUX0RQX01TVDoKPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9zZHZvLmMKPiA+IGluZGV4IDc0Mzc5NDRiMzg4Zi4uNDJlYzJkMWY3YTYxIDEwMDY0NAo+ID4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5jCj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9zZHZvLmMKPiA+IEBAIC0xNDI5LDYgKzE0MjksOCBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9zZHZvX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXIsCj4gPiAgCXU4IHZhbDsKPiA+ICAJYm9vbCByZXQ7Cj4gPiAgCj4gPiArCXBpcGVfY29uZmln LT5vdXRwdXRfdHlwZXMgfD0gQklUKElOVEVMX09VVFBVVF9TRFZPKTsKPiA+ICsKPiA+ICAJc2R2 b3ggPSBJOTE1X1JFQUQoaW50ZWxfc2R2by0+c2R2b19yZWcpOwo+ID4gIAo+ID4gIAlyZXQgPSBp bnRlbF9zZHZvX2dldF9pbnB1dF90aW1pbmcoaW50ZWxfc2R2bywgJmR0ZCk7Cj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3R2LmMKPiA+IGluZGV4IGE3OWE3NTkxYjJjZi4uYjE4NjA5Y2ViZTAzIDEwMDY0 NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwo+ID4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwo+ID4gQEAgLTg2OCw2ICs4NjgsOCBAQCBzdGF0 aWMgdm9pZAo+ID4gIGludGVsX3R2X2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXIsCj4gPiAgCQkgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQo+ ID4gIHsKPiA+ICsJcGlwZV9jb25maWctPm91dHB1dF90eXBlcyB8PSBCSVQoSU5URUxfT1VUUFVU X1RWT1VUKTsKPiA+ICsKPiA+ICAJcGlwZV9jb25maWctPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRj X2Nsb2NrID0gcGlwZV9jb25maWctPnBvcnRfY2xvY2s7Cj4gPiAgfQo+ID4gIAo+IAoKLS0gClZp bGxlIFN5cmrDpGzDpApJbnRlbCBPVEMKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4Cg==