From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 20/23] drm/i915: Keep the TypeC port mode fixed when the port is active Date: Wed, 19 Jun 2019 15:58:46 +0300 Message-ID: <20190619125846.GY5942@intel.com> References: <20190604145826.16424-1-imre.deak@intel.com> <20190604145826.16424-21-imre.deak@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 463666E3C1 for ; Wed, 19 Jun 2019 12:58:50 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190604145826.16424-21-imre.deak@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Imre Deak Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBKdW4gMDQsIDIwMTkgYXQgMDU6NTg6MjNQTSArMDMwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IFRoZSBUeXBlQyBwb3J0IG1vZGUgbmVlZHMgdG8gc3RheSBmaXhlZCB3aGVuZXZlciB0aGUg cG9ydCBpcyBhY3RpdmUuIERvCj4gdGhhdCBieSBpbnRyb2R1Y2luZyBhIHRjX2xpbmtfcmVmY291 bnQgdG8gYWNjb3VudCBmb3IgYWN0aXZlIHBvcnRzLAo+IGF2b2lkaW5nIGNoYW5naW5nIHRoZSBw b3J0IG1vZGUgaWYgYSByZWZlcmVuY2UgaXMgaGVsZC4KPiAKPiBEdXJpbmcgdGhlIG1vZGVzZXQg Y29tbWl0IHBoYXNlIHdlIGFsc28gaGF2ZSB0byByZXNldCB0aGUgcG9ydCBtb2RlIGFuZAo+IHVw ZGF0ZSB0aGUgYWN0aXZlIFBMTCByZWZsZWN0aW5nIHRoZSBuZXcgcG9ydCBtb2RlLiBXZSBjYW4g ZG8gdGhpcyBvbmx5Cj4gb25jZSB0aGUgcG9ydCBhbmQgaXRzIG9sZCBQTEwgaGFzIGJlZW4gYWxy ZWFkeSBkaXNhYmxlZC4gQWRkIHRoZSBuZXcKPiBjb25uZWN0b3JfdXBkYXRlX3ByZXBhcmUvY29t cGxldGUgaG9va3MgdGhhdCBhcmUgY2FsbGVkIGFyb3VuZCB0aGUgd2hvbGUKPiBlbmFibGluZyBz ZXF1ZW5jZS4gVGhlIFR5cGVDIHNwZWNpZmljIGhvb2tzIG9mIHRoZXNlIHdpbGwgcmVzZXQgdGhl IHBvcnQKPiBtb2RlLCB1cGRhdGUgdGhlIGFjdGl2ZSBQTEwgaWYgdGhlIHBvcnQgd2lsbCBiZSBh Y3RpdmUgYW5kIGVuc3VyZSB0aGF0Cj4gdGhlIHBvcnQgbW9kZSB3aWxsIHN0YXkgZml4ZWQgZm9y IHRoZSBkdXJhdGlvbiBvZiB0aGUgd2hvbGUgZW5hYmxpbmcKPiBzZXF1ZW5jZSBieSBob2xkaW5n IGEgdGNfbGlua19yZWZjb3VudC4KPiAKPiBEdXJpbmcgdGhlIHBvcnQgZW5hYmxpbmcsIHRoZSBw cmVfcGxsX2VuYWJsZS9wb3N0X3BsbF9kaXNhYmxlIGhvb2tzIHdpbGwKPiB0YWtlL3JlbGVhc2Ug YSB0Y19saW5rX3JlZmNvdW50IHRvIGVuc3VyZSB0aGUgcG9ydCBtb2RlIHN0YXlzIGZpeGVkCj4g d2hpbGUgdGhlIHBvcnQgaXMgYWN0aXZlLgo+IAo+IENoYW5naW5nIHRoZSBwb3J0IG1vZGUgc2hv dWxkIGFsc28gYmUgYXZvaWRlZCBkdXJpbmcgY29ubmVjdG9yIGRldGVjdGlvbgo+IGFuZCBBVVgg dHJhbnNmZXJzIGlmIHRoZSBwb3J0IGlzIGFjdGl2ZSwgd2UnbGwgZG8gdGhhdCBieSBjaGVja2lu ZyB0aGUKPiBwb3J0J3MgdGNfbGlua19yZWZjb3VudC4KPiAKPiBXaGVuIHJlc2V0dGluZyB0aGUg cG9ydCBtb2RlIHdlIGFsc28gaGF2ZSB0byB0YWtlIGludG8gYWNjb3VudCB0aGUKPiBtYXhpbXVt IGxhbmVzIHByb3ZpZGVkIGJ5IHRoZSBGSUEuIEl0J3MgZ3VhcmFudGVlZCB0byBiZSA0IGluIFRC VC1hbHQKPiBhbmQgbGVnYWN5IG1vZGVzLCBidXQgdGhlcmUgbWF5IGJlIGxlc3MgbGFuZXMgYXZh aWxhYmxlIGluIERQLWFsdCBtb2RlLAo+IGluIHdoaWNoIGNhc2Ugd2UgaGF2ZSB0byBmYWxsIGJh Y2sgdG8gVEJULWFsdCBtb2RlLgo+IAo+IFdoaWxlIGF0IGl0IGFsc28gdXBkYXRlIGljbF90Y19w aHlfY29ubmVjdCgpJ3MgY29kZSBjb21tZW50LCByZWZsZWN0aW5nCj4gdGhlIGN1cnJlbnQgd2F5 IG9mIHN3aXRjaGluZyB0aGUgcG9ydCBtb2RlLgo+IAo+IENjOiBWaWxsZSBTeXJqw6Rsw6QgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IENjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwu dmV0dGVyQGZmd2xsLmNoPgo+IENjOiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9y c3RAbGludXguaW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFr QGludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgICAg ICB8IDQ2ICsrKysrKysrKysrLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmgg ICAgICB8ICA3ICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyAgfCA5 MCArKysrKysrKysrKysrKysrKysrKysrKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcC5jICAgICAgIHwgIDcgKysKPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0 LmMgICB8ICA2ICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMgfCAy OCArKysrKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5oIHwgIDMg Kwo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgIHwgIDkgKysrCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2hkbWkuYyAgICAgfCAgNyArKwo+ICBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF90Yy5jICAgICAgIHwgOTMgKysrKysrKysrKysrKysrKysrKystLS0t LS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3RjLmggICAgICAgfCAgMyArCj4gIDEx IGZpbGVzIGNoYW5nZWQsIDI2OSBpbnNlcnRpb25zKCspLCAzMCBkZWxldGlvbnMoLSkKPiAKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+IGluZGV4IGFkMmY3YmIyZjUwYi4uMTM4OTUwOTQxMjQ2 IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiBAQCAtMzYxMCw2ICszNjEwLDM4IEBA IHN0YXRpYyB2b2lkIGludGVsX2RkaV9zZXRfZmlhX2xhbmVfY291bnQoc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCj4gIAlJOTE1X1dSSVRFKFBPUlRfVFhfREZMRVhEUE1MRTEsIHZhbCk7 Cj4gIH0KPiAgCj4gK3ZvaWQKPiAraW50ZWxfZGRpX2Nvbm5lY3Rvcl91cGRhdGVfcHJlcGFyZShz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKPiArCQkJCSAgIHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvcikKPiArewo+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUg KmNvbm5fc3RhdGUgPQo+ICsJCWRybV9hdG9taWNfZ2V0X25ld19jb25uZWN0b3Jfc3RhdGUoJnN0 YXRlLT5iYXNlLAo+ICsJCQkJCQkgICAmY29ubmVjdG9yLT5iYXNlKTsKPiArCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gY29ubl9zdGF0ZS0+Y3J0YyA/Cj4gKwkJdG9faW50ZWxfY3J0Yyhjb25u X3N0YXRlLT5jcnRjKSA6IE5VTEw7Cj4gKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSA9Cj4gKwkJY3J0YyA/IGludGVsX2F0b21pY19nZXRfbmV3X2NydGNfc3RhdGUoc3RhdGUs IGNydGMpIDogTlVMTDsKPiArCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKnByaW1hcnlfcG9y dCA9Cj4gKwkJaW50ZWxfY29ubmVjdG9yX3ByaW1hcnlfZGlnaXRhbF9wb3J0KGNvbm5lY3Rvcik7 Cj4gKwlpbnQgcmVxdWlyZWRfbGFuZXMgPSBjcnRjX3N0YXRlID8gY3J0Y19zdGF0ZS0+bGFuZV9j b3VudCA6IDE7Cj4gKwo+ICsJV0FSTl9PTihjcnRjICYmIGNydGMtPmFjdGl2ZSk7Cj4gKwo+ICsJ aW50ZWxfdGNfcG9ydF9nZXRfbGluayhwcmltYXJ5X3BvcnQsIHJlcXVpcmVkX2xhbmVzKTsKPiAr CWlmIChjcnRjX3N0YXRlICYmIGNydGNfc3RhdGUtPmJhc2UuYWN0aXZlKQo+ICsJCWludGVsX3Vw ZGF0ZV9hY3RpdmVfZHBsbChzdGF0ZSwgY3J0YywgJnByaW1hcnlfcG9ydC0+YmFzZSk7Cj4gK30K CkhhdmluZyB0aGlzIGFzIGEgY29ubmVjdG9yIGhvb2sgZmVlbHMgYSBiaXQgc3RyYW5nZS4gSSBn dWVzcyBtb3ZpbmcgaXQKdG8gZW5jb2RlciBsZXZlbCB3b3VsZCBmZWVsIG1vcmUgaW4gbGluZSB3 aXRoIHRoZSByZXN0IG9mIHRoZSBob29rcywgYW5kCndvdWxkIGF2b2lkIGhhdmluZyB0aGF0IGlu dGVsX2Nvbm5lY3Rvcl9wcmltYXJ5X2RpZ2l0YWxfcG9ydCgpIHRoaW5nCmJlY2F1c2UgdGhlbiB0 aGUgbXN0IGNvZGUgY291bGQganVzdCBwYXNzIGluIHRoZSByaWdodCB0aGluZyBpdHNlbGYuCkht bS4gT3IgbWF5YmUgdGhhdCB3b3VsZG4ndCBhY3R1YWxseSB3b3JrIGJlY2F1c2Ugb2YKaW50ZWxf Y29ubmVjdG9yLT5lbmNvZGVyIGJlaW5nIHdvbmt5IG9uIE1TVCA6KAoKQWx0aG91Z2ggaWYgd2Ug anVzdCBwdXQgdGhlIGhvb2tzIG9uIHRoZSBtYWluIGVuY29kZXIgYW5kIG5vdCBvbiB0aGUKTVNU IG9uZXMgaXQgY291bGQgbWF5YmUgd29yay4gV291bGQgc3RpbGwgbmVlZAppbnRlbF9jb25uZWN0 b3JfcHJpbWFyeV9kaWdpdGFsX3BvcnQoKSB0byBkaWcgb3V0IHRoZSBlbmNvZGVyIHRob3VnaC4K Ck5vdCBzdXJlLgoKPiArCj4gK3ZvaWQKPiAraW50ZWxfZGRpX2Nvbm5lY3Rvcl91cGRhdGVfY29t cGxldGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gKwkJCQkgICAgc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICt7Cj4gKwlzdHJ1Y3QgaW50ZWxfZGlnaXRh bF9wb3J0ICpwcmltYXJ5X3BvcnQgPQo+ICsJCWludGVsX2Nvbm5lY3Rvcl9wcmltYXJ5X2RpZ2l0 YWxfcG9ydChjb25uZWN0b3IpOwo+ICsKPiArCWludGVsX3RjX3BvcnRfcHV0X2xpbmsocHJpbWFy eV9wb3J0KTsKPiArfQo+ICsKPiAgc3RhdGljIHZvaWQKPiAgaW50ZWxfZGRpX3ByZV9wbGxfZW5h YmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gQEAgLTM2MTcsMTAgKzM2NDksMTMgQEAgaW50 ZWxfZGRpX3ByZV9wbGxfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICB7 Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXIt PmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5j X3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKPiArCWJvb2wgaXNfdGNfcG9ydCA9IGludGVs X3BvcnRfaXNfdGMoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpOwo+ICAJZW51bSBwb3J0IHBvcnQg PSBlbmNvZGVyLT5wb3J0Owo+ICAKPiAtCWlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNy dGNfc3RhdGUpIHx8Cj4gLQkgICAgaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgZW5jb2Rlci0+ cG9ydCkpCj4gKwlpZiAoaXNfdGNfcG9ydCkKPiArCQlpbnRlbF90Y19wb3J0X2dldF9saW5rKGRp Z19wb3J0LCBjcnRjX3N0YXRlLT5sYW5lX2NvdW50KTsKPiArCj4gKwlpZiAoaW50ZWxfY3J0Y19o YXNfZHBfZW5jb2RlcihjcnRjX3N0YXRlKSB8fCBpc190Y19wb3J0KQo+ICAJCWludGVsX2Rpc3Bs YXlfcG93ZXJfZ2V0KGRldl9wcml2LAo+ICAJCQkJCWludGVsX2RkaV9tYWluX2xpbmtfYXV4X2Rv bWFpbihkaWdfcG9ydCkpOwo+ICAKPiBAQCAtMzY0NSwxMSArMzY4MCwxNCBAQCBpbnRlbF9kZGlf cG9zdF9wbGxfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgewo+ICAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNl LmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190b19k aWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlib29sIGlzX3RjX3BvcnQgPSBpbnRlbF9wb3J0 X2lzX3RjKGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KTsKPiAgCj4gLQlpZiAoaW50ZWxfY3J0Y19o YXNfZHBfZW5jb2RlcihjcnRjX3N0YXRlKSB8fAo+IC0JICAgIGludGVsX3BvcnRfaXNfdGMoZGV2 X3ByaXYsIGVuY29kZXItPnBvcnQpKQo+ICsJaWYgKGludGVsX2NydGNfaGFzX2RwX2VuY29kZXIo Y3J0Y19zdGF0ZSkgfHwgaXNfdGNfcG9ydCkKPiAgCQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dF91 bmNoZWNrZWQoZGV2X3ByaXYsCj4gIAkJCQkJCSAgaW50ZWxfZGRpX21haW5fbGlua19hdXhfZG9t YWluKGRpZ19wb3J0KSk7Cj4gKwo+ICsJaWYgKGlzX3RjX3BvcnQpCj4gKwkJaW50ZWxfdGNfcG9y dF9wdXRfbGluayhkaWdfcG9ydCk7Cj4gIH0KPiAgCj4gIHZvaWQgaW50ZWxfZGRpX3ByZXBhcmVf bGlua19yZXRyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RkaS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGRpLmgKPiBpbmRleCA5Y2Y2OTE3NTk0MmUuLjE1NTlkMWZiZjdiZCAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RkaS5oCj4gQEAgLTEyLDYgKzEyLDcgQEAKPiAgCj4gIHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlOwo+ICBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZTsKPiArc3RydWN0IGlu dGVsX2F0b21pY19zdGF0ZTsKPiAgc3RydWN0IGludGVsX2Nvbm5lY3RvcjsKPiAgc3RydWN0IGlu dGVsX2NydGM7Cj4gIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlOwo+IEBAIC0zNSw2ICszNiwxMiBA QCB2b2lkIGludGVsX2RkaV9wcmVwYXJlX2xpbmtfcmV0cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKTsKPiAgYm9vbCBpbnRlbF9kZGlfY29ubmVjdG9yX2dldF9od19zdGF0ZShzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IpOwo+ICB2b2lkIGludGVsX2RkaV9nZXRf Y29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyk7Cj4gK3ZvaWQKPiAraW50ZWxfZGRpX2Nvbm5lY3Rv cl91cGRhdGVfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKPiArCQkJ CSAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rvcik7Cj4gK3ZvaWQKPiAraW50ZWxf ZGRpX2Nvbm5lY3Rvcl91cGRhdGVfY29tcGxldGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAq c3RhdGUsCj4gKwkJCQkgICAgc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPiAg dm9pZCBpbnRlbF9kZGlfc2V0X3ZjX3BheWxvYWRfYWxsb2MoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJCQkgICAgYm9vbCBzdGF0ZSk7Cj4gIHZvaWQgaW50 ZWxfZGRpX2NvbXB1dGVfbWluX3ZvbHRhZ2VfbGV2ZWwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRleCBmODZi NWI4NDhjYmMuLjJjNjU1ODdkMTYyMiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKPiBAQCAtNTIwLDYgKzUyMCwyMCBAQCBuZWVkc19tb2Rlc2V0KGNvbnN0IHN0cnVjdCBk cm1fY3J0Y19zdGF0ZSAqc3RhdGUpCj4gIAlyZXR1cm4gZHJtX2F0b21pY19jcnRjX25lZWRzX21v ZGVzZXQoc3RhdGUpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgYm9vbAo+ICtpbnRlbF9jb25uZWN0b3Jf bmVlZHNfbW9kZXNldChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKPiArCQkJICAg ICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlLAo+ICsJ CQkgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqbmV3X2Nvbm5fc3RhdGUp Cj4gK3sKPiArCWlmIChuZXdfY29ubl9zdGF0ZS0+Y3J0YyAhPSBvbGRfY29ubl9zdGF0ZS0+Y3J0 YyB8fAo+ICsJICAgIChuZXdfY29ubl9zdGF0ZS0+Y3J0YyAmJgo+ICsJICAgICBuZWVkc19tb2Rl c2V0KGRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKCZzdGF0ZS0+YmFzZSwKPiArCQkJCQkJ CSBuZXdfY29ubl9zdGF0ZS0+Y3J0YykpKSkKPiArCQlyZXR1cm4gdHJ1ZTsKPiArCj4gKwlyZXR1 cm4gZmFsc2U7CgpQb2ludGxlc3MgaWYgc3RhdGVtZW50LiBPciBpcyB0aGVyZSBtb3JlIGNvbWlu ZyBoZXJlPwoKPiArfQo+ICsKPiAgLyoKPiAgICogUGxhdGZvcm0gc3BlY2lmaWMgaGVscGVycyB0 byBjYWxjdWxhdGUgdGhlIHBvcnQgUExMIGxvb3BiYWNrLSAoY2xvY2subSksCj4gICAqIGFuZCBw b3N0LWRpdmlkZXIgKGNsb2NrLnApIHZhbHVlcywgcHJlLSAoY2xvY2sudmNvKSBhbmQgcG9zdC1k aXZpZGVkIGZhc3QKPiBAQCAtNjAzMiw2ICs2MDQ2LDUyIEBAIHN0YXRpYyB2b2lkIGludGVsX2Ny dGNfZGlzYWJsZV9wbGFuZXMoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gIAlp bnRlbF9mcm9udGJ1ZmZlcl9mbGlwKGRldl9wcml2LCBmYl9iaXRzKTsKPiAgfQo+ICAKPiArc3Rh dGljIHZvaWQgaW50ZWxfY29ubmVjdG9yc191cGRhdGVfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSkKPiArewo+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9s ZF9jb25uX3N0YXRlOwo+ICsJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5ld19jb25uX3N0 YXRlOwo+ICsJc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm47Cj4gKwlpbnQgaTsKPiArCj4gKwlm b3JfZWFjaF9vbGRuZXdfY29ubmVjdG9yX2luX3N0YXRlKCZzdGF0ZS0+YmFzZSwgY29ubiwKPiAr CQkJCQkgICBvbGRfY29ubl9zdGF0ZSwgbmV3X2Nvbm5fc3RhdGUsIGkpIHsKPiArCQlzdHJ1Y3Qg aW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSB0b19pbnRlbF9jb25uZWN0b3IoY29ubik7Cj4g Kwo+ICsJCWlmICghY29ubmVjdG9yLT51cGRhdGVfcHJlcGFyZSkKPiArCQkJY29udGludWU7Cj4g Kwo+ICsJCWlmICghaW50ZWxfY29ubmVjdG9yX25lZWRzX21vZGVzZXQoc3RhdGUsCj4gKwkJCQkJ CSAgIG9sZF9jb25uX3N0YXRlLAo+ICsJCQkJCQkgICBuZXdfY29ubl9zdGF0ZSkpCj4gKwkJCWNv bnRpbnVlOwo+ICsKPiArCQljb25uZWN0b3ItPnVwZGF0ZV9wcmVwYXJlKHN0YXRlLCBjb25uZWN0 b3IpOwo+ICsJfQo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBpbnRlbF9jb25uZWN0b3JzX3VwZGF0 ZV9jb21wbGV0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKPiArewo+ICsJc3Ry dWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlOwo+ICsJc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKm5ld19jb25uX3N0YXRlOwo+ICsJc3RydWN0IGRybV9jb25uZWN0b3Ig KmNvbm47Cj4gKwlpbnQgaTsKPiArCj4gKwlmb3JfZWFjaF9vbGRuZXdfY29ubmVjdG9yX2luX3N0 YXRlKCZzdGF0ZS0+YmFzZSwgY29ubiwKPiArCQkJCQkgICBvbGRfY29ubl9zdGF0ZSwgbmV3X2Nv bm5fc3RhdGUsIGkpIHsKPiArCQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IgPSB0 b19pbnRlbF9jb25uZWN0b3IoY29ubik7Cj4gKwo+ICsJCWlmICghY29ubmVjdG9yLT51cGRhdGVf Y29tcGxldGUpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQlpZiAoIWludGVsX2Nvbm5lY3Rvcl9u ZWVkc19tb2Rlc2V0KHN0YXRlLAo+ICsJCQkJCQkgICBvbGRfY29ubl9zdGF0ZSwKPiArCQkJCQkJ ICAgbmV3X2Nvbm5fc3RhdGUpKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJY29ubmVjdG9yLT51 cGRhdGVfY29tcGxldGUoc3RhdGUsIGNvbm5lY3Rvcik7Cj4gKwl9Cj4gK30KPiArCj4gIHN0YXRp YyB2b2lkIGludGVsX2VuY29kZXJzX3ByZV9wbGxfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKPiAgCQkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAo+ICAJCQkJ CSAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKPiBAQCAtNjU1Niw2ICs2NjE2 LDI4IEBAIHN0YXRpYyB2b2lkIGk5eHhfcGZpdF9lbmFibGUoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIAlJOTE1X1dSSVRFKEJDTFJQQVQoY3J0Yy0+cGlwZSks IDApOwo+ICB9Cj4gIAo+ICsvKgo+ICsgKiBpbnRlbF9jb25uZWN0b3JfcHJpbWFyeV9kaWdpdGFs X3BvcnQgLSBnZXQgdGhlIHByaW1hcnkgcG9ydCBmb3IgYSBjb25uZWN0b3IKPiArICogQGNvbm5l Y3RvcjogY29ubmVjdG9yIGZvciB3aGljaCB0byByZXR1cm4gdGhlIHBvcnQKPiArICoKPiArICog UmV0dXJucyB0aGUgcHJpbWFyeSBkaWdpdGFsIHBvcnQgZm9yIGEgRFAgTVNULCB0aGUgc2luZ2xl IGRpZ2l0YWwgcG9ydCBmb3IKPiArICogRFAgU1NUIGFuZCBIRE1JIGFuZCBOVUxMIGZvciBhbGwg b3RoZXIgY29ubmVjdG9yIHR5cGVzLgo+ICsgKi8KPiArc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqCj4gK2ludGVsX2Nvbm5lY3Rvcl9wcmltYXJ5X2RpZ2l0YWxfcG9ydChzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyOwo+ICsKPiArCWlmIChjb25uZWN0b3ItPm1zdF9wb3J0KQo+ICsJCXJldHVybiBkcF90b19k aWdfcG9ydChjb25uZWN0b3ItPm1zdF9wb3J0KTsKPiArCj4gKwllbmNvZGVyID0gaW50ZWxfYXR0 YWNoZWRfZW5jb2RlcigmY29ubmVjdG9yLT5iYXNlKTsKPiArCWlmIChXQVJOX09OKCFlbmNvZGVy KSkKPiArCQlyZXR1cm4gTlVMTDsKPiArCj4gKwlyZXR1cm4gZW5jX3RvX2RpZ19wb3J0KCZlbmNv ZGVyLT5iYXNlKTsKPiArfQo+ICsKPiAgYm9vbCBpbnRlbF9wb3J0X2lzX2NvbWJvcGh5KHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCj4gIHsKPiAgCWlm IChwb3J0ID09IFBPUlRfTk9ORSkKPiBAQCAtMTM4MDUsMTQgKzEzODg3LDIwIEBAIHN0YXRpYyB2 b2lkIGludGVsX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3Rh dGUpCj4gIAkJfQo+ICAJfQo+ICAKPiArCWlmIChpbnRlbF9zdGF0ZS0+bW9kZXNldCkKPiArCQlp bnRlbF9jb25uZWN0b3JzX3VwZGF0ZV9wcmVwYXJlKGludGVsX3N0YXRlKTsKPiArCj4gIAkvKiBO b3cgZW5hYmxlIHRoZSBjbG9ja3MsIHBsYW5lLCBwaXBlLCBhbmQgY29ubmVjdG9ycyB0aGF0IHdl IHNldCB1cC4gKi8KPiAgCWRldl9wcml2LT5kaXNwbGF5LnVwZGF0ZV9jcnRjcyhzdGF0ZSk7Cj4g IAo+IC0JaWYgKGludGVsX3N0YXRlLT5tb2Rlc2V0KQo+ICsJaWYgKGludGVsX3N0YXRlLT5tb2Rl c2V0KSB7Cj4gKwkJaW50ZWxfY29ubmVjdG9yc191cGRhdGVfY29tcGxldGUoaW50ZWxfc3RhdGUp Owo+ICsKPiAgCQlpbnRlbF9zZXRfY2RjbGtfcG9zdF9wbGFuZV91cGRhdGUoZGV2X3ByaXYsCj4g IAkJCQkJCSAgJmludGVsX3N0YXRlLT5jZGNsay5hY3R1YWwsCj4gIAkJCQkJCSAgJmRldl9wcml2 LT5jZGNsay5hY3R1YWwsCj4gIAkJCQkJCSAgaW50ZWxfc3RhdGUtPmNkY2xrLnBpcGUpOwo+ICsJ fQo+ICAKPiAgCS8qIEZJWE1FOiBXZSBzaG91bGQgY2FsbCBkcm1fYXRvbWljX2hlbHBlcl9jb21t aXRfaHdfZG9uZSgpIGhlcmUKPiAgCSAqIGFscmVhZHksIGJ1dCBzdGlsbCBuZWVkIHRoZSBzdGF0 ZSBmb3IgdGhlIGRlbGF5ZWQgb3B0aW1pemF0aW9uLiBUbwo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAu Ywo+IGluZGV4IGI5ODQ0MTBmNDFhNC4uMmY2MzQ3NmUzY2YyIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9kcC5jCj4gQEAgLTcxOTUsNiArNzE5NSwxMyBAQCBpbnRlbF9kcF9pbml0X2Nvbm5lY3Rv cihzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPiAgCWVsc2UKPiAg CQlpbnRlbF9jb25uZWN0b3ItPmdldF9od19zdGF0ZSA9IGludGVsX2Nvbm5lY3Rvcl9nZXRfaHdf c3RhdGU7Cj4gIAo+ICsJaWYgKGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIGludGVsX2VuY29k ZXItPnBvcnQpKSB7Cj4gKwkJaW50ZWxfY29ubmVjdG9yLT51cGRhdGVfcHJlcGFyZSA9Cj4gKwkJ CWludGVsX2RkaV9jb25uZWN0b3JfdXBkYXRlX3ByZXBhcmU7Cj4gKwkJaW50ZWxfY29ubmVjdG9y LT51cGRhdGVfY29tcGxldGUgPQo+ICsJCQlpbnRlbF9kZGlfY29ubmVjdG9yX3VwZGF0ZV9jb21w bGV0ZTsKPiArCX0KPiArCj4gIAkvKiBpbml0IE1TVCBvbiBwb3J0cyB0aGF0IGNhbiBzdXBwb3J0 IGl0ICovCj4gIAlpZiAoSEFTX0RQX01TVChkZXZfcHJpdikgJiYgIWludGVsX2RwX2lzX2VkcChp bnRlbF9kcCkgJiYKPiAgCSAgICAocG9ydCA9PSBQT1JUX0IgfHwgcG9ydCA9PSBQT1JUX0MgfHwK PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuYwo+IGluZGV4IDBjYWY2NDVmYmJiOC4uOWQ1 YjA0OGI5Yzk2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21z dC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0LmMKPiBAQCAtNTA1 LDYgKzUwNSwxMiBAQCBzdGF0aWMgc3RydWN0IGRybV9jb25uZWN0b3IgKmludGVsX2RwX2FkZF9t c3RfY29ubmVjdG9yKHN0cnVjdCBkcm1fZHBfbXN0X3RvcG9sbwo+ICAJaWYgKCFpbnRlbF9jb25u ZWN0b3IpCj4gIAkJcmV0dXJuIE5VTEw7Cj4gIAo+ICsJaWYgKGludGVsX3BvcnRfaXNfdGMoZGV2 X3ByaXYsIGludGVsX2RpZ19wb3J0LT5iYXNlLnBvcnQpKSB7Cj4gKwkJaW50ZWxfY29ubmVjdG9y LT51cGRhdGVfcHJlcGFyZSA9Cj4gKwkJCWludGVsX2RkaV9jb25uZWN0b3JfdXBkYXRlX3ByZXBh cmU7Cj4gKwkJaW50ZWxfY29ubmVjdG9yLT51cGRhdGVfY29tcGxldGUgPQo+ICsJCQlpbnRlbF9k ZGlfY29ubmVjdG9yX3VwZGF0ZV9jb21wbGV0ZTsKPiArCX0KPiAgCWludGVsX2Nvbm5lY3Rvci0+ Z2V0X2h3X3N0YXRlID0gaW50ZWxfZHBfbXN0X2dldF9od19zdGF0ZTsKPiAgCWludGVsX2Nvbm5l Y3Rvci0+bXN0X3BvcnQgPSBpbnRlbF9kcDsKPiAgCWludGVsX2Nvbm5lY3Rvci0+cG9ydCA9IHBv cnQ7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdyLmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcGxsX21nci5jCj4gaW5kZXggY2UwOGEyZWVl NTVmLi5jZTM5N2I2OWIxZDYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZHBsbF9tZ3IuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwbGxfbWdy LmMKPiBAQCAtMTkzOSw3ICsxOTM5LDkgQEAgc3RydWN0IGludGVsX2RwbGxfbWdyIHsKPiAgCQkJ ICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7Cj4gIAl2b2lkICgqcHV0X2RwbGxzKShz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKPiAgCQkJICBzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0Yyk7Cj4gLQo+ICsJdm9pZCAoKnVwZGF0ZV9hY3RpdmVfZHBsbCkoc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gKwkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywK PiArCQkJCSAgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKPiAgCXZvaWQgKCpkdW1w X2h3X3N0YXRlKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gIAkJCSAgICAg IGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlICpod19zdGF0ZSk7Cj4gIH07Cj4gQEAg LTM0MDEsNiArMzQwMyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZHBsbF9tZ3IgaWNs X3BsbF9tZ3IgPSB7Cj4gIAkuZHBsbF9pbmZvID0gaWNsX3BsbHMsCj4gIAkuZ2V0X2RwbGxzID0g aWNsX2dldF9kcGxscywKPiAgCS5wdXRfZHBsbHMgPSBpY2xfcHV0X2RwbGxzLAo+ICsJLnVwZGF0 ZV9hY3RpdmVfZHBsbCA9IGljbF91cGRhdGVfYWN0aXZlX2RwbGwsCj4gIAkuZHVtcF9od19zdGF0 ZSA9IGljbF9kdW1wX2h3X3N0YXRlLAo+ICB9Owo+ICAKPiBAQCAtMzUyNSw2ICszNTI4LDI5IEBA IHZvaWQgaW50ZWxfcmVsZWFzZV9zaGFyZWRfZHBsbHMoc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSAqc3RhdGUsCj4gIAlkcGxsX21nci0+cHV0X2RwbGxzKHN0YXRlLCBjcnRjKTsKPiAgfQo+ICAK PiArLyoqCj4gKyAqIGludGVsX3VwZGF0ZV9hY3RpdmVfZHBsbCAtIHVwZGF0ZSB0aGUgYWN0aXZl IERQTEwgZm9yIGEgQ1JUQy9lbmNvZGVyCj4gKyAqIEBzdGF0ZTogYXRvbWljIHN0YXRlCj4gKyAq IEBjcnRjOiB0aGUgQ1JUQyBmb3Igd2hpY2ggdG8gdXBkYXRlIHRoZSBhY3RpdmUgRFBMTAo+ICsg KiBAZW5jb2RlcjogZW5jb2RlciBkZXRlcm1pbmluZyB0aGUgdHlwZSBvZiBwb3J0IERQTEwKPiAr ICoKPiArICogVXBkYXRlIHRoZSBhY3RpdmUgRFBMTCBmb3IgdGhlIGdpdmVuIEBjcnRjL0BlbmNv ZGVyIGluIEBjcnRjJ3MgYXRvbWljIHN0YXRlLAo+ICsgKiBmcm9tIHRoZSBwb3J0IERQTExzIHJl c2VydmVkIHByZXZpb3VzbHkgYnkgaW50ZWxfcmVzZXJ2ZV9zaGFyZWRfZHBsbHMoKS4gVGhlCj4g KyAqIERQTEwgc2VsZWN0ZWQgd2lsbCBiZSBiYXNlZCBvbiB0aGUgY3VycmVudCBtb2RlIG9mIHRo ZSBlbmNvZGVyJ3MgcG9ydC4KPiArICovCj4gK3ZvaWQgaW50ZWxfdXBkYXRlX2FjdGl2ZV9kcGxs KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICsJCQkgICAgICBzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKPiArCQkJICAgICAgc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIp Cj4gK3sKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5j b2Rlci0+YmFzZS5kZXYpOwo+ICsJY29uc3Qgc3RydWN0IGludGVsX2RwbGxfbWdyICpkcGxsX21n ciA9IGRldl9wcml2LT5kcGxsX21ncjsKPiArCj4gKwlpZiAoV0FSTl9PTighZHBsbF9tZ3IpKQo+ ICsJCXJldHVybjsKPiArCj4gKwlkcGxsX21nci0+dXBkYXRlX2FjdGl2ZV9kcGxsKHN0YXRlLCBj cnRjLCBlbmNvZGVyKTsKPiArfQo+ICsKPiAgLyoqCj4gICAqIGludGVsX3NoYXJlZF9kcGxsX2R1 bXBfaHdfc3RhdGUgLSB3cml0ZSBod19zdGF0ZSB0byBkbWVzZwo+ICAgKiBAZGV2X3ByaXY6IGk5 MTUgZHJtIGRldmljZQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k cGxsX21nci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBsbF9tZ3IuaAo+IGluZGV4 IDNiZWE4MWJkZTM0My4uNTgxN2ZhYTEyOWQ1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2RwbGxfbWdyLmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcGxsX21nci5oCj4gQEAgLTM0Niw2ICszNDYsOSBAQCB2b2lkIGludGVsX3JlbGVhc2Vfc2hh cmVkX2RwbGxzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICAJCQkJc3RydWN0 IGludGVsX2NydGMgKmNydGMpOwo+ICB2b2lkIGljbF9zZXRfYWN0aXZlX3BvcnRfZHBsbChzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKPiAgCQkJICAgICAgZW51bSBpY2xfcG9y dF9kcGxsX2lkIHBvcnRfZHBsbF9pZCk7Cj4gK3ZvaWQgaW50ZWxfdXBkYXRlX2FjdGl2ZV9kcGxs KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICsJCQkgICAgICBzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKPiArCQkJICAgICAgc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIp Owo+ICB2b2lkIGludGVsX3ByZXBhcmVfc2hhcmVkX2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+ICB2b2lkIGludGVsX2VuYWJsZV9zaGFyZWRfZHBsbChj b25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4gIHZvaWQgaW50ZWxf ZGlzYWJsZV9zaGFyZWRfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBpbmRleCBjNjE5NTVjNDE5NzYuLmI5 NjY1NmYxYjhkNCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gQEAgLTM3NSw2ICsz NzUsMTEgQEAgc3RydWN0IGludGVsX2Nvbm5lY3RvciB7Cj4gIAkgKiBhbmQgYWN0aXZlIChpLmUu IGRwbXMgT04gc3RhdGUpLiAqLwo+ICAJYm9vbCAoKmdldF9od19zdGF0ZSkoc3RydWN0IGludGVs X2Nvbm5lY3RvciAqKTsKPiAgCj4gKwl2b2lkICgqdXBkYXRlX3ByZXBhcmUpKHN0cnVjdCBpbnRl bF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICsJCQkgICAgICAgc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKTsKPiArCXZvaWQgKCp1cGRhdGVfY29tcGxldGUpKHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlLAo+ICsJCQkJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yKTsKPiArCj4gIAkvKiBQYW5lbCBpbmZvIGZvciBlRFAgYW5kIExWRFMgKi8KPiAgCXN0cnVj dCBpbnRlbF9wYW5lbCBwYW5lbDsKPiAgCj4gQEAgLTEyMzQsNiArMTIzOSw4IEBAIHN0cnVjdCBp bnRlbF9kaWdpdGFsX3BvcnQgewo+ICAJZW51bSBhdXhfY2ggYXV4X2NoOwo+ICAJZW51bSBpbnRl bF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkZGlfaW9fcG93ZXJfZG9tYWluOwo+ICAJc3RydWN0IG11 dGV4IHRjX2xvY2s7Cj4gKwlpbnRlbF93YWtlcmVmX3QgdGNfbG9ja193YWtlcmVmOwo+ICsJaW50 IHRjX2xpbmtfcmVmY291bnQ7Cj4gIAlib29sIHRjX2xlZ2FjeV9wb3J0OjE7Cj4gIAllbnVtIHRj X3BvcnRfbW9kZSB0Y19tb2RlOwo+ICAKPiBAQCAtMTQ4NSw2ICsxNDkyLDggQEAgdm9pZCBpbnRl bF9wcHNfdW5sb2NrX3JlZ3Nfd2Eoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsK PiAgdm9pZCBpbnRlbF9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVy KTsKPiAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKgo+ICBpbnRlbF9lbmNvZGVyX2N1cnJlbnRf bW9kZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7Cj4gK3N0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKgo+ICtpbnRlbF9jb25uZWN0b3JfcHJpbWFyeV9kaWdpdGFsX3BvcnQoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPiAgYm9vbCBpbnRlbF9wb3J0X2lzX2NvbWJv cGh5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpOwo+ ICBib29sIGludGVsX3BvcnRfaXNfdGMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LCBlbnVtIHBvcnQgcG9ydCk7Cj4gIGVudW0gdGNfcG9ydCBpbnRlbF9wb3J0X3RvX3RjKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5j Cj4gaW5kZXggMDk3YmZhNTA0ZWNlLi44OWYwOWUyN2I3NDEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfaGRtaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfaGRtaS5jCj4gQEAgLTMwOTIsNiArMzA5MiwxMyBAQCB2b2lkIGludGVsX2hkbWlfaW5p dF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQsCj4g IAllbHNlCj4gIAkJaW50ZWxfY29ubmVjdG9yLT5nZXRfaHdfc3RhdGUgPSBpbnRlbF9jb25uZWN0 b3JfZ2V0X2h3X3N0YXRlOwo+ICAKPiArCWlmIChpbnRlbF9wb3J0X2lzX3RjKGRldl9wcml2LCBp bnRlbF9lbmNvZGVyLT5wb3J0KSkgewo+ICsJCWludGVsX2Nvbm5lY3Rvci0+dXBkYXRlX3ByZXBh cmUgPQo+ICsJCQlpbnRlbF9kZGlfY29ubmVjdG9yX3VwZGF0ZV9wcmVwYXJlOwo+ICsJCWludGVs X2Nvbm5lY3Rvci0+dXBkYXRlX2NvbXBsZXRlID0KPiArCQkJaW50ZWxfZGRpX2Nvbm5lY3Rvcl91 cGRhdGVfY29tcGxldGU7Cj4gKwl9Cj4gKwo+ICAJaW50ZWxfaGRtaV9hZGRfcHJvcGVydGllcyhp bnRlbF9oZG1pLCBjb25uZWN0b3IpOwo+ICAKPiAgCWludGVsX2Nvbm5lY3Rvcl9hdHRhY2hfZW5j b2RlcihpbnRlbF9jb25uZWN0b3IsIGludGVsX2VuY29kZXIpOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf dGMuYwo+IGluZGV4IDRiMmY1MjViYzJhNi4uZTc5ZjZjZWIyNmYzIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3RjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF90Yy5jCj4gQEAgLTE4OCwyMSArMTg4LDEzIEBAIHN0YXRpYyBib29sIGljbF90Y19w aHlfaXNfaW5fc2FmZV9tb2RlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQo+ ICAgKiBkaXNwbGF5LCBVU0IsIGV0Yy4gQXMgYSByZXN1bHQsIGhhbmRzaGFraW5nIHRocm91Z2gg RklBIGlzIHJlcXVpcmVkIGFyb3VuZAo+ICAgKiBjb25uZWN0IGFuZCBkaXNjb25uZWN0IHRvIGNs ZWFubHkgdHJhbnNmZXIgb3duZXJzaGlwIHdpdGggdGhlIGNvbnRyb2xsZXIgYW5kCj4gICAqIHNl dCB0aGUgdHlwZS1DIHBvd2VyIHN0YXRlLgo+IC0gKgo+IC0gKiBXZSBjb3VsZCBvcHQgdG8gb25s eSBkbyB0aGUgY29ubmVjdCBmbG93IHdoZW4gd2UgYWN0dWFsbHkgdHJ5IHRvIHVzZSB0aGUgQVVY Cj4gLSAqIGNoYW5uZWxzIG9yIGRvIGEgbW9kZXNldCwgdGhlbiBpbW1lZGlhdGVseSBydW4gdGhl IGRpc2Nvbm5lY3QgZmxvdyBhZnRlcgo+IC0gKiB1c2FnZSwgYnV0IHRoZXJlIGFyZSBzb21lIGlt cGxpY2F0aW9ucyBvbiB0aGlzIGZvciBhIGR5bmFtaWMgZW52aXJvbm1lbnQ6Cj4gLSAqIHRoaW5n cyBtYXkgZ28gYXdheSBvciBjaGFuZ2UgYmVoaW5kIG91ciBiYWNrcy4gU28gZm9yIG5vdyBvdXIg ZHJpdmVyIGlzCj4gLSAqIGFsd2F5cyB0cnlpbmcgdG8gYWNxdWlyZSBvd25lcnNoaXAgb2YgdGhl IGNvbnRyb2xsZXIgYXMgc29vbiBhcyBpdCBnZXRzIGFuCj4gLSAqIGludGVycnVwdCAob3IgcG9s bHMgc3RhdGUgYW5kIHNlZXMgYSBwb3J0IGlzIGNvbm5lY3RlZCkgYW5kIG9ubHkgZ2l2ZXMgaXQK PiAtICogYmFjayB3aGVuIGl0IHNlZXMgYSBkaXNjb25uZWN0LiBJbXBsZW1lbnRhdGlvbiBvZiBh IG1vcmUgZmluZS1ncmFpbmVkIG1vZGVsCj4gLSAqIHdpbGwgcmVxdWlyZSBhIGxvdCBvZiBjb29y ZGluYXRpb24gd2l0aCB1c2VyIHNwYWNlIGFuZCB0aG9yb3VnaCB0ZXN0aW5nIGZvcgo+IC0gKiB0 aGUgZXh0cmEgcG9zc2libGUgY2FzZXMuCj4gICAqLwo+IC1zdGF0aWMgdm9pZCBpY2xfdGNfcGh5 X2Nvbm5lY3Qoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCj4gK3N0YXRpYyB2 b2lkIGljbF90Y19waHlfY29ubmVjdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9y dCwKPiArCQkJICAgICAgIGludCByZXF1aXJlZF9sYW5lcykKPiAgewo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7 Cj4gIAllbnVtIHRjX3BvcnQgdGNfcG9ydCA9IGludGVsX3BvcnRfdG9fdGMoZGV2X3ByaXYsIGRp Z19wb3J0LT5iYXNlLnBvcnQpOwo+ICsJaW50IG1heF9sYW5lczsKPiAgCj4gIAlpZiAoIWljbF90 Y19waHlfc3RhdHVzX2NvbXBsZXRlKGRpZ19wb3J0KSkgewo+ICAJCURSTV9ERUJVR19LTVMoIlBv cnQgJXM6IFBIWSBub3QgcmVhZHlcbiIsCj4gQEAgLTIxNCw4ICsyMDYsOSBAQCBzdGF0aWMgdm9p ZCBpY2xfdGNfcGh5X2Nvbm5lY3Qoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQp Cj4gIAkgICAgIVdBUk5fT04oZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0KSkKPiAgCQlnb3RvIG91 dF9zZXRfdGJ0X2FsdF9tb2RlOwo+ICAKPiArCW1heF9sYW5lcyA9IGludGVsX3RjX3BvcnRfZmlh X21heF9sYW5lX2NvdW50KGRpZ19wb3J0KTsKPiAgCWlmIChkaWdfcG9ydC0+dGNfbGVnYWN5X3Bv cnQpIHsKPiAtCQlXQVJOX09OKGludGVsX3RjX3BvcnRfZmlhX21heF9sYW5lX2NvdW50KGRpZ19w b3J0KSAhPSA0KTsKPiArCQlXQVJOX09OKG1heF9sYW5lcyAhPSA0KTsKPiAgCQlkaWdfcG9ydC0+ dGNfbW9kZSA9IFRDX1BPUlRfTEVHQUNZOwo+ICAKPiAgCQlyZXR1cm47Cj4gQEAgLTIzMSw2ICsy MjQsMTMgQEAgc3RhdGljIHZvaWQgaWNsX3RjX3BoeV9jb25uZWN0KHN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmRpZ19wb3J0KQo+ICAJCWdvdG8gb3V0X3NldF9zYWZlX21vZGU7Cj4gIAl9Cj4g IAo+ICsJaWYgKG1heF9sYW5lcyA8IHJlcXVpcmVkX2xhbmVzKSB7Cj4gKwkJRFJNX0RFQlVHX0tN UygiUG9ydCAlczogUEhZIG1heCBsYW5lcyAlZCA8IHJlcXVpcmVkIGxhbmVzICVkXG4iLAo+ICsJ CQkgICAgICB0Y19wb3J0X25hbWUoZGV2X3ByaXYsIHRjX3BvcnQpLAo+ICsJCQkgICAgICBtYXhf bGFuZXMsIHJlcXVpcmVkX2xhbmVzKTsKPiArCQlnb3RvIG91dF9zZXRfc2FmZV9tb2RlOwo+ICsJ fQo+ICsKPiAgCWRpZ19wb3J0LT50Y19tb2RlID0gVENfUE9SVF9EUF9BTFQ7Cj4gIAo+ICAJcmV0 dXJuOwo+IEBAIC0zMTcsNyArMzE3LDggQEAgaW50ZWxfdGNfcG9ydF9nZXRfdGFyZ2V0X21vZGUo c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCj4gIAkJCQkJICBUQ19QT1JUX1RC VF9BTFQ7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGludGVsX3RjX3BvcnRfcmVzZXRfbW9kZShz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKPiArc3RhdGljIHZvaWQgaW50ZWxf dGNfcG9ydF9yZXNldF9tb2RlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0LAo+ ICsJCQkJICAgICBpbnQgcmVxdWlyZWRfbGFuZXMpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwo+ICAJ ZW51bSB0Y19wb3J0IHRjX3BvcnQgPSBpbnRlbF9wb3J0X3RvX3RjKGRldl9wcml2LCBkaWdfcG9y dC0+YmFzZS5wb3J0KTsKPiBAQCAtMzI2LDcgKzMyNyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3Rj X3BvcnRfcmVzZXRfbW9kZShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKPiAg CWludGVsX2Rpc3BsYXlfcG93ZXJfZmx1c2hfd29yayhkZXZfcHJpdik7Cj4gIAo+ICAJaWNsX3Rj X3BoeV9kaXNjb25uZWN0KGRpZ19wb3J0KTsKPiAtCWljbF90Y19waHlfY29ubmVjdChkaWdfcG9y dCk7Cj4gKwlpY2xfdGNfcGh5X2Nvbm5lY3QoZGlnX3BvcnQsIHJlcXVpcmVkX2xhbmVzKTsKPiAg Cj4gIAlEUk1fREVCVUdfS01TKCJQb3J0ICVzOiBUQyBwb3J0IG1vZGUgcmVzZXQgKCVzIC0+ICVz KVxuIiwKPiAgCQkgICAgICB0Y19wb3J0X25hbWUoZGV2X3ByaXYsIHRjX3BvcnQpLAo+IEBAIC0z MzQsNiArMzM1LDE0IEBAIHN0YXRpYyB2b2lkIGludGVsX3RjX3BvcnRfcmVzZXRfbW9kZShzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKPiAgCQkgICAgICB0Y19wb3J0X21vZGVf bmFtZShkaWdfcG9ydC0+dGNfbW9kZSkpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZAo+ICtpbnRl bF90Y19wb3J0X2xpbmtfaW5pdF9yZWZjb3VudChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpk aWdfcG9ydCwKPiArCQkJCSBpbnQgcmVmY291bnQpCj4gK3sKPiArCVdBUk5fT04oZGlnX3BvcnQt PnRjX2xpbmtfcmVmY291bnQpOwo+ICsJZGlnX3BvcnQtPnRjX2xpbmtfcmVmY291bnQgPSByZWZj b3VudDsKPiArfQo+ICsKPiAgdm9pZCBpbnRlbF90Y19wb3J0X3Nhbml0aXplKHN0cnVjdCBpbnRl bF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKPiBAQCAtMzU0 LDExICszNjMsMTMgQEAgdm9pZCBpbnRlbF90Y19wb3J0X3Nhbml0aXplKHN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmRpZ19wb3J0KQo+ICAJCQlEUk1fREVCVUdfRFJJVkVSKCJQb3J0ICVzOiBQ SFkgZGlzY29ubmVjdGVkIHdpdGggJWQgYWN0aXZlIGxpbmsocylcbiIsCj4gIAkJCQkJIHRjX3Bv cnRfbmFtZShkZXZfcHJpdiwgdGNfcG9ydCksCj4gIAkJCQkJIGFjdGl2ZV9saW5rcyk7Cj4gKwkJ aW50ZWxfdGNfcG9ydF9saW5rX2luaXRfcmVmY291bnQoZGlnX3BvcnQsIGFjdGl2ZV9saW5rcyk7 Cj4gKwo+ICAJCWdvdG8gb3V0Owo+ICAJfQo+ICAKPiAgCWlmIChkaWdfcG9ydC0+dGNfbGVnYWN5 X3BvcnQpCj4gLQkJaWNsX3RjX3BoeV9jb25uZWN0KGRpZ19wb3J0KTsKPiArCQlpY2xfdGNfcGh5 X2Nvbm5lY3QoZGlnX3BvcnQsIDEpOwo+ICAKPiAgb3V0Ogo+ICAJRFJNX0RFQlVHX0RSSVZFUigi UG9ydCAlczogc2FuaXRpemUgbW9kZSAoJXMpXG4iLAo+IEBAIC0zODgsMjcgKzM5OSw2MCBAQCBi b29sIGludGVsX3RjX3BvcnRfY29ubmVjdGVkKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRp Z19wb3J0KQo+ICB7Cj4gIAlib29sIGlzX2Nvbm5lY3RlZDsKPiAgCj4gLQltdXRleF9sb2NrKCZk aWdfcG9ydC0+dGNfbG9jayk7Cj4gLQo+IC0JaWYgKGludGVsX3RjX3BvcnRfbmVlZHNfcmVzZXQo ZGlnX3BvcnQpKQo+IC0JCWludGVsX3RjX3BvcnRfcmVzZXRfbW9kZShkaWdfcG9ydCk7Cj4gLQo+ ICsJaW50ZWxfdGNfcG9ydF9sb2NrKGRpZ19wb3J0KTsKPiAgCWlzX2Nvbm5lY3RlZCA9IHRjX3Bv cnRfbGl2ZV9zdGF0dXNfbWFzayhkaWdfcG9ydCkgJgo+ICAJCSAgICAgICBCSVQoZGlnX3BvcnQt PnRjX21vZGUpOwo+IC0KPiAtCW11dGV4X3VubG9jaygmZGlnX3BvcnQtPnRjX2xvY2spOwo+ICsJ aW50ZWxfdGNfcG9ydF91bmxvY2soZGlnX3BvcnQpOwo+ICAKPiAgCXJldHVybiBpc19jb25uZWN0 ZWQ7Cj4gIH0KPiAgCj4gLXZvaWQgaW50ZWxfdGNfcG9ydF9sb2NrKHN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmRpZ19wb3J0KQo+ICtzdGF0aWMgdm9pZCBfX2ludGVsX3RjX3BvcnRfbG9jayhz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCwKPiArCQkJCSBpbnQgcmVxdWlyZWRf bGFuZXMpCj4gIHsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwo+ICsJaW50ZWxfd2FrZXJlZl90IHdha2VyZWY7 Cj4gKwo+ICsJd2FrZXJlZiA9IGludGVsX2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LCBQT1dF Ul9ET01BSU5fRElTUExBWV9DT1JFKTsKPiArCj4gIAltdXRleF9sb2NrKCZkaWdfcG9ydC0+dGNf bG9jayk7Cj4gLQkvKiBUT0RPOiByZXNldCB0aGUgVHlwZUMgcG9ydCBtb2RlIGlmIG5lZWRlZCAq Lwo+ICsKPiArCWlmICghZGlnX3BvcnQtPnRjX2xpbmtfcmVmY291bnQgJiYKPiArCSAgICBpbnRl bF90Y19wb3J0X25lZWRzX3Jlc2V0KGRpZ19wb3J0KSkKPiArCQlpbnRlbF90Y19wb3J0X3Jlc2V0 X21vZGUoZGlnX3BvcnQsIHJlcXVpcmVkX2xhbmVzKTsKPiArCj4gKwlXQVJOX09OKGRpZ19wb3J0 LT50Y19sb2NrX3dha2VyZWYpOwo+ICsJZGlnX3BvcnQtPnRjX2xvY2tfd2FrZXJlZiA9IHdha2Vy ZWY7Cj4gK30KPiArCj4gK3ZvaWQgaW50ZWxfdGNfcG9ydF9sb2NrKHN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmRpZ19wb3J0KQo+ICt7Cj4gKwlfX2ludGVsX3RjX3BvcnRfbG9jayhkaWdfcG9y dCwgMSk7Cj4gIH0KPiAgCj4gIHZvaWQgaW50ZWxfdGNfcG9ydF91bmxvY2soc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCj4gIHsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOwo+ICsJaW50ZWxf d2FrZXJlZl90IHdha2VyZWYgPSBmZXRjaF9hbmRfemVybygmZGlnX3BvcnQtPnRjX2xvY2tfd2Fr ZXJlZik7Cj4gKwo+ICsJbXV0ZXhfdW5sb2NrKCZkaWdfcG9ydC0+dGNfbG9jayk7Cj4gKwo+ICsJ aW50ZWxfZGlzcGxheV9wb3dlcl9wdXRfYXN5bmMoZGV2X3ByaXYsIFBPV0VSX0RPTUFJTl9ESVNQ TEFZX0NPUkUsCj4gKwkJCQkgICAgICB3YWtlcmVmKTsKPiArfQo+ICsKPiArdm9pZCBpbnRlbF90 Y19wb3J0X2dldF9saW5rKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0LAo+ICsJ CQkgICAgaW50IHJlcXVpcmVkX2xhbmVzKQo+ICt7Cj4gKwlfX2ludGVsX3RjX3BvcnRfbG9jayhk aWdfcG9ydCwgcmVxdWlyZWRfbGFuZXMpOwo+ICsJZGlnX3BvcnQtPnRjX2xpbmtfcmVmY291bnQr KzsKPiArCWludGVsX3RjX3BvcnRfdW5sb2NrKGRpZ19wb3J0KTsKPiArfQo+ICsKPiArdm9pZCBp bnRlbF90Y19wb3J0X3B1dF9saW5rKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0 KQo+ICt7Cj4gKwltdXRleF9sb2NrKCZkaWdfcG9ydC0+dGNfbG9jayk7Cj4gKwlkaWdfcG9ydC0+ dGNfbGlua19yZWZjb3VudC0tOwo+ICAJbXV0ZXhfdW5sb2NrKCZkaWdfcG9ydC0+dGNfbG9jayk7 Cj4gIH0KPiAgCj4gQEAgLTQxNyw0ICs0NjEsNSBAQCBpbnRlbF90Y19wb3J0X2luaXQoc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQsIGJvb2wgaXNfbGVnYWN5KQo+ICB7Cj4gIAlt dXRleF9pbml0KCZkaWdfcG9ydC0+dGNfbG9jayk7Cj4gIAlkaWdfcG9ydC0+dGNfbGVnYWN5X3Bv cnQgPSBpc19sZWdhY3k7Cj4gKwlkaWdfcG9ydC0+dGNfbGlua19yZWZjb3VudCA9IDA7Cj4gIH0K PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdGMuaCBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3RjLmgKPiBpbmRleCA5MWM2ZTc0NTljYzkuLmMxODcwYWNmNjUx NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90Yy5oCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdGMuaAo+IEBAIC0xNCw2ICsxNCw5IEBAIGludCBp bnRlbF90Y19wb3J0X2ZpYV9tYXhfbGFuZV9jb3VudChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0 ICpkaWdfcG9ydCk7Cj4gIHZvaWQgaW50ZWxfdGNfcG9ydF9zYW5pdGl6ZShzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCk7Cj4gIHZvaWQgaW50ZWxfdGNfcG9ydF9sb2NrKHN0cnVj dCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KTsKPiAgdm9pZCBpbnRlbF90Y19wb3J0X3Vu bG9jayhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCk7Cj4gK3ZvaWQgaW50ZWxf dGNfcG9ydF9nZXRfbGluayhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCwKPiAr CQkJICAgIGludCByZXF1aXJlZF9sYW5lcyk7Cj4gK3ZvaWQgaW50ZWxfdGNfcG9ydF9wdXRfbGlu ayhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCk7Cj4gIAo+ICB2b2lkIGludGVs X3RjX3BvcnRfaW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCwgYm9vbCBp c19sZWdhY3kpOwo+ICAKPiAtLSAKPiAyLjE3LjEKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4