From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v3 13/23] FIXME: drm/i915/tgl: Select master transcoder in DP MST Date: Fri, 23 Aug 2019 16:02:23 +0300 Message-ID: <20190823130223.GT5942@intel.com> References: <20190823082055.5992-1-lucas.demarchi@intel.com> <20190823082055.5992-14-lucas.demarchi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 47DBA6EC85 for ; Fri, 23 Aug 2019 13:02:29 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190823082055.5992-14-lucas.demarchi@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lucas De Marchi Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBBdWcgMjMsIDIwMTkgYXQgMDE6MjA6NDVBTSAtMDcwMCwgTHVjYXMgRGUgTWFyY2hp IHdyb3RlOgo+IEZyb206IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwu Y29tPgo+IAo+IE9uIFRHTCB0aGUgYmxlbmRpbmcgb2YgYWxsIHRoZSBzdHJlYW1zIGhhdmUgbW92 ZWQgZnJvbSBEREkgdG8KPiB0cmFuc2NvZGVyLCBzbyBub3cgZXZlcnkgdHJhbnNjb2RlciB3b3Jr aW5nIG92ZXIgdGhlIHNhbWUgTVNUIHBvcnQgbXVzdAo+IHNlbmQgaXRzIHN0cmVhbSB0byBhIG1h c3RlciB0cmFuc2NvZGVyIGFuZCBtYXN0ZXIgd2lsbCBzZW5kIHRvIERESQo+IHJlc3BlY3Rpbmcg dGhlIHRpbWUgc2xvdHMuCj4gCj4gU28gaGVyZSBpdCBpcyBwaWNraW5nIHRoZSBsb3dlc3QgcGlw ZS90cmFuc2NvZGVyIGFzIGl0IHdpbGwgYmUKPiBlbmFibGVkIGZpcnN0IGFuZCBkaXNhYmxlZCBs YXN0Lgo+IEJTcGVjOiA1MDQ5Mwo+IEJTcGVjOiA0OTE5MAo+IAo+IHYyOiBNaXNzZWQgc2V0IG1z dF9tYXN0ZXJfdHJhbnMgdG8gVFJBTlNDT0RFUl9JTlZBTElEIHdoZW4gY29tcHV0aW5nIEhTVwo+ ICAgICBlbmNvZGVyIGNvbmZpZy4gSFNXIENSVCBodyBzdGF0ZSByZWFkb3V0IGNhbGxzCj4gICAg IGhzd19jcnRfZ2V0X2NvbmZpZygpLT5pbnRlbF9kZGlfZ2V0X2NvbmZpZygpIHRoYXQgd2lsbCBz ZXQKPiAgICAgbXN0X21hc3Rlcl90cmFucyB0byBUUkFOU0NPREVSX0lOVkFMSUQgY2F1c2luZyB0 aGUgbWlzbWF0Y2ggd2hlbgo+ICAgICB2ZXJpZnlpbmcgQ1JUQyBzdGF0ZSBhZnRlciBhIG1vZGVz ZXQuIChKb3PDqSkKPiAKPiB2MzogQWRkIFdBUk5fT04oKSByZXF1ZXN0ZWQgYnkgSmFuaS4KPiAg ICAgQWRkIEZJWE1FLiBGcm9tIEphbmk6IGRvdWJsZSBjaGVjayBQSVBFX0NPTkZfQ0hFQ0tfSSht c3RfbWFzdGVyX3RyYW5zKSAtIGl0J3MKPiAgICAgbm93IGNoZWNraW5nIGZvciBhbGwgcGxhdGZv cm1zIGFuZCBNU1QgYW5kIG5vbi1NU1QgYWxpa2UuCj4gICAgIFBlcmhhcHMgaW4gZ2VuZXJhbCBJ J2QgbGlrZSB0aGUgYXBwcm9hY2ggb2Ygb25seSBkb2luZyB0aGUgcmVhZG91dCB3aGVuCj4gICAg IGl0J3MgcmVsZXZhbnQsIGFuZCBvbmx5IGNoZWNraW5nIHRoZSB2YWx1ZSB3aGVuIGl0J3MgcmVs ZXZhbnQuCj4gCj4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20+Cj4gQ2M6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+Cj4g Q2M6IFJvZHJpZ28gVml2aSA8cm9kcmlnby52aXZpQGludGVsLmNvbT4KPiBTaWduZWQtb2ZmLWJ5 OiBKb3PDqSBSb2JlcnRvIGRlIFNvdXphIDxqb3NlLnNvdXphQGludGVsLmNvbT4KPiBTaWduZWQt b2ZmLWJ5OiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2FzLmRlbWFyY2hpQGludGVsLmNvbT4KPiBSZXZp ZXdlZC1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVs LmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jcnQuYyAg ICAgIHwgICAyICsKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYyAg ICAgIHwgIDE4ICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxh eS5jICB8ICAxNSArKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3Bs YXkuaCAgfCAgIDMgKwo+ICAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVz LmggICAgfCAgIDMgKwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwX21z dC5jICAgfCAxNTkgKysrKysrKysrKysrKysrKystCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZHBfbXN0LmggICB8ICAgMiArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmggICAgICAgICAgICAgICB8ICAgMyArCj4gIDggZmlsZXMgY2hhbmdlZCwgMjAyIGlu c2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2NydC5jCj4gaW5kZXggZTZlOGQ0YTgyMDQ0Li41MDMxMzUyMDBjYjMgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9jcnQuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY3J0LmMKPiBAQCAtNDE2LDYgKzQx Niw4IEBAIHN0YXRpYyBpbnQgaHN3X2NydF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiAgCS8qIEZESSBtdXN0IGFsd2F5cyBiZSAyLjcgR0h6ICovCj4gIAlw aXBlX2NvbmZpZy0+cG9ydF9jbG9jayA9IDEzNTAwMCAqIDI7Cj4gIAo+ICsJcGlwZV9jb25maWct Pm1zdF9tYXN0ZXJfdHJhbnMgPSBUUkFOU0NPREVSX0lOVkFMSUQ7Cj4gKwo+ICAJcmV0dXJuIDA7 Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCj4gaW5k ZXggOGViMmIzZWMwMWVkLi5mNGNiNmJkNzQ0MjEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGRpLmMKPiBAQCAtMTg0MCw2ICsxODQwLDEzIEBAIHZvaWQgaW50ZWxf ZGRpX2VuYWJsZV90cmFuc2NvZGVyX2Z1bmMoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCj4gIAl9IGVsc2UgaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0 ZSwgSU5URUxfT1VUUFVUX0RQX01TVCkpIHsKPiAgCQl0ZW1wIHw9IFRSQU5TX0RESV9NT0RFX1NF TEVDVF9EUF9NU1Q7Cj4gIAkJdGVtcCB8PSBERElfUE9SVF9XSURUSChjcnRjX3N0YXRlLT5sYW5l X2NvdW50KTsKPiArCj4gKwkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpIHsKPiArCQkJ ZW51bSB0cmFuc2NvZGVyIG1hc3RlciA9IGNydGNfc3RhdGUtPm1zdF9tYXN0ZXJfdHJhbnM7Cj4g Kwo+ICsJCQlXQVJOX09OKG1hc3RlciA9PSBUUkFOU0NPREVSX0lOVkFMSUQpOwo+ICsJCQl0ZW1w IHw9IFRSQU5TX0RESV9NU1RfVFJBTlNQT1JUX1NFTEVDVF9EUFRQKG1hc3Rlcik7Cj4gKwkJfQo+ ICAJfSBlbHNlIHsKPiAgCQl0ZW1wIHw9IFRSQU5TX0RESV9NT0RFX1NFTEVDVF9EUF9TU1Q7Cj4g IAkJdGVtcCB8PSBERElfUE9SVF9XSURUSChjcnRjX3N0YXRlLT5sYW5lX2NvdW50KTsKPiBAQCAt Mzg2MSw2ICszODY4LDggQEAgdm9pZCBpbnRlbF9kZGlfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciwKPiAgCQlicmVhazsKPiAgCX0KPiAgCj4gKwlwaXBlX2NvbmZpZy0+ bXN0X21hc3Rlcl90cmFucyA9IFRSQU5TQ09ERVJfSU5WQUxJRDsKPiArCj4gIAlzd2l0Y2ggKHRl bXAgJiBUUkFOU19ERElfTU9ERV9TRUxFQ1RfTUFTSykgewo+ICAJY2FzZSBUUkFOU19ERElfTU9E RV9TRUxFQ1RfSERNSToKPiAgCQlwaXBlX2NvbmZpZy0+aGFzX2hkbWlfc2luayA9IHRydWU7Cj4g QEAgLTM4OTYsNiArMzkwNSwxMyBAQCB2b2lkIGludGVsX2RkaV9nZXRfY29uZmlnKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCXBpcGVfY29uZmlnLT5vdXRwdXRfdHlwZXMgfD0g QklUKElOVEVMX09VVFBVVF9EUF9NU1QpOwo+ICAJCXBpcGVfY29uZmlnLT5sYW5lX2NvdW50ID0K PiAgCQkJKCh0ZW1wICYgRERJX1BPUlRfV0lEVEhfTUFTSykgPj4gRERJX1BPUlRfV0lEVEhfU0hJ RlQpICsgMTsKPiArCj4gKwkJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpIHsKPiArCQkJ dGVtcCA9IHRlbXAgJiBUUkFOU19ERElfTVNUX1RSQU5TUE9SVF9TRUxFQ1RfTUFTSzsKPiArCQkJ dGVtcCA9IHRlbXAgPj4gVFJBTlNfRERJX01TVF9UUkFOU1BPUlRfU0VMRUNUX1NISUZUOwo+ICsJ CQlwaXBlX2NvbmZpZy0+bXN0X21hc3Rlcl90cmFucyA9IHRlbXA7Cj4gKwkJfQo+ICsKPiAgCQlp bnRlbF9kcF9nZXRfbV9uKGludGVsX2NydGMsIHBpcGVfY29uZmlnKTsKPiAgCQlicmVhazsKPiAg CWRlZmF1bHQ6Cj4gQEAgLTM5OTgsNiArNDAxNCw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfZGRpX2Nv bXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAKPiAgCWludGVs X2RkaV9jb21wdXRlX21pbl92b2x0YWdlX2xldmVsKGRldl9wcml2LCBwaXBlX2NvbmZpZyk7Cj4g IAo+ICsJcGlwZV9jb25maWctPm1zdF9tYXN0ZXJfdHJhbnMgPSBUUkFOU0NPREVSX0lOVkFMSUQ7 Cj4gKwo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBkZGI4NDM2ZTIyMDguLjEwOWQ0ZmQ5NjFjNiAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXku Ywo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCj4g QEAgLTQ3LDYgKzQ3LDcgQEAKPiAgI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfY3J0LmgiCj4gICNp bmNsdWRlICJkaXNwbGF5L2ludGVsX2RkaS5oIgo+ICAjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9k cC5oIgo+ICsjaW5jbHVkZSAiZGlzcGxheS9pbnRlbF9kcF9tc3QuaCIKPiAgI2luY2x1ZGUgImRp c3BsYXkvaW50ZWxfZHNpLmgiCj4gICNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2R2by5oIgo+ICAj aW5jbHVkZSAiZGlzcGxheS9pbnRlbF9nbWJ1cy5oIgo+IEBAIC0xMjEzOCw2ICsxMjEzOSwxNCBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kdW1wX3BpcGVfY29uZmlnKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAgCj4gIAlpbnRlbF9kcGxsX2R1bXBfaHdfc3RhdGUo ZGV2X3ByaXYsICZwaXBlX2NvbmZpZy0+ZHBsbF9od19zdGF0ZSk7Cj4gIAo+ICsJaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPj0gMTIgJiYKPiArCSAgICBpbnRlbF9jcnRjX2hhc190eXBlKHBpcGVf Y29uZmlnLCBJTlRFTF9PVVRQVVRfRFBfTVNUKSkgewo+ICsJCWVudW0gdHJhbnNjb2RlciBtYXN0 ZXIgPSBwaXBlX2NvbmZpZy0+bXN0X21hc3Rlcl90cmFuczsKPiArCj4gKwkJRFJNX0RFQlVHX0tN UygibWFzdGVyIG1zdCBjcHVfdHJhbnNjb2RlcjogJXNcbiIsCj4gKwkJCSAgICAgIHRyYW5zY29k ZXJfbmFtZShtYXN0ZXIpKTsKPiArCX0KPiArCj4gIGR1bXBfcGxhbmVzOgo+ICAJaWYgKCFzdGF0 ZSkKPiAgCQlyZXR1cm47Cj4gQEAgLTEyODIxLDYgKzEyODMwLDggQEAgaW50ZWxfcGlwZV9jb25m aWdfY29tcGFyZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3VycmVudF9jb25maWcs Cj4gIAlQSVBFX0NPTkZfQ0hFQ0tfSU5GT0ZSQU1FKGhkbWkpOwo+ICAJUElQRV9DT05GX0NIRUNL X0lORk9GUkFNRShkcm0pOwo+ICAKPiArCVBJUEVfQ09ORl9DSEVDS19JKG1zdF9tYXN0ZXJfdHJh bnMpOwo+ICsKPiAgI3VuZGVmIFBJUEVfQ09ORl9DSEVDS19YCj4gICN1bmRlZiBQSVBFX0NPTkZf Q0hFQ0tfSQo+ICAjdW5kZWYgUElQRV9DT05GX0NIRUNLX0JPT0wKPiBAQCAtMTM1OTcsNiArMTM2 MDgsMTAgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY2hlY2soc3RydWN0IGRybV9kZXZpY2Ug KmRldiwKPiAgCWludCByZXQsIGk7Cj4gIAlib29sIGFueV9tcyA9IHN0YXRlLT5jZGNsay5mb3Jj ZV9taW5fY2RjbGtfY2hhbmdlZDsKPiAgCj4gKwlyZXQgPSBpbnRlbF9kcF9tc3RfYXRvbWljX2Fk ZF9hZmZlY3RlZF9jcnRjcyhzdGF0ZSk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7CgpU aGlzIGZlZWxzIHRvbyBlYXJseS4gSSB0aGluayBpdCBzaG91bGQgYmUgYWZ0ZXIKZHJtX2F0b21p Y19oZWxwZXJfY2hlY2tfbW9kZXNldCgpIGF0IGxlYXN0LgoKPiArCj4gIAkvKiBDYXRjaCBJOTE1 X01PREVfRkxBR19JTkhFUklURUQgKi8KPiAgCWZvcl9lYWNoX29sZG5ld19pbnRlbF9jcnRjX2lu X3N0YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwKPiAgCQkJCQkgICAgbmV3X2NydGNf c3RhdGUsIGkpIHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3Bs YXkuaAo+IGluZGV4IGI2M2ZiN2E0NTk5ZS4uMjgyZThkOGYxY2MxIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5oCj4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmgKPiBAQCAtOTEsNiArOTEsOCBA QCBlbnVtIHBpcGUgewo+ICAjZGVmaW5lIHBpcGVfbmFtZShwKSAoKHApICsgJ0EnKQo+ICAKPiAg ZW51bSB0cmFuc2NvZGVyIHsKPiArCVRSQU5TQ09ERVJfSU5WQUxJRCA9IC0xLAo+ICsKPiAgCS8q Cj4gIAkgKiBUaGUgZm9sbG93aW5nIHRyYW5zY29kZXJzIGhhdmUgYSAxOjEgdHJhbnNjb2RlciAt PiBwaXBlIG1hcHBpbmcsCj4gIAkgKiBrZWVwIHRoZWlyIHZhbHVlcyBmaXhlZDogdGhlIGNvZGUg YXNzdW1lcyB0aGF0IFRSQU5TQ09ERVJfQT0wLCB0aGUKPiBAQCAtMTMyLDYgKzEzNCw3IEBAIHN0 YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqdHJhbnNjb2Rlcl9uYW1lKGVudW0gdHJhbnNjb2RlciB0 cmFuc2NvZGVyKQo+ICAJCXJldHVybiAiRFNJIEEiOwo+ICAJY2FzZSBUUkFOU0NPREVSX0RTSV9D Ogo+ICAJCXJldHVybiAiRFNJIEMiOwo+ICsJY2FzZSBUUkFOU0NPREVSX0lOVkFMSUQ6Cj4gIAlk ZWZhdWx0Ogo+ICAJCXJldHVybiAiPGludmFsaWQ+IjsKPiAgCX0KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaAo+IGluZGV4IDQ0OWFi YWVhNjE5Zi4uZDg0YTY2NDU5ZGFmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKPiBAQCAtOTg0LDYgKzk4NCw5IEBAIHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKPiAgCj4gIAkvKiBGb3J3YXJkIEVycm9yIGNvcnJlY3Rp b24gU3RhdGUgKi8KPiAgCWJvb2wgZmVjX2VuYWJsZTsKPiArCj4gKwkvKiBNYXN0ZXIgdHJhbnNj b2RlciBmb3IgYWxsIHN0cmVhbXMsIG9ubHkgdXNlZCBvbiBUR0wrICovCj4gKwllbnVtIHRyYW5z Y29kZXIgbXN0X21hc3Rlcl90cmFuczsKPiAgfTsKPiAgCj4gIHN0cnVjdCBpbnRlbF9jcnRjIHsK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3Qu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmMKPiBpbmRleCAy YzVhYzNkZDY0N2YuLjgwMDJkY2E5YjczNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kcF9tc3QuYwo+IEBAIC04Nyw2ICs4Nyw1MCBAQCBzdGF0aWMgaW50IGlu dGVsX2RwX21zdF9jb21wdXRlX2xpbmtfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4gKy8qCj4gKyAqIEl0ZXJhdGUgb3ZlciBhbGwg dGhlIENSVENzIGFuZCByZXR1cm4gdGhlIHRyYW5zY29kZXIgb2YgdGhlIGxvd2VzdCBDUlRDIHRo YXQKPiArICogc2hhcmUgdGhlIHNhbWUgTVNUIGNvbm5lY3Rvci4KPiArICovCj4gK3N0YXRpYyBl bnVtIHRyYW5zY29kZXIKPiArbXN0X2NvbXB1dGVfbWFzdGVyX3RyYW5zKHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZSwKPiArCQkJIHN0cnVjdCBkcm1fY29ubmVjdG9yICptc3RfY29ubikK PiArewo+ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfbXN0X2Nvbm4gPSB0b19pbnRl bF9jb25uZWN0b3IobXN0X2Nvbm4pOwo+ICsJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50 ZWxfc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpOwo+ICsJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+ZGV2KTsKPiArCXN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICppbnRlbF9jcnRjX3N0YXRlOwo+ICsJc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGM7CgpQbGVhc2Ugc3dpdGNoIHRvIGludGVsXyB0eXBlcyBmdWxseSBhbmQgZHJv cCB0aGUgaW50ZWxfIHByZWZpeCAgZnJvbSB0aGUKdmFyaWFibGVzLgoKPiArCWludCBpOwo+ICsK PiArCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTIpCj4gKwkJcmV0dXJuIFRSQU5TQ09ERVJf SU5WQUxJRDsKPiArCj4gKwkvKiBJdGVyYXRlIGZyb20gdGhlIGxvd2VzdCB0byB0aGUgaGlnaGVz dCBwaXBlICovCj4gKwlmb3JfZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShpbnRlbF9zdGF0 ZSwgaW50ZWxfY3J0YywgaW50ZWxfY3J0Y19zdGF0ZSwgaSkgewo+ICsJCXN0cnVjdCBpbnRlbF9k aWdpdGFsX2Nvbm5lY3Rvcl9zdGF0ZSAqaW50ZWxfY29ubl9zdGF0ZTsKPiArCQlzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICppbnRlbF9jb25uOwo+ICsJCWludCBqOwo+ICsKPiArCQlpZiAoIWludGVs X2NydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJZm9yX2Vh Y2hfbmV3X2ludGVsX2Nvbm5lY3Rvcl9pbl9zdGF0ZShpbnRlbF9zdGF0ZSwgaW50ZWxfY29ubiwK PiArCQkJCQkJICAgICAgaW50ZWxfY29ubl9zdGF0ZSwgaikgewo+ICsJCQkvKiBPbmx5IGNhcmUg YWJvdXQgY29ubmVjdG9ycyBvZiB0aGlzIENSVEMgKi8KPiArCQkJaWYgKGludGVsX2Nvbm5fc3Rh dGUtPmJhc2UuY3J0YyAhPQo+ICsJCQkgICAgaW50ZWxfY3J0Y19zdGF0ZS0+YmFzZS5jcnRjKQo+ ICsJCQkJY29udGludWU7Cj4gKwo+ICsJCQlpZiAoaW50ZWxfY29ubi0+bXN0X3BvcnQgIT0gaW50 ZWxfbXN0X2Nvbm4tPm1zdF9wb3J0KQo+ICsJCQkJY29udGludWU7Cj4gKwo+ICsJCQlyZXR1cm4g aW50ZWxfY3J0Y19zdGF0ZS0+Y3B1X3RyYW5zY29kZXI7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCXJl dHVybiBUUkFOU0NPREVSX0lOVkFMSUQ7Cj4gK30KPiArCj4gIHN0YXRpYyBpbnQgaW50ZWxfZHBf bXN0X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkJ ICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKPiAgCQkJCSAgICAg ICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSkKPiBAQCAtOTQsMTQgKzEz OCwxNSBAQCBzdGF0aWMgaW50IGludGVsX2RwX21zdF9jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IGludGVsX2RwX21zdF9l bmNvZGVyICppbnRlbF9tc3QgPSBlbmNfdG9fbXN0KCZlbmNvZGVyLT5iYXNlKTsKPiAgCXN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHAgPSAmaW50ZWxfbXN0LT5wcmltYXJ5LT5kcDsKPiAtCXN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9Cj4gLQkJdG9faW50ZWxfY29ubmVjdG9yKGNv bm5fc3RhdGUtPmNvbm5lY3Rvcik7Cj4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y ID0gY29ubl9zdGF0ZS0+Y29ubmVjdG9yOwo+ICsJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50 ZWxfY29ubmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gIAlzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9jb25uZWN0b3Jfc3RhdGUgKmludGVsX2Nvbm5fc3RhdGUgPQo+ICAJCXRv X2ludGVsX2RpZ2l0YWxfY29ubmVjdG9yX3N0YXRlKGNvbm5fc3RhdGUpOwo+ICAJY29uc3Qgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQo+ICAJCSZwaXBlX2NvbmZpZy0+ YmFzZS5hZGp1c3RlZF9tb2RlOwo+IC0Jdm9pZCAqcG9ydCA9IGNvbm5lY3Rvci0+cG9ydDsKPiAr CXZvaWQgKnBvcnQgPSBpbnRlbF9jb25uZWN0b3ItPnBvcnQ7Cj4gIAlzdHJ1Y3QgbGlua19jb25m aWdfbGltaXRzIGxpbWl0czsKPiArCWVudW0gdHJhbnNjb2RlciBtYXN0ZXI7Cj4gIAlpbnQgcmV0 Owo+ICAKPiAgCWlmIChhZGp1c3RlZF9tb2RlLT5mbGFncyAmIERSTV9NT0RFX0ZMQUdfREJMU0NB TikKPiBAQCAtMTQ2LDYgKzE5MSw1MSBAQCBzdGF0aWMgaW50IGludGVsX2RwX21zdF9jb21wdXRl X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCj4gIAlpbnRlbF9kZGlf Y29tcHV0ZV9taW5fdm9sdGFnZV9sZXZlbChkZXZfcHJpdiwgcGlwZV9jb25maWcpOwo+ICAKPiAr CW1hc3RlciA9IG1zdF9jb21wdXRlX21hc3Rlcl90cmFucyhjb25uX3N0YXRlLT5zdGF0ZSwgY29u bmVjdG9yKTsKPiArCXBpcGVfY29uZmlnLT5tc3RfbWFzdGVyX3RyYW5zID0gbWFzdGVyOwo+ICsK PiArCXJldHVybiAwOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50Cj4gK2ludGVsX2RwX21zdF9tYXN0 ZXJfdHJhbnNfY2hlY2soc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm4sCj4gKwkJCQlzdHJ1Y3Qg ZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X2Nvbm5fc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubi0+ZGV2KTsKPiArCXN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IG5ld19jb25uX3N0YXRlLT5zdGF0ZTsKPiArCXN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZSA9Cj4gKwkJZHJtX2F0b21pY19n ZXRfb2xkX2Nvbm5lY3Rvcl9zdGF0ZShzdGF0ZSwgY29ubik7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMg Km5ld19jcnRjID0gbmV3X2Nvbm5fc3RhdGUtPmNydGM7Cj4gKwlzdHJ1Y3QgZHJtX2NydGMgKm9s ZF9jcnRjID0gb2xkX2Nvbm5fc3RhdGUtPmNydGM7Cj4gKwllbnVtIHRyYW5zY29kZXIgb2xkX21h c3Rlcl90cmFucyA9IFRSQU5TQ09ERVJfSU5WQUxJRDsKPiArCWVudW0gdHJhbnNjb2RlciBuZXdf bWFzdGVyX3RyYW5zID0gVFJBTlNDT0RFUl9JTlZBTElEOwo+ICsJc3RydWN0IGRybV9jcnRjX3N0 YXRlICpuZXdfY3J0Y19zdGF0ZSwgKm9sZF9jcnRjX3N0YXRlOwo+ICsKPiArCWlmIChJTlRFTF9H RU4oZGV2X3ByaXYpIDwgMTIpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJaWYgKG9sZF9jcnRjKSB7 Cj4gKwkJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmludGVsX2NydGNfc3RhdGU7CgpTYW1lIHN0 b3J5IHdpdGggdHlwZXMgYW5kIHZhcmlhYmxlIG5hbWluZy4KCj4gKwo+ICsJCW9sZF9jcnRjX3N0 YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIG9sZF9jcnRjKTsKPiAr CQlpbnRlbF9jcnRjX3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShvbGRfY3J0Y19zdGF0ZSk7 Cj4gKwkJb2xkX21hc3Rlcl90cmFucyA9IGludGVsX2NydGNfc3RhdGUtPm1zdF9tYXN0ZXJfdHJh bnM7Cj4gKwl9Cj4gKwo+ICsJaWYgKG5ld19jcnRjKSB7Cj4gKwkJc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmludGVsX2NydGNfc3RhdGU7Cj4gKwo+ICsJCW5ld19jcnRjX3N0YXRlID0gZHJtX2F0 b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUsIG5ld19jcnRjKTsKPiArCQlpbnRlbF9jcnRj X3N0YXRlID0gdG9faW50ZWxfY3J0Y19zdGF0ZShuZXdfY3J0Y19zdGF0ZSk7Cj4gKwkJbmV3X21h c3Rlcl90cmFucyA9IG1zdF9jb21wdXRlX21hc3Rlcl90cmFucyhzdGF0ZSwgY29ubik7Cj4gKwl9 Cj4gKwo+ICsJaWYgKG9sZF9jcnRjICYmIG9sZF9tYXN0ZXJfdHJhbnMgIT0gbmV3X21hc3Rlcl90 cmFucykKPiArCQlvbGRfY3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkID0gdHJ1ZTsKPiArCj4gKwlp ZiAobmV3X2NydGMgJiYgb2xkX21hc3Rlcl90cmFucyAhPSBuZXdfbWFzdGVyX3RyYW5zKQo+ICsJ CW5ld19jcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQgPSB0cnVlOwo+ICsKPiAgCXJldHVybiAwOwo+ ICB9Cj4gIAo+IEBAIC0xNjgsNiArMjU4LDEwIEBAIGludGVsX2RwX21zdF9hdG9taWNfY2hlY2so c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCWlmIChyZXQpCj4gIAkJcmV0dXJu IHJldDsKPiAgCj4gKwlyZXQgPSBpbnRlbF9kcF9tc3RfbWFzdGVyX3RyYW5zX2NoZWNrKGNvbm5l Y3RvciwgbmV3X2Nvbm5fc3RhdGUpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsK PiAgCWlmICghb2xkX2Nvbm5fc3RhdGUtPmNydGMpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+IEBAIC02 NzQsMyArNzY4LDYyIEBAIGludGVsX2RwX21zdF9lbmNvZGVyX2NsZWFudXAoc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQpCj4gIAlkcm1fZHBfbXN0X3RvcG9sb2d5X21n cl9kZXN0cm95KCZpbnRlbF9kcC0+bXN0X21ncik7Cj4gIAkvKiBlbmNvZGVycyB3aWxsIGdldCBr aWxsZWQgYnkgbm9ybWFsIGNsZWFudXAgKi8KPiAgfQo+ICsKPiArLyoqCj4gKyAqIGludGVsX2Rw X21zdF9hdG9taWNfYWRkX2FmZmVjdGVkX2NydGNzIC0gQWRkIGFsbCBDUlRDcyB0aGF0IHNoYXJl IHRoZSBNU1QKPiArICogc3RyZWFtIHdpdGggdGhlIENSVENzIGluIHRoZSBjdXJyZW50IGF0b21p YyBzdGF0ZS4KPiArICogQHN0YXRlOiBzdGF0ZSB0byBhZGQgQ1JUQ3MKPiArICoKPiArICogSXQg aXMgbmVlZGVkIGFkZCB0aGUgQ1JUQ3MgdHJpZ2dlciBhIGNhbGwgdG8gYXRvbWljX2NoZWNrKCkg dG8KPiArICogZXZlcnkgY29ubmVjdG9yIGF0dGFjaGVkIHRvIHRoZSBDUlRDIGluIGNhc2UgYSBu ZXcgbWFzdGVyIHRyYW5zY29kZXIgd2lsbAo+ICsgKiBiZSBuZWVkZWQuCj4gKyAqLwo+ICtpbnQg aW50ZWxfZHBfbXN0X2F0b21pY19hZGRfYWZmZWN0ZWRfY3J0Y3Moc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSAqc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX2Nv bm5lY3Rvcl9zdGF0ZSAqaW50ZWxfY29ubl9zdGF0ZTsKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBzdGF0ZS0+YmFzZS5kZXY7Cj4gKwlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9j b25uOwo+ICsJaW50IGk7Cj4gKwo+ICsJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCAxMikKPiAr CQlyZXR1cm4gMDsKPiArCj4gKwlmb3JfZWFjaF9uZXdfaW50ZWxfY29ubmVjdG9yX2luX3N0YXRl KHN0YXRlLCBpbnRlbF9jb25uLCBpbnRlbF9jb25uX3N0YXRlLCBpKSB7Cj4gKwkJc3RydWN0IGRy bV9jb25uZWN0b3JfbGlzdF9pdGVyIGNvbm5fbGlzdF9pdGVyOwo+ICsJCXN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uX2l0ZXI7Cj4gKwo+ICsJCWlmICghaW50ZWxfY29ubi0+bXN0X3BvcnQpCj4g KwkJCWNvbnRpbnVlOwoKSSB0aGluayB3ZSBzaG91bGQgYmUgYWJsZSB0byBza2lwIHRoaXMgdW5s ZXNzIGEgbW9kZXNldCBpcyByZXF1aXJlZC4KCj4gKwo+ICsJCWRybV9jb25uZWN0b3JfbGlzdF9p dGVyX2JlZ2luKGRldiwgJmNvbm5fbGlzdF9pdGVyKTsKPiArCQlkcm1fZm9yX2VhY2hfY29ubmVj dG9yX2l0ZXIoY29ubl9pdGVyLCAmY29ubl9saXN0X2l0ZXIpIHsKPiArCQkJc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKmNvbm5faXRlcl9zdGF0ZTsKPiArCQkJc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqaW50ZWxfY29ubl9pdGVyOwo+ICsJCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNf c3RhdGU7Cj4gKwo+ICsJCQlpbnRlbF9jb25uX2l0ZXIgPSB0b19pbnRlbF9jb25uZWN0b3IoY29u bl9pdGVyKTsKPiArCj4gKwkJCWlmIChpbnRlbF9jb25uX2l0ZXItPm1zdF9wb3J0ICE9IGludGVs X2Nvbm4tPm1zdF9wb3J0KQo+ICsJCQkJY29udGludWU7Cj4gKwo+ICsJCQljb25uX2l0ZXJfc3Rh dGUgPSBkcm1fYXRvbWljX2dldF9jb25uZWN0b3Jfc3RhdGUoJnN0YXRlLT5iYXNlLCBjb25uX2l0 ZXIpOwo+ICsJCQlpZiAoSVNfRVJSKGNvbm5faXRlcl9zdGF0ZSkpIHsKPiArCQkJCWRybV9jb25u ZWN0b3JfbGlzdF9pdGVyX2VuZCgmY29ubl9saXN0X2l0ZXIpOwo+ICsJCQkJcmV0dXJuIFBUUl9F UlIoY29ubl9pdGVyX3N0YXRlKTsKPiArCQkJfQo+ICsJCQlpZiAoIWNvbm5faXRlcl9zdGF0ZS0+ Y3J0YykKPiArCQkJCWNvbnRpbnVlOwo+ICsKPiArCQkJY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNf Z2V0X2NydGNfc3RhdGUoJnN0YXRlLT5iYXNlLAo+ICsJCQkJCQkJICAgICAgIGNvbm5faXRlcl9z dGF0ZS0+Y3J0Yyk7Cj4gKwkJCWlmIChJU19FUlIoY3J0Y19zdGF0ZSkpIHsKPiArCQkJCWRybV9j b25uZWN0b3JfbGlzdF9pdGVyX2VuZCgmY29ubl9saXN0X2l0ZXIpOwo+ICsJCQkJcmV0dXJuIFBU Ul9FUlIoY3J0Y19zdGF0ZSk7Cj4gKwkJCX0KPiArCQl9Cj4gKwkJZHJtX2Nvbm5lY3Rvcl9saXN0 X2l0ZXJfZW5kKCZjb25uX2xpc3RfaXRlcik7Cj4gKwl9Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcF9tc3Qu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBfbXN0LmgKPiBpbmRleCBm NjYwYWQ4MGRiMDQuLjE3MzU5OGFhODFkMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RwX21zdC5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kcF9tc3QuaAo+IEBAIC02LDEwICs2LDEyIEBACj4gICNpZm5kZWYgX19J TlRFTF9EUF9NU1RfSF9fCj4gICNkZWZpbmUgX19JTlRFTF9EUF9NU1RfSF9fCj4gIAo+ICtzdHJ1 Y3QgaW50ZWxfYXRvbWljX3N0YXRlOwo+ICBzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0Owo+ICAK PiAgaW50IGludGVsX2RwX21zdF9lbmNvZGVyX2luaXQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqaW50ZWxfZGlnX3BvcnQsIGludCBjb25uX2lkKTsKPiAgdm9pZCBpbnRlbF9kcF9tc3RfZW5j b2Rlcl9jbGVhbnVwKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0KTsK PiAraW50IGludGVsX2RwX21zdF9hdG9taWNfYWRkX2FmZmVjdGVkX2NydGNzKHN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPiAgaW50IGludGVsX2RwX21zdF9lbmNvZGVyX2FjdGl2 ZV9saW5rcyhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCk7Cj4gIAo+ ICAjZW5kaWYgLyogX19JTlRFTF9EUF9NU1RfSF9fICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5o Cj4gaW5kZXggM2RlMDI2ODNkODU2Li5iZmY5ZWUxOTE4MzIgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfcmVnLmgKPiBAQCAtOTQyNCw2ICs5NDI0LDkgQEAgZW51bSBza2xfcG93ZXJfZ2F0ZSB7Cj4g ICNkZWZpbmUgIFRSQU5TX0RESV9FRFBfSU5QVVRfQV9PTk9GRgkoNCA8PCAxMikKPiAgI2RlZmlu ZSAgVFJBTlNfRERJX0VEUF9JTlBVVF9CX09OT0ZGCSg1IDw8IDEyKQo+ICAjZGVmaW5lICBUUkFO U19ERElfRURQX0lOUFVUX0NfT05PRkYJKDYgPDwgMTIpCj4gKyNkZWZpbmUgIFRSQU5TX0RESV9N U1RfVFJBTlNQT1JUX1NFTEVDVF9TSElGVAkJMTAgLyogVEdMKyAqLwo+ICsjZGVmaW5lICBUUkFO U19ERElfTVNUX1RSQU5TUE9SVF9TRUxFQ1RfTUFTSwkJKDB4MyA8PCAxMCkKPiArI2RlZmluZSAg VFJBTlNfRERJX01TVF9UUkFOU1BPUlRfU0VMRUNUX0RQVFAodHJhbnMpCSgodHJhbnMpIDw8IDEw KQo+ICAjZGVmaW5lICBUUkFOU19ERElfSERDUF9TSUdOQUxMSU5HCSgxIDw8IDkpCj4gICNkZWZp bmUgIFRSQU5TX0RESV9EUF9WQ19QQVlMT0FEX0FMTE9DCSgxIDw8IDgpCj4gICNkZWZpbmUgIFRS QU5TX0RESV9IRE1JX1NDUkFNQkxFUl9DVFNfRU5BQkxFICgxIDw8IDcpCj4gLS0gCj4gMi4yMy4w CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeA==