From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v2 20/23] drm/i915: Keep the TypeC port mode fixed when the port is active Date: Tue, 25 Jun 2019 17:01:29 +0300 Message-ID: <20190625140129.GI5942@intel.com> References: <20190620140600.11357-1-imre.deak@intel.com> <20190620140600.11357-21-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3A73D6E10E for ; Tue, 25 Jun 2019 14:01:33 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190620140600.11357-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 T24gVGh1LCBKdW4gMjAsIDIwMTkgYXQgMDU6MDU6NTdQTSArMDMwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IFRoZSBUeXBlQyBwb3J0IG1vZGUgbmVlZHMgdG8gc3RheSBmaXhlZCB3aGVuZXZlciB0aGUg cG9ydCBpcyBhY3RpdmUuIERvCj4gdGhhdCBieSBpbnRyb2R1Y2luZyBhIHRjX2xpbmtfcmVmY291 bnQgdG8gYWNjb3VudCBmb3IgYWN0aXZlIHBvcnRzLAo+IGF2b2lkaW5nIGNoYW5naW5nIHRoZSBw b3J0IG1vZGUgaWYgYSByZWZlcmVuY2UgaXMgaGVsZC4KPiAKPiBEdXJpbmcgdGhlIG1vZGVzZXQg Y29tbWl0IHBoYXNlIHdlIGFsc28gaGF2ZSB0byByZXNldCB0aGUgcG9ydCBtb2RlIGFuZAo+IHVw ZGF0ZSB0aGUgYWN0aXZlIFBMTCByZWZsZWN0aW5nIHRoZSBuZXcgcG9ydCBtb2RlLiBXZSBjYW4g ZG8gdGhpcyBvbmx5Cj4gb25jZSB0aGUgcG9ydCBhbmQgaXRzIG9sZCBQTEwgaGFzIGJlZW4gYWxy ZWFkeSBkaXNhYmxlZC4gQWRkIHRoZSBuZXcKPiBlbmNvZGVyIHVwZGF0ZV9wcmVwYXJlL2NvbXBs ZXRlIGhvb2tzIHRoYXQgYXJlIGNhbGxlZCBhcm91bmQgdGhlIHdob2xlCj4gZW5hYmxpbmcgc2Vx dWVuY2UuIFRoZSBUeXBlQyBzcGVjaWZpYyBob29rcyBvZiB0aGVzZSB3aWxsIHJlc2V0IHRoZSBw b3J0Cj4gbW9kZSwgdXBkYXRlIHRoZSBhY3RpdmUgUExMIGlmIHRoZSBwb3J0IHdpbGwgYmUgYWN0 aXZlIGFuZCBlbnN1cmUgdGhhdAo+IHRoZSBwb3J0IG1vZGUgd2lsbCBzdGF5IGZpeGVkIGZvciB0 aGUgZHVyYXRpb24gb2YgdGhlIHdob2xlIGVuYWJsaW5nCj4gc2VxdWVuY2UgYnkgaG9sZGluZyBh IHRjX2xpbmtfcmVmY291bnQuCj4gCj4gRHVyaW5nIHRoZSBwb3J0IGVuYWJsaW5nLCB0aGUgcHJl X3BsbF9lbmFibGUvcG9zdF9wbGxfZGlzYWJsZSBob29rcyB3aWxsCj4gdGFrZS9yZWxlYXNlIGEg dGNfbGlua19yZWZjb3VudCB0byBlbnN1cmUgdGhlIHBvcnQgbW9kZSBzdGF5cyBmaXhlZAo+IHdo aWxlIHRoZSBwb3J0IGlzIGFjdGl2ZS4KPiAKPiBDaGFuZ2luZyB0aGUgcG9ydCBtb2RlIHNob3Vs ZCBhbHNvIGJlIGF2b2lkZWQgZHVyaW5nIGNvbm5lY3RvciBkZXRlY3Rpb24KPiBhbmQgQVVYIHRy YW5zZmVycyBpZiB0aGUgcG9ydCBpcyBhY3RpdmUsIHdlJ2xsIGRvIHRoYXQgYnkgY2hlY2tpbmcg dGhlCj4gcG9ydCdzIHRjX2xpbmtfcmVmY291bnQuCj4gCj4gV2hlbiByZXNldHRpbmcgdGhlIHBv cnQgbW9kZSB3ZSBhbHNvIGhhdmUgdG8gdGFrZSBpbnRvIGFjY291bnQgdGhlCj4gbWF4aW11bSBs YW5lcyBwcm92aWRlZCBieSB0aGUgRklBLiBJdCdzIGd1YXJhbnRlZWQgdG8gYmUgNCBpbiBUQlQt YWx0Cj4gYW5kIGxlZ2FjeSBtb2RlcywgYnV0IHRoZXJlIG1heSBiZSBsZXNzIGxhbmVzIGF2YWls YWJsZSBpbiBEUC1hbHQgbW9kZSwKPiBpbiB3aGljaCBjYXNlIHdlIGhhdmUgdG8gZmFsbCBiYWNr IHRvIFRCVC1hbHQgbW9kZS4KPiAKPiBXaGlsZSBhdCBpdCBhbHNvIHVwZGF0ZSBpY2xfdGNfcGh5 X2Nvbm5lY3QoKSdzIGNvZGUgY29tbWVudCwgcmVmbGVjdGluZwo+IHRoZSBjdXJyZW50IHdheSBv ZiBzd2l0Y2hpbmcgdGhlIHBvcnQgbW9kZS4KPiAKPiB2MjoKPiAtIEFkZCB0aGUgdXBkYXRlX3By ZXBhcmUvY29tcGxldGUgaG9va3MgdG8gdGhlIGVuY29kZXIgaW5zdGVhZCBvZiB0aGUKPiAgIGNv bm5lY3Rvci4gKFZpbGxlKQo+IC0gU2ltcGxpZnkgaW50ZWxfY29ubmVjdG9yX25lZWRzX21vZGVz ZXQoKSBieSByZW1vdmluZyByZWR1bmRhbnQgaWYuCj4gICAoVmlsbGUpCj4gCj4gQ2M6IFZpbGxl IFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gQ2M6IERhbmllbCBW ZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxt YWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogSW1yZSBE ZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgo+IC0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2RkaS5jICAgICAgfCA0MSArKysrKysrLQo+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyAgfCA5NiArKysrKysrKysrKysrKysrKystCj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYyB8IDI4ICsrKysr LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmggfCAgMyAr Cj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuYyAgICAgICB8IDk0ICsr KysrKysrKysrKystLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Rj LmggICAgICAgfCAgMyArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICAg ICAgICAgICB8ICA4ICsrCj4gIDcgZmlsZXMgY2hhbmdlZCwgMjQzIGluc2VydGlvbnMoKyksIDMw IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGku Ywo+IGluZGV4IDBjNWJmYmQ2NmIxOS4uZGRiYzQ5NDRiNGUwIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCj4gQEAgLTM2MjMsNiArMzYyMywzMCBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9kZGlfc2V0X2ZpYV9sYW5lX2NvdW50KHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ICAJSTkxNV9XUklURShQT1JUX1RYX0RGTEVYRFBNTEUxLCB2YWwpOwo+ICB9 Cj4gIAo+ICt2b2lkCj4gK2ludGVsX2RkaV91cGRhdGVfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSwKPiArCQkJIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ ICsJCQkgc3RydWN0IGludGVsX2NydGMgKmNydGMpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlID0KPiArCQljcnRjID8gaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0 Y19zdGF0ZShzdGF0ZSwgY3J0YykgOiBOVUxMOwo+ICsJaW50IHJlcXVpcmVkX2xhbmVzID0gY3J0 Y19zdGF0ZSA/IGNydGNfc3RhdGUtPmxhbmVfY291bnQgOiAxOwo+ICsKPiArCVdBUk5fT04oY3J0 YyAmJiBjcnRjLT5hY3RpdmUpOwo+ICsKPiArCWludGVsX3RjX3BvcnRfZ2V0X2xpbmsoZW5jX3Rv X2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKSwgcmVxdWlyZWRfbGFuZXMpOwo+ICsJaWYgKGNydGNf c3RhdGUgJiYgY3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpCj4gKwkJaW50ZWxfdXBkYXRlX2FjdGl2 ZV9kcGxsKHN0YXRlLCBjcnRjLCBlbmNvZGVyKTsKPiArfQo+ICsKPiArdm9pZAo+ICtpbnRlbF9k ZGlfdXBkYXRlX2NvbXBsZXRlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ICsJ CQkgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICsJCQkgIHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjKQo+ICt7Cj4gKwlpbnRlbF90Y19wb3J0X3B1dF9saW5rKGVuY190b19kaWdfcG9y dCgmZW5jb2Rlci0+YmFzZSkpOwo+ICt9Cj4gKwoKWWVhaCwgbG9va3MgcXVpdGUgYSBiaXQgY2xl YW5lciB0aGFuIHRoZSB2MS4KClJldmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5 cmphbGFAbGludXguaW50ZWwuY29tPgoKPiAgc3RhdGljIHZvaWQKPiAgaW50ZWxfZGRpX3ByZV9w bGxfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJCQkgY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gQEAgLTM2MzAsMTAgKzM2NTQsMTMg QEAgaW50ZWxfZGRpX3ByZV9wbGxfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy LAo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVu Y29kZXItPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0 ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKPiArCWJvb2wgaXNfdGNfcG9ydCA9 IGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpOwo+ICAJZW51bSBwb3J0 IHBvcnQgPSBlbmNvZGVyLT5wb3J0Owo+ICAKPiAtCWlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNv ZGVyKGNydGNfc3RhdGUpIHx8Cj4gLQkgICAgaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgZW5j b2Rlci0+cG9ydCkpCj4gKwlpZiAoaXNfdGNfcG9ydCkKPiArCQlpbnRlbF90Y19wb3J0X2dldF9s aW5rKGRpZ19wb3J0LCBjcnRjX3N0YXRlLT5sYW5lX2NvdW50KTsKPiArCj4gKwlpZiAoaW50ZWxf Y3J0Y19oYXNfZHBfZW5jb2RlcihjcnRjX3N0YXRlKSB8fCBpc190Y19wb3J0KQo+ICAJCWludGVs X2Rpc3BsYXlfcG93ZXJfZ2V0KGRldl9wcml2LAo+ICAJCQkJCWludGVsX2RkaV9tYWluX2xpbmtf YXV4X2RvbWFpbihkaWdfcG9ydCkpOwo+ICAKPiBAQCAtMzY1OCwxMSArMzY4NSwxNCBAQCBpbnRl bF9kZGlfcG9zdF9wbGxfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAg ewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVy LT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVu Y190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7Cj4gKwlib29sIGlzX3RjX3BvcnQgPSBpbnRl bF9wb3J0X2lzX3RjKGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KTsKPiAgCj4gLQlpZiAoaW50ZWxf Y3J0Y19oYXNfZHBfZW5jb2RlcihjcnRjX3N0YXRlKSB8fAo+IC0JICAgIGludGVsX3BvcnRfaXNf dGMoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpKQo+ICsJaWYgKGludGVsX2NydGNfaGFzX2RwX2Vu Y29kZXIoY3J0Y19zdGF0ZSkgfHwgaXNfdGNfcG9ydCkKPiAgCQlpbnRlbF9kaXNwbGF5X3Bvd2Vy X3B1dF91bmNoZWNrZWQoZGV2X3ByaXYsCj4gIAkJCQkJCSAgaW50ZWxfZGRpX21haW5fbGlua19h dXhfZG9tYWluKGRpZ19wb3J0KSk7Cj4gKwo+ICsJaWYgKGlzX3RjX3BvcnQpCj4gKwkJaW50ZWxf dGNfcG9ydF9wdXRfbGluayhkaWdfcG9ydCk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB2b2lkIGludGVs X2RkaV9wcmVwYXJlX2xpbmtfcmV0cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+IEBA IC00MjU2LDYgKzQyODYsOSBAQCB2b2lkIGludGVsX2RkaV9pbml0KHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCj4gIAkJCQkgIXBvcnRfaW5mby0+c3Vw cG9ydHNfdGJ0Owo+ICAKPiAgCQlpbnRlbF90Y19wb3J0X2luaXQoaW50ZWxfZGlnX3BvcnQsIGlz X2xlZ2FjeSk7Cj4gKwo+ICsJCWludGVsX2VuY29kZXItPnVwZGF0ZV9wcmVwYXJlID0gaW50ZWxf ZGRpX3VwZGF0ZV9wcmVwYXJlOwo+ICsJCWludGVsX2VuY29kZXItPnVwZGF0ZV9jb21wbGV0ZSA9 IGludGVsX2RkaV91cGRhdGVfY29tcGxldGU7Cj4gIAl9Cj4gIAo+ICAJc3dpdGNoIChwb3J0KSB7 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxh eS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPiBpbmRl eCA5M2UzZjU2OGQ3ZGIuLjY3OTMwN2E4NDA2MiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCj4gQEAgLTYwMzcsNiArNjAzNyw5NCBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9jcnRjX2Rpc2FibGVfcGxhbmVzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKnN0YXRlLAo+ICAJaW50ZWxfZnJvbnRidWZmZXJfZmxpcChkZXZfcHJpdiwgZmJfYml0cyk7 Cj4gIH0KPiAgCj4gKy8qCj4gKyAqIGludGVsX2Nvbm5lY3Rvcl9wcmltYXJ5X2VuY29kZXIgLSBn ZXQgdGhlIHByaW1hcnkgZW5jb2RlciBmb3IgYSBjb25uZWN0b3IKPiArICogQGNvbm5lY3Rvcjog Y29ubmVjdG9yIGZvciB3aGljaCB0byByZXR1cm4gdGhlIGVuY29kZXIKPiArICoKPiArICogUmV0 dXJucyB0aGUgcHJpbWFyeSBlbmNvZGVyIGZvciBhIGNvbm5lY3Rvci4gVGhlcmUgaXMgYSAxOjEg bWFwcGluZyBmcm9tCj4gKyAqIGFsbCBjb25uZWN0b3JzIHRvIHRoZWlyIGVuY29kZXIsIGV4Y2Vw dCBmb3IgRFAtTVNUIGNvbm5lY3RvcnMgd2hpY2ggaGF2ZQo+ICsgKiBib3RoIGEgdmlydHVhbCBh bmQgYSBwcmltYXJ5IGVuY29kZXIuIFRoZXNlIERQLU1TVCBwcmltYXJ5IGVuY29kZXJzIGNhbiBi ZQo+ICsgKiBwb2ludGVkIHRvIGJ5IGFzIG1hbnkgRFAtTVNUIGNvbm5lY3RvcnMgYXMgdGhlcmUg YXJlIHBpcGVzLgo+ICsgKi8KPiArc3RhdGljIHN0cnVjdCBpbnRlbF9lbmNvZGVyICoKPiAraW50 ZWxfY29ubmVjdG9yX3ByaW1hcnlfZW5jb2RlcihzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u ZWN0b3IpCj4gK3sKPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwo+ICsKPiArCWlm IChjb25uZWN0b3ItPm1zdF9wb3J0KQo+ICsJCXJldHVybiAmZHBfdG9fZGlnX3BvcnQoY29ubmVj dG9yLT5tc3RfcG9ydCktPmJhc2U7Cj4gKwo+ICsJZW5jb2RlciA9IGludGVsX2F0dGFjaGVkX2Vu Y29kZXIoJmNvbm5lY3Rvci0+YmFzZSk7Cj4gKwlXQVJOX09OKCFlbmNvZGVyKTsKPiArCj4gKwly ZXR1cm4gZW5jb2RlcjsKPiArfQo+ICsKPiArc3RhdGljIGJvb2wKPiAraW50ZWxfY29ubmVjdG9y X25lZWRzX21vZGVzZXQoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gKwkJCSAg ICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZSwKPiAr CQkJICAgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5ld19jb25uX3N0YXRl KQo+ICt7Cj4gKwlyZXR1cm4gbmV3X2Nvbm5fc3RhdGUtPmNydGMgIT0gb2xkX2Nvbm5fc3RhdGUt PmNydGMgfHwKPiArCSAgICAgICAobmV3X2Nvbm5fc3RhdGUtPmNydGMgJiYKPiArCQluZWVkc19t b2Rlc2V0KGRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKCZzdGF0ZS0+YmFzZSwKPiArCQkJ CQkJCSAgICBuZXdfY29ubl9zdGF0ZS0+Y3J0YykpKTsKPiArfQo+ICsKPiArc3RhdGljIHZvaWQg aW50ZWxfZW5jb2RlcnNfdXBkYXRlX3ByZXBhcmUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAq c3RhdGUpCj4gK3sKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0 ZTsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfY29ubl9zdGF0ZTsKPiArCXN0 cnVjdCBkcm1fY29ubmVjdG9yICpjb25uOwo+ICsJaW50IGk7Cj4gKwo+ICsJZm9yX2VhY2hfb2xk bmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZSgmc3RhdGUtPmJhc2UsIGNvbm4sCj4gKwkJCQkJICAgb2xk X2Nvbm5fc3RhdGUsIG5ld19jb25uX3N0YXRlLCBpKSB7Cj4gKwkJc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXI7Cj4gKwkJc3RydWN0IGludGVsX2NydGMgKmNydGM7Cj4gKwo+ICsJCWlmICgh aW50ZWxfY29ubmVjdG9yX25lZWRzX21vZGVzZXQoc3RhdGUsCj4gKwkJCQkJCSAgIG9sZF9jb25u X3N0YXRlLAo+ICsJCQkJCQkgICBuZXdfY29ubl9zdGF0ZSkpCj4gKwkJCWNvbnRpbnVlOwo+ICsK PiArCQllbmNvZGVyID0gaW50ZWxfY29ubmVjdG9yX3ByaW1hcnlfZW5jb2Rlcih0b19pbnRlbF9j b25uZWN0b3IoY29ubikpOwo+ICsJCWlmICghZW5jb2Rlci0+dXBkYXRlX3ByZXBhcmUpCj4gKwkJ CWNvbnRpbnVlOwo+ICsKPiArCQljcnRjID0gbmV3X2Nvbm5fc3RhdGUtPmNydGMgPwo+ICsJCQl0 b19pbnRlbF9jcnRjKG5ld19jb25uX3N0YXRlLT5jcnRjKSA6IE5VTEw7Cj4gKwkJZW5jb2Rlci0+ dXBkYXRlX3ByZXBhcmUoc3RhdGUsIGVuY29kZXIsIGNydGMpOwo+ICsJfQo+ICt9Cj4gKwo+ICtz dGF0aWMgdm9pZCBpbnRlbF9lbmNvZGVyc191cGRhdGVfY29tcGxldGUoc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqc3RhdGUpCj4gK3sKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpv bGRfY29ubl9zdGF0ZTsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpuZXdfY29ubl9z dGF0ZTsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uOwo+ICsJaW50IGk7Cj4gKwo+ICsJ Zm9yX2VhY2hfb2xkbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZSgmc3RhdGUtPmJhc2UsIGNvbm4sCj4g KwkJCQkJICAgb2xkX2Nvbm5fc3RhdGUsIG5ld19jb25uX3N0YXRlLCBpKSB7Cj4gKwkJc3RydWN0 IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gKwkJc3RydWN0IGludGVsX2NydGMgKmNydGM7Cj4g Kwo+ICsJCWlmICghaW50ZWxfY29ubmVjdG9yX25lZWRzX21vZGVzZXQoc3RhdGUsCj4gKwkJCQkJ CSAgIG9sZF9jb25uX3N0YXRlLAo+ICsJCQkJCQkgICBuZXdfY29ubl9zdGF0ZSkpCj4gKwkJCWNv bnRpbnVlOwo+ICsKPiArCQllbmNvZGVyID0gaW50ZWxfY29ubmVjdG9yX3ByaW1hcnlfZW5jb2Rl cih0b19pbnRlbF9jb25uZWN0b3IoY29ubikpOwo+ICsJCWlmICghZW5jb2Rlci0+dXBkYXRlX2Nv bXBsZXRlKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJY3J0YyA9IG5ld19jb25uX3N0YXRlLT5j cnRjID8KPiArCQkJdG9faW50ZWxfY3J0YyhuZXdfY29ubl9zdGF0ZS0+Y3J0YykgOiBOVUxMOwo+ ICsJCWVuY29kZXItPnVwZGF0ZV9jb21wbGV0ZShzdGF0ZSwgZW5jb2RlciwgY3J0Yyk7Cj4gKwl9 Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lkIGludGVsX2VuY29kZXJzX3ByZV9wbGxfZW5hYmxlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YywKPiAgCQkJCQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAo+ICAJCQkJCSAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkK PiBAQCAtMTM4OTgsMTQgKzEzOTg2LDIwIEBAIHN0YXRpYyB2b2lkIGludGVsX2F0b21pY19jb21t aXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIAkJfQo+ICAJfQo+ICAK PiArCWlmIChpbnRlbF9zdGF0ZS0+bW9kZXNldCkKPiArCQlpbnRlbF9lbmNvZGVyc191cGRhdGVf cHJlcGFyZShpbnRlbF9zdGF0ZSk7Cj4gKwo+ICAJLyogTm93IGVuYWJsZSB0aGUgY2xvY2tzLCBw bGFuZSwgcGlwZSwgYW5kIGNvbm5lY3RvcnMgdGhhdCB3ZSBzZXQgdXAuICovCj4gIAlkZXZfcHJp di0+ZGlzcGxheS51cGRhdGVfY3J0Y3Moc3RhdGUpOwo+ICAKPiAtCWlmIChpbnRlbF9zdGF0ZS0+ bW9kZXNldCkKPiArCWlmIChpbnRlbF9zdGF0ZS0+bW9kZXNldCkgewo+ICsJCWludGVsX2VuY29k ZXJzX3VwZGF0ZV9jb21wbGV0ZShpbnRlbF9zdGF0ZSk7Cj4gKwo+ICAJCWludGVsX3NldF9jZGNs a19wb3N0X3BsYW5lX3VwZGF0ZShkZXZfcHJpdiwKPiAgCQkJCQkJICAmaW50ZWxfc3RhdGUtPmNk Y2xrLmFjdHVhbCwKPiAgCQkJCQkJICAmZGV2X3ByaXYtPmNkY2xrLmFjdHVhbCwKPiAgCQkJCQkJ ICBpbnRlbF9zdGF0ZS0+Y2RjbGsucGlwZSk7Cj4gKwl9Cj4gIAo+ICAJLyogRklYTUU6IFdlIHNo b3VsZCBjYWxsIGRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9od19kb25lKCkgaGVyZQo+ICAJICog YWxyZWFkeSwgYnV0IHN0aWxsIG5lZWQgdGhlIHN0YXRlIGZvciB0aGUgZGVsYXllZCBvcHRpbWl6 YXRpb24uIFRvCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfZHBsbF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9t Z3IuYwo+IGluZGV4IGE5OTZhM2ZhZDQ4Yy4uY2JiOWFhNDU4ZjE5IDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYwo+IEBAIC0xOTM5LDcgKzE5 MzksOSBAQCBzdHJ1Y3QgaW50ZWxfZHBsbF9tZ3Igewo+ICAJCQkgIHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKTsKPiAgCXZvaWQgKCpwdXRfZHBsbHMpKHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlLAo+ICAJCQkgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKPiAtCj4gKwl2 b2lkICgqdXBkYXRlX2FjdGl2ZV9kcGxsKShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0 ZSwKPiArCQkJCSAgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICsJCQkJICAgc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIpOwo+ICAJdm9pZCAoKmR1bXBfaHdfc3RhdGUpKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCQkJICAgICAgY29uc3Qgc3RydWN0IGludGVs X2RwbGxfaHdfc3RhdGUgKmh3X3N0YXRlKTsKPiAgfTsKPiBAQCAtMzQwMCw2ICszNDAyLDcgQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciBpY2xfcGxsX21nciA9IHsKPiAgCS5k cGxsX2luZm8gPSBpY2xfcGxscywKPiAgCS5nZXRfZHBsbHMgPSBpY2xfZ2V0X2RwbGxzLAo+ICAJ LnB1dF9kcGxscyA9IGljbF9wdXRfZHBsbHMsCj4gKwkudXBkYXRlX2FjdGl2ZV9kcGxsID0gaWNs X3VwZGF0ZV9hY3RpdmVfZHBsbCwKPiAgCS5kdW1wX2h3X3N0YXRlID0gaWNsX2R1bXBfaHdfc3Rh dGUsCj4gIH07Cj4gIAo+IEBAIC0zNTI0LDYgKzM1MjcsMjkgQEAgdm9pZCBpbnRlbF9yZWxlYXNl X3NoYXJlZF9kcGxscyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKPiAgCWRwbGxf bWdyLT5wdXRfZHBsbHMoc3RhdGUsIGNydGMpOwo+ICB9Cj4gIAo+ICsvKioKPiArICogaW50ZWxf dXBkYXRlX2FjdGl2ZV9kcGxsIC0gdXBkYXRlIHRoZSBhY3RpdmUgRFBMTCBmb3IgYSBDUlRDL2Vu Y29kZXIKPiArICogQHN0YXRlOiBhdG9taWMgc3RhdGUKPiArICogQGNydGM6IHRoZSBDUlRDIGZv ciB3aGljaCB0byB1cGRhdGUgdGhlIGFjdGl2ZSBEUExMCj4gKyAqIEBlbmNvZGVyOiBlbmNvZGVy IGRldGVybWluaW5nIHRoZSB0eXBlIG9mIHBvcnQgRFBMTAo+ICsgKgo+ICsgKiBVcGRhdGUgdGhl IGFjdGl2ZSBEUExMIGZvciB0aGUgZ2l2ZW4gQGNydGMvQGVuY29kZXIgaW4gQGNydGMncyBhdG9t aWMgc3RhdGUsCj4gKyAqIGZyb20gdGhlIHBvcnQgRFBMTHMgcmVzZXJ2ZWQgcHJldmlvdXNseSBi eSBpbnRlbF9yZXNlcnZlX3NoYXJlZF9kcGxscygpLiBUaGUKPiArICogRFBMTCBzZWxlY3RlZCB3 aWxsIGJlIGJhc2VkIG9uIHRoZSBjdXJyZW50IG1vZGUgb2YgdGhlIGVuY29kZXIncyBwb3J0Lgo+ ICsgKi8KPiArdm9pZCBpbnRlbF91cGRhdGVfYWN0aXZlX2RwbGwoc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSAqc3RhdGUsCj4gKwkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAo+ICsJ CQkgICAgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiArewo+ICsJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4g Kwljb25zdCBzdHJ1Y3QgaW50ZWxfZHBsbF9tZ3IgKmRwbGxfbWdyID0gZGV2X3ByaXYtPmRwbGxf bWdyOwo+ICsKPiArCWlmIChXQVJOX09OKCFkcGxsX21ncikpCj4gKwkJcmV0dXJuOwo+ICsKPiAr CWRwbGxfbWdyLT51cGRhdGVfYWN0aXZlX2RwbGwoc3RhdGUsIGNydGMsIGVuY29kZXIpOwo+ICt9 Cj4gKwo+ICAvKioKPiAgICogaW50ZWxfc2hhcmVkX2RwbGxfZHVtcF9od19zdGF0ZSAtIHdyaXRl IGh3X3N0YXRlIHRvIGRtZXNnCj4gICAqIEBkZXZfcHJpdjogaTkxNSBkcm0gZGV2aWNlCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuaAo+IGluZGV4IDU3 OWYyY2VhZmJhMy4uMTY2OGY4MTE2OTA4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuaAo+IEBAIC0zNDYsNiArMzQ2LDkgQEAgdm9pZCBpbnRl bF9yZWxlYXNlX3NoYXJlZF9kcGxscyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwK PiAgCQkJCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKTsKPiAgdm9pZCBpY2xfc2V0X2FjdGl2ZV9w b3J0X2RwbGwoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAkJCSAgICAg IGVudW0gaWNsX3BvcnRfZHBsbF9pZCBwb3J0X2RwbGxfaWQpOwo+ICt2b2lkIGludGVsX3VwZGF0 ZV9hY3RpdmVfZHBsbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKPiArCQkJICAg ICAgc3RydWN0IGludGVsX2NydGMgKmNydGMsCj4gKwkJCSAgICAgIHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyKTsKPiAgdm9pZCBpbnRlbF9wcmVwYXJlX3NoYXJlZF9kcGxsKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPiAgdm9pZCBpbnRlbF9lbmFibGVf c2hhcmVkX2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwo+ ICB2b2lkIGludGVsX2Rpc2FibGVfc2hhcmVkX2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX3RjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Rj LmMKPiBpbmRleCA3MTkwYjU3Mzc2ZDYuLmM4OTA0OTExZTg0MSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3RjLmMKPiArKysgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX3RjLmMKPiBAQCAtMTcyLDE5ICsxNzIsMTIgQEAgc3RhdGlj IGJvb2wgaWNsX3RjX3BoeV9pc19pbl9zYWZlX21vZGUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqZGlnX3BvcnQpCj4gICAqIGRpc3BsYXksIFVTQiwgZXRjLiBBcyBhIHJlc3VsdCwgaGFuZHNo YWtpbmcgdGhyb3VnaCBGSUEgaXMgcmVxdWlyZWQgYXJvdW5kCj4gICAqIGNvbm5lY3QgYW5kIGRp c2Nvbm5lY3QgdG8gY2xlYW5seSB0cmFuc2ZlciBvd25lcnNoaXAgd2l0aCB0aGUgY29udHJvbGxl ciBhbmQKPiAgICogc2V0IHRoZSB0eXBlLUMgcG93ZXIgc3RhdGUuCj4gLSAqCj4gLSAqIFdlIGNv dWxkIG9wdCB0byBvbmx5IGRvIHRoZSBjb25uZWN0IGZsb3cgd2hlbiB3ZSBhY3R1YWxseSB0cnkg dG8gdXNlIHRoZSBBVVgKPiAtICogY2hhbm5lbHMgb3IgZG8gYSBtb2Rlc2V0LCB0aGVuIGltbWVk aWF0ZWx5IHJ1biB0aGUgZGlzY29ubmVjdCBmbG93IGFmdGVyCj4gLSAqIHVzYWdlLCBidXQgdGhl cmUgYXJlIHNvbWUgaW1wbGljYXRpb25zIG9uIHRoaXMgZm9yIGEgZHluYW1pYyBlbnZpcm9ubWVu dDoKPiAtICogdGhpbmdzIG1heSBnbyBhd2F5IG9yIGNoYW5nZSBiZWhpbmQgb3VyIGJhY2tzLiBT byBmb3Igbm93IG91ciBkcml2ZXIgaXMKPiAtICogYWx3YXlzIHRyeWluZyB0byBhY3F1aXJlIG93 bmVyc2hpcCBvZiB0aGUgY29udHJvbGxlciBhcyBzb29uIGFzIGl0IGdldHMgYW4KPiAtICogaW50 ZXJydXB0IChvciBwb2xscyBzdGF0ZSBhbmQgc2VlcyBhIHBvcnQgaXMgY29ubmVjdGVkKSBhbmQg b25seSBnaXZlcyBpdAo+IC0gKiBiYWNrIHdoZW4gaXQgc2VlcyBhIGRpc2Nvbm5lY3QuIEltcGxl bWVudGF0aW9uIG9mIGEgbW9yZSBmaW5lLWdyYWluZWQgbW9kZWwKPiAtICogd2lsbCByZXF1aXJl IGEgbG90IG9mIGNvb3JkaW5hdGlvbiB3aXRoIHVzZXIgc3BhY2UgYW5kIHRob3JvdWdoIHRlc3Rp bmcgZm9yCj4gLSAqIHRoZSBleHRyYSBwb3NzaWJsZSBjYXNlcy4KPiAgICovCj4gLXN0YXRpYyB2 b2lkIGljbF90Y19waHlfY29ubmVjdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9y dCkKPiArc3RhdGljIHZvaWQgaWNsX3RjX3BoeV9jb25uZWN0KHN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmRpZ19wb3J0LAo+ICsJCQkgICAgICAgaW50IHJlcXVpcmVkX2xhbmVzKQo+ICB7Cj4g KwlpbnQgbWF4X2xhbmVzOwo+ICsKPiAgCWlmICghaWNsX3RjX3BoeV9zdGF0dXNfY29tcGxldGUo ZGlnX3BvcnQpKSB7Cj4gIAkJRFJNX0RFQlVHX0tNUygiUG9ydCAlczogUEhZIG5vdCByZWFkeVxu IiwKPiAgCQkJICAgICAgZGlnX3BvcnQtPnRjX3BvcnRfbmFtZSk7Cj4gQEAgLTE5NSw4ICsxODgs OSBAQCBzdGF0aWMgdm9pZCBpY2xfdGNfcGh5X2Nvbm5lY3Qoc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqZGlnX3BvcnQpCj4gIAkgICAgIVdBUk5fT04oZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0 KSkKPiAgCQlnb3RvIG91dF9zZXRfdGJ0X2FsdF9tb2RlOwo+ICAKPiArCW1heF9sYW5lcyA9IGlu dGVsX3RjX3BvcnRfZmlhX21heF9sYW5lX2NvdW50KGRpZ19wb3J0KTsKPiAgCWlmIChkaWdfcG9y dC0+dGNfbGVnYWN5X3BvcnQpIHsKPiAtCQlXQVJOX09OKGludGVsX3RjX3BvcnRfZmlhX21heF9s YW5lX2NvdW50KGRpZ19wb3J0KSAhPSA0KTsKPiArCQlXQVJOX09OKG1heF9sYW5lcyAhPSA0KTsK PiAgCQlkaWdfcG9ydC0+dGNfbW9kZSA9IFRDX1BPUlRfTEVHQUNZOwo+ICAKPiAgCQlyZXR1cm47 Cj4gQEAgLTIxMiw2ICsyMDYsMTMgQEAgc3RhdGljIHZvaWQgaWNsX3RjX3BoeV9jb25uZWN0KHN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQo+ICAJCWdvdG8gb3V0X3NldF9zYWZl X21vZGU7Cj4gIAl9Cj4gIAo+ICsJaWYgKG1heF9sYW5lcyA8IHJlcXVpcmVkX2xhbmVzKSB7Cj4g KwkJRFJNX0RFQlVHX0tNUygiUG9ydCAlczogUEhZIG1heCBsYW5lcyAlZCA8IHJlcXVpcmVkIGxh bmVzICVkXG4iLAo+ICsJCQkgICAgICBkaWdfcG9ydC0+dGNfcG9ydF9uYW1lLAo+ICsJCQkgICAg ICBtYXhfbGFuZXMsIHJlcXVpcmVkX2xhbmVzKTsKPiArCQlnb3RvIG91dF9zZXRfc2FmZV9tb2Rl Owo+ICsJfQo+ICsKPiAgCWRpZ19wb3J0LT50Y19tb2RlID0gVENfUE9SVF9EUF9BTFQ7Cj4gIAo+ ICAJcmV0dXJuOwo+IEBAIC0yOTUsNyArMjk2LDggQEAgaW50ZWxfdGNfcG9ydF9nZXRfdGFyZ2V0 X21vZGUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCj4gIAkJCQkJICBUQ19Q T1JUX1RCVF9BTFQ7Cj4gIH0KPiAgCj4gLXN0YXRpYyB2b2lkIGludGVsX3RjX3BvcnRfcmVzZXRf bW9kZShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKPiArc3RhdGljIHZvaWQg aW50ZWxfdGNfcG9ydF9yZXNldF9tb2RlKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19w b3J0LAo+ICsJCQkJICAgICBpbnQgcmVxdWlyZWRfbGFuZXMpCj4gIHsKPiAgCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYp Owo+ICAJZW51bSB0Y19wb3J0X21vZGUgb2xkX3RjX21vZGUgPSBkaWdfcG9ydC0+dGNfbW9kZTsK PiBAQCAtMzAzLDcgKzMwNSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3RjX3BvcnRfcmVzZXRfbW9k ZShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKPiAgCWludGVsX2Rpc3BsYXlf cG93ZXJfZmx1c2hfd29yayhkZXZfcHJpdik7Cj4gIAo+ICAJaWNsX3RjX3BoeV9kaXNjb25uZWN0 KGRpZ19wb3J0KTsKPiAtCWljbF90Y19waHlfY29ubmVjdChkaWdfcG9ydCk7Cj4gKwlpY2xfdGNf cGh5X2Nvbm5lY3QoZGlnX3BvcnQsIHJlcXVpcmVkX2xhbmVzKTsKPiAgCj4gIAlEUk1fREVCVUdf S01TKCJQb3J0ICVzOiBUQyBwb3J0IG1vZGUgcmVzZXQgKCVzIC0+ICVzKVxuIiwKPiAgCQkgICAg ICBkaWdfcG9ydC0+dGNfcG9ydF9uYW1lLAo+IEBAIC0zMTEsNiArMzEzLDE0IEBAIHN0YXRpYyB2 b2lkIGludGVsX3RjX3BvcnRfcmVzZXRfbW9kZShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpk aWdfcG9ydCkKPiAgCQkgICAgICB0Y19wb3J0X21vZGVfbmFtZShkaWdfcG9ydC0+dGNfbW9kZSkp Owo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZAo+ICtpbnRlbF90Y19wb3J0X2xpbmtfaW5pdF9yZWZj b3VudChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCwKPiArCQkJCSBpbnQgcmVm Y291bnQpCj4gK3sKPiArCVdBUk5fT04oZGlnX3BvcnQtPnRjX2xpbmtfcmVmY291bnQpOwo+ICsJ ZGlnX3BvcnQtPnRjX2xpbmtfcmVmY291bnQgPSByZWZjb3VudDsKPiArfQo+ICsKPiAgdm9pZCBp bnRlbF90Y19wb3J0X3Nhbml0aXplKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0 KQo+ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9ICZkaWdfcG9ydC0+YmFz ZTsKPiBAQCAtMzI4LDExICszMzgsMTMgQEAgdm9pZCBpbnRlbF90Y19wb3J0X3Nhbml0aXplKHN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQo+ICAJCWlmICghaWNsX3RjX3BoeV9p c19jb25uZWN0ZWQoZGlnX3BvcnQpKQo+ICAJCQlEUk1fREVCVUdfS01TKCJQb3J0ICVzOiBQSFkg ZGlzY29ubmVjdGVkIHdpdGggJWQgYWN0aXZlIGxpbmsocylcbiIsCj4gIAkJCQkgICAgICBkaWdf cG9ydC0+dGNfcG9ydF9uYW1lLCBhY3RpdmVfbGlua3MpOwo+ICsJCWludGVsX3RjX3BvcnRfbGlu a19pbml0X3JlZmNvdW50KGRpZ19wb3J0LCBhY3RpdmVfbGlua3MpOwo+ICsKPiAgCQlnb3RvIG91 dDsKPiAgCX0KPiAgCj4gIAlpZiAoZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0KQo+IC0JCWljbF90 Y19waHlfY29ubmVjdChkaWdfcG9ydCk7Cj4gKwkJaWNsX3RjX3BoeV9jb25uZWN0KGRpZ19wb3J0 LCAxKTsKPiAgCj4gIG91dDoKPiAgCURSTV9ERUJVR19LTVMoIlBvcnQgJXM6IHNhbml0aXplIG1v ZGUgKCVzKVxuIiwKPiBAQCAtMzYxLDI3ICszNzMsNjAgQEAgYm9vbCBpbnRlbF90Y19wb3J0X2Nv bm5lY3RlZChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKPiAgewo+ICAJYm9v bCBpc19jb25uZWN0ZWQ7Cj4gIAo+IC0JbXV0ZXhfbG9jaygmZGlnX3BvcnQtPnRjX2xvY2spOwo+ IC0KPiAtCWlmIChpbnRlbF90Y19wb3J0X25lZWRzX3Jlc2V0KGRpZ19wb3J0KSkKPiAtCQlpbnRl bF90Y19wb3J0X3Jlc2V0X21vZGUoZGlnX3BvcnQpOwo+IC0KPiArCWludGVsX3RjX3BvcnRfbG9j ayhkaWdfcG9ydCk7Cj4gIAlpc19jb25uZWN0ZWQgPSB0Y19wb3J0X2xpdmVfc3RhdHVzX21hc2so ZGlnX3BvcnQpICYKPiAgCQkgICAgICAgQklUKGRpZ19wb3J0LT50Y19tb2RlKTsKPiAtCj4gLQlt dXRleF91bmxvY2soJmRpZ19wb3J0LT50Y19sb2NrKTsKPiArCWludGVsX3RjX3BvcnRfdW5sb2Nr KGRpZ19wb3J0KTsKPiAgCj4gIAlyZXR1cm4gaXNfY29ubmVjdGVkOwo+ICB9Cj4gIAo+IC12b2lk IGludGVsX3RjX3BvcnRfbG9jayhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkK PiArc3RhdGljIHZvaWQgX19pbnRlbF90Y19wb3J0X2xvY2soc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqZGlnX3BvcnQsCj4gKwkJCQkgaW50IHJlcXVpcmVkX2xhbmVzKQo+ICB7Cj4gKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRpZ19wb3J0LT5iYXNlLmJh c2UuZGV2KTsKPiArCWludGVsX3dha2VyZWZfdCB3YWtlcmVmOwo+ICsKPiArCXdha2VyZWYgPSBp bnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0RJU1BMQVlfQ09S RSk7Cj4gKwo+ICAJbXV0ZXhfbG9jaygmZGlnX3BvcnQtPnRjX2xvY2spOwo+IC0JLyogVE9ETzog cmVzZXQgdGhlIFR5cGVDIHBvcnQgbW9kZSBpZiBuZWVkZWQgKi8KPiArCj4gKwlpZiAoIWRpZ19w b3J0LT50Y19saW5rX3JlZmNvdW50ICYmCj4gKwkgICAgaW50ZWxfdGNfcG9ydF9uZWVkc19yZXNl dChkaWdfcG9ydCkpCj4gKwkJaW50ZWxfdGNfcG9ydF9yZXNldF9tb2RlKGRpZ19wb3J0LCByZXF1 aXJlZF9sYW5lcyk7Cj4gKwo+ICsJV0FSTl9PTihkaWdfcG9ydC0+dGNfbG9ja193YWtlcmVmKTsK PiArCWRpZ19wb3J0LT50Y19sb2NrX3dha2VyZWYgPSB3YWtlcmVmOwo+ICt9Cj4gKwo+ICt2b2lk IGludGVsX3RjX3BvcnRfbG9jayhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkK PiArewo+ICsJX19pbnRlbF90Y19wb3J0X2xvY2soZGlnX3BvcnQsIDEpOwo+ICB9Cj4gIAo+ICB2 b2lkIGludGVsX3RjX3BvcnRfdW5sb2NrKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19w b3J0KQo+ICB7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKPiArCWludGVsX3dha2VyZWZfdCB3YWtlcmVmID0g ZmV0Y2hfYW5kX3plcm8oJmRpZ19wb3J0LT50Y19sb2NrX3dha2VyZWYpOwo+ICsKPiArCW11dGV4 X3VubG9jaygmZGlnX3BvcnQtPnRjX2xvY2spOwo+ICsKPiArCWludGVsX2Rpc3BsYXlfcG93ZXJf cHV0X2FzeW5jKGRldl9wcml2LCBQT1dFUl9ET01BSU5fRElTUExBWV9DT1JFLAo+ICsJCQkJICAg ICAgd2FrZXJlZik7Cj4gK30KPiArCj4gK3ZvaWQgaW50ZWxfdGNfcG9ydF9nZXRfbGluayhzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCwKPiArCQkJICAgIGludCByZXF1aXJlZF9s YW5lcykKPiArewo+ICsJX19pbnRlbF90Y19wb3J0X2xvY2soZGlnX3BvcnQsIHJlcXVpcmVkX2xh bmVzKTsKPiArCWRpZ19wb3J0LT50Y19saW5rX3JlZmNvdW50Kys7Cj4gKwlpbnRlbF90Y19wb3J0 X3VubG9jayhkaWdfcG9ydCk7Cj4gK30KPiArCj4gK3ZvaWQgaW50ZWxfdGNfcG9ydF9wdXRfbGlu ayhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKPiArewo+ICsJbXV0ZXhfbG9j aygmZGlnX3BvcnQtPnRjX2xvY2spOwo+ICsJZGlnX3BvcnQtPnRjX2xpbmtfcmVmY291bnQtLTsK PiAgCW11dGV4X3VubG9jaygmZGlnX3BvcnQtPnRjX2xvY2spOwo+ICB9Cj4gIAo+IEBAIC0zOTks NCArNDQ0LDUgQEAgdm9pZCBpbnRlbF90Y19wb3J0X2luaXQoc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqZGlnX3BvcnQsIGJvb2wgaXNfbGVnYWN5KQo+ICAKPiAgCW11dGV4X2luaXQoJmRpZ19w b3J0LT50Y19sb2NrKTsKPiAgCWRpZ19wb3J0LT50Y19sZWdhY3lfcG9ydCA9IGlzX2xlZ2FjeTsK PiArCWRpZ19wb3J0LT50Y19saW5rX3JlZmNvdW50ID0gMDsKPiAgfQo+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3RjLmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX3RjLmgKPiBpbmRleCBiNWFmMmZlNjBiMjIuLjMxYWY3YmU5NjA3 MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3RjLmgK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3RjLmgKPiBAQCAtMTks NiArMTksOSBAQCBpbnQgaW50ZWxfdGNfcG9ydF9maWFfbWF4X2xhbmVfY291bnQoc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOwo+ICB2b2lkIGludGVsX3RjX3BvcnRfc2FuaXRp emUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOwo+ICB2b2lkIGludGVsX3Rj X3BvcnRfbG9jayhzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCk7Cj4gIHZvaWQg aW50ZWxfdGNfcG9ydF91bmxvY2soc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQp Owo+ICt2b2lkIGludGVsX3RjX3BvcnRfZ2V0X2xpbmsoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqZGlnX3BvcnQsCj4gKwkJCSAgICBpbnQgcmVxdWlyZWRfbGFuZXMpOwo+ICt2b2lkIGludGVs X3RjX3BvcnRfcHV0X2xpbmsoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOwo+ ICAKPiAgdm9pZCBpbnRlbF90Y19wb3J0X2luaXQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq ZGlnX3BvcnQsIGJvb2wgaXNfbGVnYWN5KTsKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgK PiBpbmRleCAxMmExMDJlMjM5YzUuLjI0YzYzZWQ0NWM2ZiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2Rydi5oCj4gQEAgLTExNSw2ICsxMTUsOSBAQCBzdHJ1Y3QgaW50ZWxfZW5jb2RlciB7Cj4g IAlpbnQgKCpjb21wdXRlX2NvbmZpZykoc3RydWN0IGludGVsX2VuY29kZXIgKiwKPiAgCQkJICAg ICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKiwKPiAgCQkJICAgICAgc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKik7Cj4gKwl2b2lkICgqdXBkYXRlX3ByZXBhcmUpKHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKiwKPiArCQkJICAgICAgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICosCj4gKwkJ CSAgICAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqKTsKPiAgCXZvaWQgKCpwcmVfcGxsX2VuYWJsZSko c3RydWN0IGludGVsX2VuY29kZXIgKiwKPiAgCQkJICAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICosCj4gIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqKTsKPiBAQCAtMTI0LDYgKzEyNyw5IEBAIHN0cnVjdCBpbnRlbF9lbmNvZGVyIHsKPiAgCXZv aWQgKCplbmFibGUpKHN0cnVjdCBpbnRlbF9lbmNvZGVyICosCj4gIAkJICAgICAgIGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICosCj4gIAkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICopOwo+ICsJdm9pZCAoKnVwZGF0ZV9jb21wbGV0ZSkoc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqLAo+ICsJCQkJc3RydWN0IGludGVsX2VuY29kZXIgKiwKPiArCQkJCXN0 cnVjdCBpbnRlbF9jcnRjICopOwo+ICAJdm9pZCAoKmRpc2FibGUpKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICosCj4gIAkJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICosCj4gIAkJCWNvbnN0 IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICopOwo+IEBAIC0xMjM0LDYgKzEyNDAsOCBAQCBz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0IHsKPiAgCWVudW0gYXV4X2NoIGF1eF9jaDsKPiAgCWVu dW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZGRpX2lvX3Bvd2VyX2RvbWFpbjsKPiAgCXN0 cnVjdCBtdXRleCB0Y19sb2NrOwkvKiBwcm90ZWN0cyB0aGUgVHlwZUMgcG9ydCBtb2RlICovCj4g KwlpbnRlbF93YWtlcmVmX3QgdGNfbG9ja193YWtlcmVmOwo+ICsJaW50IHRjX2xpbmtfcmVmY291 bnQ7Cj4gIAlib29sIHRjX2xlZ2FjeV9wb3J0OjE7Cj4gIAljaGFyIHRjX3BvcnRfbmFtZVs4XTsK PiAgCWVudW0gdGNfcG9ydF9tb2RlIHRjX21vZGU7Cj4gLS0gCj4gMi4xNy4xCgotLSAKVmlsbGUg U3lyasOkbMOkCkludGVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeA==