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 15:44:25 +0300 Message-ID: <20171027124425.GF10981@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 556E26E91C for ; Fri, 27 Oct 2017 12:44:33 +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 cGF0Y2ggdG93YXJkcyByZW1vdmluZyB0aGUgdXNlPwoKV2UgZG9uJ3Qgd2FudCB0byByZW1vdmUg aXQuCgo+IAo+IFJlc3Qgb2YgdGhlIHNlcmllcyBleGNlcHQgcGF0Y2ggOCBsb29rcyBnb29kLiBG b3IgcGF0Y2ggMS00LCA2LCA3LCA5IChpZiB0aGUgZGVsdGEKPiBiZXR3ZWVuIGRkaV9nZXRfY29u ZmlnIGFuZCBvbGQgbXN0IGdldF9jb25maWcgaXMgaGFybWxlc3Mgb3IgYmVuZWZpY2lhbCkgYW5k IDEwOgo+IAo+IFJldmlld2VkLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9y c3RAbGludXguaW50ZWwuY29tPgo+IAo+IFRoYW5rcyBmb3IgdGhlIHdvcmsgdG93YXJkcyBjbGVh bmluZyB0aGlzIG1lc3MgdXAuCj4gCj4gfk1hYXJ0ZW4KPiA+IFNpZ25lZC1vZmYtYnk6IFZpbGxl IFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2RlYnVnZnMuYyAgIHwgIDIgKy0KPiA+ICBkcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9jcnQuYyAgICAgIHwgIDIgKysKPiA+ICBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kZGkuYyAgICAgIHwgNDMgKysrKysrKysrKysrKysrKysrKysrKysrKysr Ky0tLS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgIHwgMTYg KysrKysrKy0tLS0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgICAgICAg fCAyNCArKysrKysrKystLS0tLS0tLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZHBfbXN0LmMgICB8ICAyICsrCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2Lmgg ICAgICB8ICA3ICsrKystLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jICAg ICAgfCAgMiArKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2R2by5jICAgICAgfCAg MiArKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyAgICAgfCAxMiArKysr LS0tLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jICAgICB8ICAyICsr Cj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3ByZWdpb24uYyB8ICAyICstCj4gPiAg ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2R2by5jICAgICB8ICAyICsrCj4gPiAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYyAgICAgICB8ICAyICsrCj4gPiAgMTQgZmlsZXMgY2hh bmdlZCwgODAgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCj4gPgo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+IGluZGV4IGM2NWUzODFiODVmMy4uZTUzMzNiZmRmMzJk IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kZWJ1Z2ZzLmMKPiA+ ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZGVidWdmcy5jCj4gPiBAQCAtMzA0OSw3 ICszMDQ5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfY29ubmVjdG9yX2luZm8oc3RydWN0IHNlcV9m aWxlICptLAo+ID4gIAkJYnJlYWs7Cj4gPiAgCWNhc2UgRFJNX01PREVfQ09OTkVDVE9SX0hETUlB Ogo+ID4gIAkJaWYgKGludGVsX2VuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0hETUkgfHwK PiA+IC0JCSAgICBpbnRlbF9lbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9VTktOT1dOKQo+ ID4gKwkJICAgIGludGVsX2VuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0RESSkKPiA+ICAJ CQlpbnRlbF9oZG1pX2luZm8obSwgaW50ZWxfY29ubmVjdG9yKTsKPiA+ICAJCWJyZWFrOwo+ID4g IAlkZWZhdWx0Ogo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ny dC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3J0LmMKPiA+IGluZGV4IDY2OGU4YzNl NzkxZC4uYTYxZTYxZWZlOWFhIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfY3J0LmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NydC5jCj4g PiBAQCAtMTE5LDYgKzExOSw4IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfY3J0X2dldF9m bGFncyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiA+ICBzdGF0aWMgdm9pZCBpbnRl bF9jcnRfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJCQkJ IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiA+ICB7Cj4gPiArCXBpcGVf Y29uZmlnLT5vdXRwdXRfdHlwZXMgfD0gQklUKElOVEVMX09VVFBVVF9BTkFMT0cpOwo+ID4gKwo+ ID4gIAlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmZsYWdzIHw9IGludGVsX2NydF9n ZXRfZmxhZ3MoZW5jb2Rlcik7Cj4gPiAgCj4gPiAgCXBpcGVfY29uZmlnLT5iYXNlLmFkanVzdGVk X21vZGUuY3J0Y19jbG9jayA9IHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrOwo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZGRpLmMKPiA+IGluZGV4IGM4NzkwYmI3NDgzOS4uNjMwNjA5NTc1ZGI0IDEwMDY0 NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gPiBAQCAtNDk3LDEwICs0OTcsOCBAQCBl bnVtIHBvcnQgaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIpCj4gPiAgCXN3aXRjaCAoZW5jb2Rlci0+dHlwZSkgewo+ID4gIAljYXNlIElOVEVM X09VVFBVVF9EUF9NU1Q6Cj4gPiAgCQlyZXR1cm4gZW5jX3RvX21zdCgmZW5jb2Rlci0+YmFzZSkt PnByaW1hcnktPnBvcnQ7Cj4gPiAtCWNhc2UgSU5URUxfT1VUUFVUX0RQOgo+ID4gIAljYXNlIElO VEVMX09VVFBVVF9FRFA6Cj4gPiAtCWNhc2UgSU5URUxfT1VUUFVUX0hETUk6Cj4gPiAtCWNhc2Ug SU5URUxfT1VUUFVUX1VOS05PV046Cj4gPiArCWNhc2UgSU5URUxfT1VUUFVUX0RESToKPiA+ICAJ CXJldHVybiBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpLT5wb3J0Owo+ID4gIAljYXNl IElOVEVMX09VVFBVVF9BTkFMT0c6Cj4gPiAgCQlyZXR1cm4gUE9SVF9FOwo+ID4gQEAgLTE1MzIs NiArMTUzMCw3IEBAIHZvaWQgaW50ZWxfZGRpX3NldF92Y19wYXlsb2FkX2FsbG9jKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKPiA+ICAJZW51bSB0 cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0gY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7Cj4g PiAgCXVpbnQzMl90IHRlbXA7Cj4gPiArCj4gPiAgCXRlbXAgPSBJOTE1X1JFQUQoVFJBTlNfRERJ X0ZVTkNfQ1RMKGNwdV90cmFuc2NvZGVyKSk7Cj4gPiAgCWlmIChzdGF0ZSA9PSB0cnVlKQo+ID4g IAkJdGVtcCB8PSBUUkFOU19ERElfRFBfVkNfUEFZTE9BRF9BTExPQzsKPiA+IEBAIC0yNTg2LDEy ICsyNTg1LDIzIEBAIHZvaWQgaW50ZWxfZGRpX2dldF9jb25maWcoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCj4gPiAgCQkJcGlwZV9jb25maWctPmhkbWlfaGlnaF90bWRzX2Nsb2NrX3Jh dGlvID0gdHJ1ZTsKPiA+ICAJCS8qIGZhbGwgdGhyb3VnaCAqLwo+ID4gIAljYXNlIFRSQU5TX0RE SV9NT0RFX1NFTEVDVF9EVkk6Cj4gPiArCQlwaXBlX2NvbmZpZy0+b3V0cHV0X3R5cGVzIHw9IEJJ VChJTlRFTF9PVVRQVVRfSERNSSk7Cj4gPiAgCQlwaXBlX2NvbmZpZy0+bGFuZV9jb3VudCA9IDQ7 Cj4gPiAgCQlicmVhazsKPiA+ICAJY2FzZSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRkRJOgo+ID4g KwkJcGlwZV9jb25maWctPm91dHB1dF90eXBlcyB8PSBCSVQoSU5URUxfT1VUUFVUX0FOQUxPRyk7 Cj4gPiAgCQlicmVhazsKPiA+ICAJY2FzZSBUUkFOU19ERElfTU9ERV9TRUxFQ1RfRFBfU1NUOgo+ ID4gKwkJaWYgKGVuY29kZXItPnR5cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkKPiA+ICsJCQlwaXBl X2NvbmZpZy0+b3V0cHV0X3R5cGVzIHw9IEJJVChJTlRFTF9PVVRQVVRfRURQKTsKPiA+ICsJCWVs c2UKPiA+ICsJCQlwaXBlX2NvbmZpZy0+b3V0cHV0X3R5cGVzIHw9IEJJVChJTlRFTF9PVVRQVVRf RFApOwo+ID4gKwkJcGlwZV9jb25maWctPmxhbmVfY291bnQgPQo+ID4gKwkJCSgodGVtcCAmIERE SV9QT1JUX1dJRFRIX01BU0spID4+IERESV9QT1JUX1dJRFRIX1NISUZUKSArIDE7Cj4gPiArCQlp bnRlbF9kcF9nZXRfbV9uKGludGVsX2NydGMsIHBpcGVfY29uZmlnKTsKPiA+ICsJCWJyZWFrOwo+ ID4gIAljYXNlIFRSQU5TX0RESV9NT0RFX1NFTEVDVF9EUF9NU1Q6Cj4gPiArCQlwaXBlX2NvbmZp Zy0+b3V0cHV0X3R5cGVzIHw9IEJJVChJTlRFTF9PVVRQVVRfRFBfTVNUKTsKPiA+ICAJCXBpcGVf Y29uZmlnLT5sYW5lX2NvdW50ID0KPiA+ICAJCQkoKHRlbXAgJiBERElfUE9SVF9XSURUSF9NQVNL KSA+PiBERElfUE9SVF9XSURUSF9TSElGVCkgKyAxOwo+ID4gIAkJaW50ZWxfZHBfZ2V0X21fbihp bnRlbF9jcnRjLCBwaXBlX2NvbmZpZyk7Cj4gPiBAQCAtMjYzMCwyMSArMjY0MCwzNiBAQCB2b2lk IGludGVsX2RkaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4g IAkJCWJ4dF9kZGlfcGh5X2dldF9sYW5lX2xhdF9vcHRpbV9tYXNrKGVuY29kZXIpOwo+ID4gIH0K PiA+ICAKPiA+ICtzdGF0aWMgZW51bSBpbnRlbF9vdXRwdXRfdHlwZQo+ID4gK2ludGVsX2RkaV9j b21wdXRlX291dHB1dF90eXBlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ID4gKwkJ CSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ID4gKwkJCSAgICAg IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlKQo+ID4gK3sKPiA+ICsJc3dp dGNoIChjb25uX3N0YXRlLT5jb25uZWN0b3ItPmNvbm5lY3Rvcl90eXBlKSB7Cj4gPiArCWNhc2Ug RFJNX01PREVfQ09OTkVDVE9SX0hETUlBOgo+ID4gKwkJcmV0dXJuIElOVEVMX09VVFBVVF9IRE1J Owo+ID4gKwljYXNlIERSTV9NT0RFX0NPTk5FQ1RPUl9lRFA6Cj4gPiArCQlyZXR1cm4gSU5URUxf T1VUUFVUX0VEUDsKPiA+ICsJY2FzZSBEUk1fTU9ERV9DT05ORUNUT1JfRGlzcGxheVBvcnQ6Cj4g PiArCQlyZXR1cm4gSU5URUxfT1VUUFVUX0RQOwo+ID4gKwlkZWZhdWx0Ogo+ID4gKwkJTUlTU0lO R19DQVNFKGNvbm5fc3RhdGUtPmNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUpOwo+ID4gKwkJcmV0 dXJuIElOVEVMX09VVFBVVF9VTlVTRUQ7Cj4gPiArCX0KPiA+ICt9Cj4gPiArCj4gPiAgc3RhdGlj IGJvb2wgaW50ZWxfZGRpX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ID4gIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywK PiA+ICAJCQkJICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiA+ ICB7Cj4gPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5j b2Rlci0+YmFzZS5kZXYpOwo+ID4gLQlpbnQgdHlwZSA9IGVuY29kZXItPnR5cGU7Cj4gPiAgCWlu dCBwb3J0ID0gaW50ZWxfZGRpX2dldF9lbmNvZGVyX3BvcnQoZW5jb2Rlcik7Cj4gPiAgCWludCBy ZXQ7Cj4gPiAgCj4gPiAtCVdBUk4odHlwZSA9PSBJTlRFTF9PVVRQVVRfVU5LTk9XTiwgImNvbXB1 dGVfY29uZmlnKCkgb24gdW5rbm93biBvdXRwdXQhXG4iKTsKPiA+IC0KPiA+ICAJaWYgKHBvcnQg PT0gUE9SVF9BKQo+ID4gIAkJcGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVyID0gVFJBTlNDT0RF Ul9FRFA7Cj4gPiAgCj4gPiAtCWlmICh0eXBlID09IElOVEVMX09VVFBVVF9IRE1JKQo+ID4gKwlp ZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShwaXBlX2NvbmZpZywgSU5URUxfT1VUUFVUX0hETUkpKQo+ ID4gIAkJcmV0ID0gaW50ZWxfaGRtaV9jb21wdXRlX2NvbmZpZyhlbmNvZGVyLCBwaXBlX2NvbmZp ZywgY29ubl9zdGF0ZSk7Cj4gPiAgCWVsc2UKPiA+ICAJCXJldCA9IGludGVsX2RwX2NvbXB1dGVf Y29uZmlnKGVuY29kZXIsIHBpcGVfY29uZmlnLCBjb25uX3N0YXRlKTsKPiA+IEBAIC0yNzY0LDYg KzI3ODksNyBAQCB2b2lkIGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCj4gPiAgCWRybV9lbmNvZGVyX2luaXQoJmRldl9wcml2 LT5kcm0sIGVuY29kZXIsICZpbnRlbF9kZGlfZnVuY3MsCj4gPiAgCQkJIERSTV9NT0RFX0VOQ09E RVJfVE1EUywgIkRESSAlYyIsIHBvcnRfbmFtZShwb3J0KSk7Cj4gPiAgCj4gPiArCWludGVsX2Vu Y29kZXItPmNvbXB1dGVfb3V0cHV0X3R5cGUgPSBpbnRlbF9kZGlfY29tcHV0ZV9vdXRwdXRfdHlw ZTsKPiA+ICAJaW50ZWxfZW5jb2Rlci0+Y29tcHV0ZV9jb25maWcgPSBpbnRlbF9kZGlfY29tcHV0 ZV9jb25maWc7Cj4gPiAgCWludGVsX2VuY29kZXItPmVuYWJsZSA9IGludGVsX2VuYWJsZV9kZGk7 Cj4gPiAgCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkKPiA+IEBAIC0yODIxLDkgKzI4NDcsMTAg QEAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs IGVudW0gcG9ydCBwb3J0KQo+ID4gIAkJfQo+ID4gIAl9Cj4gPiAgCj4gPiArCWludGVsX2RpZ19w b3J0LT5kcC5vdXRwdXRfcmVnID0gSU5WQUxJRF9NTUlPX1JFRzsKPiA+ICAJaW50ZWxfZGlnX3Bv cnQtPm1heF9sYW5lcyA9IG1heF9sYW5lczsKPiA+ICAKPiA+IC0JaW50ZWxfZW5jb2Rlci0+dHlw ZSA9IElOVEVMX09VVFBVVF9VTktOT1dOOwo+ID4gKwlpbnRlbF9lbmNvZGVyLT50eXBlID0gSU5U RUxfT1VUUFVUX0RESTsKPiA+ICAJaW50ZWxfZW5jb2Rlci0+cG93ZXJfZG9tYWluID0gaW50ZWxf cG9ydF90b19wb3dlcl9kb21haW4ocG9ydCk7Cj4gPiAgCWludGVsX2VuY29kZXItPnBvcnQgPSBw b3J0Owo+ID4gIAlpbnRlbF9lbmNvZGVyLT5jcnRjX21hc2sgPSAoMSA8PCAwKSB8ICgxIDw8IDEp IHwgKDEgPDwgMik7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBpbmRl eCBiZDYyYzBhNjViY2QuLmE3ZTAyYWUzMzU4MyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCj4gPiBAQCAtMTA1OTEsNyArMTA1OTEsNyBAQCBzdGF0aWMgY29uc3Qg Y2hhciAqIGNvbnN0IG91dHB1dF90eXBlX3N0cltdID0gewo+ID4gIAlPVVRQVVRfVFlQRShEUCks Cj4gPiAgCU9VVFBVVF9UWVBFKEVEUCksCj4gPiAgCU9VVFBVVF9UWVBFKERTSSksCj4gPiAtCU9V VFBVVF9UWVBFKFVOS05PV04pLAo+ID4gKwlPVVRQVVRfVFlQRShEREkpLAo+ID4gIAlPVVRQVVRf VFlQRShEUF9NU1QpLAo+ID4gIH07Cj4gPiAgCj4gPiBAQCAtMTA3NjIsNyArMTA3NjIsNyBAQCBz dGF0aWMgYm9vbCBjaGVja19kaWdpdGFsX3BvcnRfY29uZmxpY3RzKHN0cnVjdCBkcm1fYXRvbWlj X3N0YXRlICpzdGF0ZSkKPiA+ICAKPiA+ICAJCXN3aXRjaCAoZW5jb2Rlci0+dHlwZSkgewo+ID4g IAkJCXVuc2lnbmVkIGludCBwb3J0X21hc2s7Cj4gPiAtCQljYXNlIElOVEVMX09VVFBVVF9VTktO T1dOOgo+ID4gKwkJY2FzZSBJTlRFTF9PVVRQVVRfRERJOgo+ID4gIAkJCWlmIChXQVJOX09OKCFI QVNfRERJKHRvX2k5MTUoZGV2KSkpKQo+ID4gIAkJCQlicmVhazsKPiA+ICAJCWNhc2UgSU5URUxf T1VUUFVUX0RQOgo+ID4gQEAgLTEwODk1LDcgKzEwODk1LDEyIEBAIGludGVsX21vZGVzZXRfcGlw ZV9jb25maWcoc3RydWN0IGRybV9jcnRjICpjcnRjLAo+ID4gIAkJICogRGV0ZXJtaW5lIG91dHB1 dF90eXBlcyBiZWZvcmUgY2FsbGluZyB0aGUgLmNvbXB1dGVfY29uZmlnKCkKPiA+ICAJCSAqIGhv b2tzIHNvIHRoYXQgdGhlIGhvb2tzIGNhbiB1c2UgdGhpcyBpbmZvcm1hdGlvbiBzYWZlbHkuCj4g PiAgCQkgKi8KPiA+IC0JCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMgfD0gMSA8PCBlbmNvZGVy LT50eXBlOwo+ID4gKwkJaWYgKGVuY29kZXItPmNvbXB1dGVfb3V0cHV0X3R5cGUpCj4gPiArCQkJ cGlwZV9jb25maWctPm91dHB1dF90eXBlcyB8PQo+ID4gKwkJCQlCSVQoZW5jb2Rlci0+Y29tcHV0 ZV9vdXRwdXRfdHlwZShlbmNvZGVyLCBwaXBlX2NvbmZpZywKPiA+ICsJCQkJCQkJCSBjb25uZWN0 b3Jfc3RhdGUpKTsKPiA+ICsJCWVsc2UKPiA+ICsJCQlwaXBlX2NvbmZpZy0+b3V0cHV0X3R5cGVz IHw9IEJJVChlbmNvZGVyLT50eXBlKTsKPiA+ICAJfQo+ID4gIAo+ID4gIGVuY29kZXJfcmV0cnk6 Cj4gPiBAQCAtMTE1NzIsMTAgKzExNTc3LDggQEAgdmVyaWZ5X2NydGNfc3RhdGUoc3RydWN0IGRy bV9jcnRjICpjcnRjLAo+ID4gIAkJCQkiRW5jb2RlciBjb25uZWN0ZWQgdG8gd3JvbmcgcGlwZSAl Y1xuIiwKPiA+ICAJCQkJcGlwZV9uYW1lKHBpcGUpKTsKPiA+ICAKPiA+IC0JCWlmIChhY3RpdmUp IHsKPiA+IC0JCQlwaXBlX2NvbmZpZy0+b3V0cHV0X3R5cGVzIHw9IDEgPDwgZW5jb2Rlci0+dHlw ZTsKPiA+ICsJCWlmIChhY3RpdmUpCj4gPiAgCQkJZW5jb2Rlci0+Z2V0X2NvbmZpZyhlbmNvZGVy LCBwaXBlX2NvbmZpZyk7Cj4gPiAtCQl9Cj4gPiAgCX0KPiA+ICAKPiA+ICAJaW50ZWxfY3J0Y19j b21wdXRlX3BpeGVsX3JhdGUocGlwZV9jb25maWcpOwo+ID4gQEAgLTE0OTYzLDcgKzE0OTY2LDYg QEAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4gPiAgCQkJY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoY3J0 Yy0+YmFzZS5zdGF0ZSk7Cj4gPiAgCj4gPiAgCQkJZW5jb2Rlci0+YmFzZS5jcnRjID0gJmNydGMt PmJhc2U7Cj4gPiAtCQkJY3J0Y19zdGF0ZS0+b3V0cHV0X3R5cGVzIHw9IDEgPDwgZW5jb2Rlci0+ dHlwZTsKPiA+ICAJCQllbmNvZGVyLT5nZXRfY29uZmlnKGVuY29kZXIsIGNydGNfc3RhdGUpOwo+ ID4gIAkJfSBlbHNlIHsKPiA+ICAJCQllbmNvZGVyLT5iYXNlLmNydGMgPSBOVUxMOwo+ID4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcC5jCj4gPiBpbmRleCBhYTc1ZjU1ZWViNjEuLjJiNDgyZDEyMDAwZSAx MDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiA+IEBAIC03NTgsMTEgKzc1OCwxNiBA QCB2b2lkIGludGVsX3Bvd2VyX3NlcXVlbmNlcl9yZXNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCj4gPiAgCQlzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwOwo+ID4gIAo+ID4g IAkJaWYgKGVuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0RQICYmCj4gPiAtCQkgICAgZW5j b2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfRURQKQo+ID4gKwkJICAgIGVuY29kZXItPnR5cGUg IT0gSU5URUxfT1VUUFVUX0VEUCAmJgo+ID4gKwkJICAgIGVuY29kZXItPnR5cGUgIT0gSU5URUxf T1VUUFVUX0RESSkKPiA+ICAJCQljb250aW51ZTsKPiA+ICAKPiA+ICAJCWludGVsX2RwID0gZW5j X3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiA+ICAKPiA+ICsJCS8qIFNraXAgcHVyZSBE VkkvSERNSSBEREkgZW5jb2RlcnMgKi8KPiA+ICsJCWlmICghaTkxNV9tbWlvX3JlZ192YWxpZChp bnRlbF9kcC0+b3V0cHV0X3JlZykpCj4gPiArCQkJY29udGludWU7Cj4gPiArCj4gPiAgCQlXQVJO X09OKGludGVsX2RwLT5hY3RpdmVfcGlwZSAhPSBJTlZBTElEX1BJUEUpOwo+ID4gIAo+ID4gIAkJ aWYgKGVuY29kZXItPnR5cGUgIT0gSU5URUxfT1VUUFVUX0VEUCkKPiA+IEBAIC0yNjAzLDYgKzI2 MDgsMTEgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiA+ICAJZW51bSBwb3J0IHBvcnQgPSBkcF90b19kaWdfcG9ydChpbnRl bF9kcCktPnBvcnQ7Cj4gPiAgCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0 YyhlbmNvZGVyLT5iYXNlLmNydGMpOwo+ID4gIAo+ID4gKwlpZiAoZW5jb2Rlci0+dHlwZSA9PSBJ TlRFTF9PVVRQVVRfRURQKQo+ID4gKwkJcGlwZV9jb25maWctPm91dHB1dF90eXBlcyB8PSBCSVQo SU5URUxfT1VUUFVUX0VEUCk7Cj4gPiArCWVsc2UKPiA+ICsJCXBpcGVfY29uZmlnLT5vdXRwdXRf dHlwZXMgfD0gQklUKElOVEVMX09VVFBVVF9EUCk7Cj4gPiArCj4gPiAgCXRtcCA9IEk5MTVfUkVB RChpbnRlbF9kcC0+b3V0cHV0X3JlZyk7Cj4gPiAgCj4gPiAgCXBpcGVfY29uZmlnLT5oYXNfYXVk aW8gPSB0bXAgJiBEUF9BVURJT19PVVRQVVRfRU5BQkxFICYmIHBvcnQgIT0gUE9SVF9BOwo+ID4g QEAgLTQ2OTksOCArNDcwOSw2IEBAIGludGVsX2RwX2xvbmdfcHVsc2Uoc3RydWN0IGludGVsX2Nv bm5lY3RvciAqaW50ZWxfY29ubmVjdG9yKQo+ID4gIHsKPiA+ICAJc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciA9ICZpbnRlbF9jb25uZWN0b3ItPmJhc2U7Cj4gPiAgCXN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAgPSBpbnRlbF9hdHRhY2hlZF9kcChjb25uZWN0b3IpOwo+ID4gLQlzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGlu dGVsX2RwKTsKPiA+IC0Jc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAmaW50 ZWxfZGlnX3BvcnQtPmJhc2U7Cj4gPiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0 b3ItPmRldjsKPiA+ICAJZW51bSBkcm1fY29ubmVjdG9yX3N0YXR1cyBzdGF0dXM7Cj4gPiAgCXU4 IHNpbmtfaXJxX3ZlY3RvciA9IDA7Cj4gPiBAQCAtNDczMyw5ICs0NzQxLDYgQEAgaW50ZWxfZHBf bG9uZ19wdWxzZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IpCj4gPiAg CQlnb3RvIG91dDsKPiA+ICAJfQo+ID4gIAo+ID4gLQlpZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSAh PSBJTlRFTF9PVVRQVVRfRURQKQo+ID4gLQkJaW50ZWxfZW5jb2Rlci0+dHlwZSA9IElOVEVMX09V VFBVVF9EUDsKPiA+IC0KPiA+ICAJaWYgKGludGVsX2RwLT5yZXNldF9saW5rX3BhcmFtcykgewo+ ID4gIAkJLyogSW5pdGlhbCBtYXggbGluayBsYW5lIGNvdW50ICovCj4gPiAgCQlpbnRlbF9kcC0+ bWF4X2xpbmtfbGFuZV9jb3VudCA9IGludGVsX2RwX21heF9jb21tb25fbGFuZV9jb3VudChpbnRl bF9kcCk7Cj4gPiBAQCAtNDg1Miw5ICs0ODU3LDYgQEAgaW50ZWxfZHBfZm9yY2Uoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiA+ICAJaW50ZWxfZHBfc2V0X2VkaWQoaW50ZWxfZHAp Owo+ID4gIAo+ID4gIAlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgaW50ZWxfZHAt PmF1eF9wb3dlcl9kb21haW4pOwo+ID4gLQo+ID4gLQlpZiAoaW50ZWxfZW5jb2Rlci0+dHlwZSAh PSBJTlRFTF9PVVRQVVRfRURQKQo+ID4gLQkJaW50ZWxfZW5jb2Rlci0+dHlwZSA9IElOVEVMX09V VFBVVF9EUDsKPiA+ICB9Cj4gPiAgCj4gPiAgc3RhdGljIGludCBpbnRlbF9kcF9nZXRfbW9kZXMo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiA+IEBAIC01MDczLDEwICs1MDc1LDYg QEAgaW50ZWxfZHBfaHBkX3B1bHNlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2Rp Z19wb3J0LCBib29sIGxvbmdfaHBkKQo+ID4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiAgCWVudW0gaXJxcmV0dXJuIHJldCA9IElSUV9OT05F Owo+ID4gIAo+ID4gLQlpZiAoaW50ZWxfZGlnX3BvcnQtPmJhc2UudHlwZSAhPSBJTlRFTF9PVVRQ VVRfRURQICYmCj4gPiAtCSAgICBpbnRlbF9kaWdfcG9ydC0+YmFzZS50eXBlICE9IElOVEVMX09V VFBVVF9IRE1JKQo+ID4gLQkJaW50ZWxfZGlnX3BvcnQtPmJhc2UudHlwZSA9IElOVEVMX09VVFBV VF9EUDsKPiA+IC0KPiA+ICAJaWYgKGxvbmdfaHBkICYmIGludGVsX2RpZ19wb3J0LT5iYXNlLnR5 cGUgPT0gSU5URUxfT1VUUFVUX0VEUCkgewo+ID4gIAkJLyoKPiA+ICAJCSAqIHZkZCBvZmYgY2Fu IGdlbmVyYXRlIGEgbG9uZyBwdWxzZSBvbiBlRFAgd2hpY2gKPiA+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2RwX21zdC5jCj4gPiBpbmRleCA3NzI1MjE0NDBhOWYuLjliZTZmMzJiYjEwMCAxMDA2NDQK PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5jCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+ID4gQEAgLTI3MCw2ICsyNzAsOCBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kcF9tc3RfZW5jX2dldF9jb25maWcoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gPiAgCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IHBp cGVfY29uZmlnLT5jcHVfdHJhbnNjb2RlcjsKPiA+ICAJdTMyIHRlbXAsIGZsYWdzID0gMDsKPiA+ ICAKPiA+ICsJcGlwZV9jb25maWctPm91dHB1dF90eXBlcyB8PSBCSVQoSU5URUxfT1VUUFVUX0RQ X01TVCk7Cj4gPiArCj4gPiAgCXBpcGVfY29uZmlnLT5oYXNfYXVkaW8gPQo+ID4gIAkJaW50ZWxf ZGRpX2lzX2F1ZGlvX2VuYWJsZWQoZGV2X3ByaXYsIGNydGMpOwo+ID4gIAo+ID4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfZHJ2LmgKPiA+IGluZGV4IGEwNWFiM2ExYWIyNy4uNjUwMTI5OTgwY2UyIDEwMDY0 NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiBAQCAtMTczLDcgKzE3Myw3IEBAIGVu dW0gaW50ZWxfb3V0cHV0X3R5cGUgewo+ID4gIAlJTlRFTF9PVVRQVVRfRFAgPSA3LAo+ID4gIAlJ TlRFTF9PVVRQVVRfRURQID0gOCwKPiA+ICAJSU5URUxfT1VUUFVUX0RTSSA9IDksCj4gPiAtCUlO VEVMX09VVFBVVF9VTktOT1dOID0gMTAsCj4gPiArCUlOVEVMX09VVFBVVF9EREkgPSAxMCwKPiA+ ICAJSU5URUxfT1VUUFVUX0RQX01TVCA9IDExLAo+ID4gIH07Cj4gPiAgCj4gPiBAQCAtMjE2LDYg KzIxNiw5IEBAIHN0cnVjdCBpbnRlbF9lbmNvZGVyIHsKPiA+ICAJZW51bSBwb3J0IHBvcnQ7Cj4g PiAgCXVuc2lnbmVkIGludCBjbG9uZWFibGU7Cj4gPiAgCXZvaWQgKCpob3RfcGx1Zykoc3RydWN0 IGludGVsX2VuY29kZXIgKik7Cj4gPiArCWVudW0gaW50ZWxfb3V0cHV0X3R5cGUgKCpjb21wdXRl X291dHB1dF90eXBlKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAo+ID4gKwkJCQkJCSAgICAgIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICosCj4gPiArCQkJCQkJICAgICAgc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKik7Cj4gPiAgCWJvb2wgKCpjb21wdXRlX2NvbmZpZykoc3RydWN0IGludGVs X2VuY29kZXIgKiwKPiA+ICAJCQkgICAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKiwKPiA+ ICAJCQkgICAgICAgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKik7Cj4gPiBAQCAtMTE0OSw3 ICsxMTUyLDcgQEAgZW5jX3RvX2RpZ19wb3J0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikK PiA+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSB0b19pbnRlbF9lbmNv ZGVyKGVuY29kZXIpOwo+ID4gIAo+ID4gIAlzd2l0Y2ggKGludGVsX2VuY29kZXItPnR5cGUpIHsK PiA+IC0JY2FzZSBJTlRFTF9PVVRQVVRfVU5LTk9XTjoKPiA+ICsJY2FzZSBJTlRFTF9PVVRQVVRf RERJOgo+ID4gIAkJV0FSTl9PTighSEFTX0RESSh0b19pOTE1KGVuY29kZXItPmRldikpKTsKPiA+ ICAJY2FzZSBJTlRFTF9PVVRQVVRfRFA6Cj4gPiAgCWNhc2UgSU5URUxfT1VUUFVUX0VEUDoKPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4gPiBpbmRleCA2NmJiZWRjNWZhMDEuLjJhZTNlZWEx OTMxNyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RzaS5jCj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kc2kuYwo+ID4gQEAgLTEyNDMsNiAr MTI0Myw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2RzaV9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ID4gIAl1MzIgcGNsazsKPiA+ICAJRFJNX0RFQlVHX0tNUygiXG4i KTsKPiA+ICAKPiA+ICsJcGlwZV9jb25maWctPm91dHB1dF90eXBlcyB8PSBCSVQoSU5URUxfT1VU UFVUX0RTSSk7Cj4gPiArCj4gPiAgCWlmIChJU19HRU45X0xQKGRldl9wcml2KSkKPiA+ICAJCWJ4 dF9kc2lfZ2V0X3BpcGVfY29uZmlnKGVuY29kZXIsIHBpcGVfY29uZmlnKTsKPiA+ICAKPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kdm8uYyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2R2by5jCj4gPiBpbmRleCA1M2M5Yjc2M2Y0Y2UuLjc1NGJhYTAwYmVh OSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2R2by5jCj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kdm8uYwo+ID4gQEAgLTE1OSw2ICsxNTks OCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kdm9fZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2Rl ciAqZW5jb2RlciwKPiA+ICAJc3RydWN0IGludGVsX2R2byAqaW50ZWxfZHZvID0gZW5jX3RvX2R2 byhlbmNvZGVyKTsKPiA+ICAJdTMyIHRtcCwgZmxhZ3MgPSAwOwo+ID4gIAo+ID4gKwlwaXBlX2Nv bmZpZy0+b3V0cHV0X3R5cGVzIHw9IEJJVChJTlRFTF9PVVRQVVRfRFZPKTsKPiA+ICsKPiA+ICAJ dG1wID0gSTkxNV9SRUFEKGludGVsX2R2by0+ZGV2LmR2b19yZWcpOwo+ID4gIAlpZiAodG1wICYg RFZPX0hTWU5DX0FDVElWRV9ISUdIKQo+ID4gIAkJZmxhZ3MgfD0gRFJNX01PREVfRkxBR19QSFNZ TkM7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gPiBpbmRleCA1MTMyZGM4MTQ3ODgu LjFmZjQ0OGE2N2I5OSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2hkbWkuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gPiBA QCAtOTU3LDYgKzk1Nyw4IEBAIHN0YXRpYyB2b2lkIGludGVsX2hkbWlfZ2V0X2NvbmZpZyhzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJdTMyIHRtcCwgZmxhZ3MgPSAwOwo+ID4g IAlpbnQgZG90Y2xvY2s7Cj4gPiAgCj4gPiArCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMgfD0g QklUKElOVEVMX09VVFBVVF9IRE1JKTsKPiA+ICsKPiA+ICAJdG1wID0gSTkxNV9SRUFEKGludGVs X2hkbWktPmhkbWlfcmVnKTsKPiA+ICAKPiA+ICAJaWYgKHRtcCAmIFNEVk9fSFNZTkNfQUNUSVZF X0hJR0gpCj4gPiBAQCAtMTYxMCwxMiArMTYxMiw5IEBAIGludGVsX2hkbWlfZGV0ZWN0KHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGJvb2wgZm9yY2UpCj4gPiAgCj4gPiAgCWludGVs X2hkbWlfdW5zZXRfZWRpZChjb25uZWN0b3IpOwo+ID4gIAo+ID4gLQlpZiAoaW50ZWxfaGRtaV9z ZXRfZWRpZChjb25uZWN0b3IpKSB7Cj4gPiAtCQlzdHJ1Y3QgaW50ZWxfaGRtaSAqaW50ZWxfaGRt aSA9IGludGVsX2F0dGFjaGVkX2hkbWkoY29ubmVjdG9yKTsKPiA+IC0KPiA+IC0JCWhkbWlfdG9f ZGlnX3BvcnQoaW50ZWxfaGRtaSktPmJhc2UudHlwZSA9IElOVEVMX09VVFBVVF9IRE1JOwo+ID4g KwlpZiAoaW50ZWxfaGRtaV9zZXRfZWRpZChjb25uZWN0b3IpKQo+ID4gIAkJc3RhdHVzID0gY29u bmVjdG9yX3N0YXR1c19jb25uZWN0ZWQ7Cj4gPiAtCX0gZWxzZQo+ID4gKwllbHNlCj4gPiAgCQlz dGF0dXMgPSBjb25uZWN0b3Jfc3RhdHVzX2Rpc2Nvbm5lY3RlZDsKPiA+ICAKPiA+ICAJaW50ZWxf ZGlzcGxheV9wb3dlcl9wdXQoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9HTUJVUyk7Cj4gPiBAQCAt MTYyNiw4ICsxNjI1LDYgQEAgaW50ZWxfaGRtaV9kZXRlY3Qoc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm5lY3RvciwgYm9vbCBmb3JjZSkKPiA+ICBzdGF0aWMgdm9pZAo+ID4gIGludGVsX2hkbWlf Zm9yY2Uoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiA+ICB7Cj4gPiAtCXN0cnVj dCBpbnRlbF9oZG1pICppbnRlbF9oZG1pID0gaW50ZWxfYXR0YWNoZWRfaGRtaShjb25uZWN0b3Ip Owo+ID4gLQo+ID4gIAlEUk1fREVCVUdfS01TKCJbQ09OTkVDVE9SOiVkOiVzXVxuIiwKPiA+ICAJ CSAgICAgIGNvbm5lY3Rvci0+YmFzZS5pZCwgY29ubmVjdG9yLT5uYW1lKTsKPiA+ICAKPiA+IEBA IC0xNjM3LDcgKzE2MzQsNiBAQCBpbnRlbF9oZG1pX2ZvcmNlKHN0cnVjdCBkcm1fY29ubmVjdG9y ICpjb25uZWN0b3IpCj4gPiAgCQlyZXR1cm47Cj4gPiAgCj4gPiAgCWludGVsX2hkbWlfc2V0X2Vk aWQoY29ubmVjdG9yKTsKPiA+IC0JaGRtaV90b19kaWdfcG9ydChpbnRlbF9oZG1pKS0+YmFzZS50 eXBlID0gSU5URUxfT1VUUFVUX0hETUk7Cj4gPiAgfQo+ID4gIAo+ID4gIHN0YXRpYyBpbnQgaW50 ZWxfaGRtaV9nZXRfbW9kZXMoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMKPiA+IGluZGV4IDM4NTcyZDY1ZTQ2ZS4uZWY4MDQ5OTEx M2VlIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfbHZkcy5jCj4g PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9sdmRzLmMKPiA+IEBAIC0xMjUsNiAr MTI1LDggQEAgc3RhdGljIHZvaWQgaW50ZWxfbHZkc19nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ID4gIAlzdHJ1Y3QgaW50ZWxfbHZkc19lbmNvZGVyICpsdmRzX2Vu Y29kZXIgPSB0b19sdmRzX2VuY29kZXIoJmVuY29kZXItPmJhc2UpOwo+ID4gIAl1MzIgdG1wLCBm bGFncyA9IDA7Cj4gPiAgCj4gPiArCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMgfD0gQklUKElO VEVMX09VVFBVVF9MVkRTKTsKPiA+ICsKPiA+ICAJdG1wID0gSTkxNV9SRUFEKGx2ZHNfZW5jb2Rl ci0+cmVnKTsKPiA+ICAJaWYgKHRtcCAmIExWRFNfSFNZTkNfUE9MQVJJVFkpCj4gPiAgCQlmbGFn cyB8PSBEUk1fTU9ERV9GTEFHX05IU1lOQzsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9vcHJlZ2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfb3By ZWdpb24uYwo+ID4gaW5kZXggMWQ5NDYyNDBlNTVmLi4zOTcxNGJlM2ViNmIgMTAwNjQ0Cj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vcHJlZ2lvbi5jCj4gPiArKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9vcHJlZ2lvbi5jCj4gPiBAQCAtMzgzLDcgKzM4Myw3IEBA IGludCBpbnRlbF9vcHJlZ2lvbl9ub3RpZnlfZW5jb2RlcihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq aW50ZWxfZW5jb2RlciwKPiA+ICAJY2FzZSBJTlRFTF9PVVRQVVRfQU5BTE9HOgo+ID4gIAkJdHlw ZSA9IERJU1BMQVlfVFlQRV9DUlQ7Cj4gPiAgCQlicmVhazsKPiA+IC0JY2FzZSBJTlRFTF9PVVRQ VVRfVU5LTk9XTjoKPiA+ICsJY2FzZSBJTlRFTF9PVVRQVVRfRERJOgo+ID4gIAljYXNlIElOVEVM X09VVFBVVF9EUDoKPiA+ICAJY2FzZSBJTlRFTF9PVVRQVVRfSERNSToKPiA+ICAJY2FzZSBJTlRF TF9PVVRQVVRfRFBfTVNUOgo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Nkdm8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nkdm8uYwo+ID4gaW5kZXgg NzQzNzk0NGIzODhmLi40MmVjMmQxZjdhNjEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9zZHZvLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3Nkdm8uYwo+ID4gQEAgLTE0MjksNiArMTQyOSw4IEBAIHN0YXRpYyB2b2lkIGludGVsX3Nkdm9f Z2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJdTggdmFsOwo+ ID4gIAlib29sIHJldDsKPiA+ICAKPiA+ICsJcGlwZV9jb25maWctPm91dHB1dF90eXBlcyB8PSBC SVQoSU5URUxfT1VUUFVUX1NEVk8pOwo+ID4gKwo+ID4gIAlzZHZveCA9IEk5MTVfUkVBRChpbnRl bF9zZHZvLT5zZHZvX3JlZyk7Cj4gPiAgCj4gPiAgCXJldCA9IGludGVsX3Nkdm9fZ2V0X2lucHV0 X3RpbWluZyhpbnRlbF9zZHZvLCAmZHRkKTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF90di5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdHYuYwo+ID4g aW5kZXggYTc5YTc1OTFiMmNmLi5iMTg2MDljZWJlMDMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF90di5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF90di5jCj4gPiBAQCAtODY4LDYgKzg2OCw4IEBAIHN0YXRpYyB2b2lkCj4gPiAgaW50ZWxf dHZfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiA+ICAJCSAgICBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCj4gPiAgewo+ID4gKwlwaXBlX2Nv bmZpZy0+b3V0cHV0X3R5cGVzIHw9IEJJVChJTlRFTF9PVVRQVVRfVFZPVVQpOwo+ID4gKwo+ID4g IAlwaXBlX2NvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2sgPSBwaXBlX2NvbmZp Zy0+cG9ydF9jbG9jazsKPiA+ICB9Cj4gPiAgCj4gCgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVs IE9UQwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRl bC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6 Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK