From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: Re: [PATCH 13/23] drm/i915: Fix the TypeC port mode sanitization during loading/resume Date: Sat, 8 Jun 2019 20:50:41 +0300 Message-ID: <20190608175041.GD27722@ideak-desk.fi.intel.com> References: <20190604145826.16424-1-imre.deak@intel.com> <20190604145826.16424-14-imre.deak@intel.com> <25b091ad328d00ee23159438fd4c7336f826fc10.camel@intel.com> Reply-To: imre.deak@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 6368D89113 for ; Sat, 8 Jun 2019 17:50:47 +0000 (UTC) Content-Disposition: inline In-Reply-To: <25b091ad328d00ee23159438fd4c7336f826fc10.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Souza, Jose" Cc: "intel-gfx@lists.freedesktop.org" , "Zanoni, Paulo R" List-Id: intel-gfx@lists.freedesktop.org T24gU2F0LCBKdW4gMDgsIDIwMTkgYXQgMDE6Mzk6MzZBTSArMDMwMCwgU291emEsIEpvc2Ugd3Jv dGU6Cj4gT24gVHVlLCAyMDE5LTA2LTA0IGF0IDE3OjU4ICswMzAwLCBJbXJlIERlYWsgd3JvdGU6 Cj4gPiBGb3IgdXNpbmcgdGhlIGNvcnJlY3QgQVVYIHBvd2VyIGRvbWFpbnMgd2UgaGF2ZSB0byBz YW5pdGl6ZSB0aGUgVHlwZUMKPiA+IHBvcnQgbW9kZSBlYXJseSwgc28gbW92ZSB0aGF0IGJlZm9y ZSBlbmNvZGVyIHNhbml0aXphdGlvbi4gVG8gZG8gdGhpcwo+ID4gcHJvcGVybHkgcmVhZCBvdXQg dGhlIGFjdHVhbCBwb3J0IG1vZGUgaW5zdGVhZCBvZiBqdXN0IHJlbHlpbmcgb24gdGhlCj4gPiBW QlQgbGVnYWN5IHBvcnQgZmxhZyAod2hpY2ggY2FuIGJlIGluY29ycmVjdCkuCj4gPiAKPiA+IFdl IGFsc28gdmVyaWZ5IHRoYXQgdGhlIFBIWSBpcyBjb25uZWN0ZWQgYXMgZXhwZWN0ZWQgaWYgdGhl IHBvcnQgaXMKPiA+IGFjdGl2ZS4gSW4gY2FzZSB0aGUgcG9ydCBpcyBpbmFjdGl2ZSB3ZSBjb25u ZWN0IHRoZSBQSFkgaW4gY2FzZSBvZiBhCj4gPiBsZWdhY3kgcG9ydCAtIGFzIHdlIGRpZCBzbyBm YXIuIFRoZSBQSFkgd2lsbCBiZSBjb25uZWN0ZWQgZHVyaW5nCj4gPiBkZXRlY3Rpb24gZm9yIERQ LWFsdCBtb2RlIC0gYXMgaXQgd2FzIGRvbmUgc28gZmFyLiBGb3IgVEJULWFsdCBtb2RlCj4gPiBu b3RoaW5nIG5lZWRzIHRvIGJlIGRvbmUgdG8gY29ubmVjdCB0aGUgUEhZLgo+ID4gCj4gPiBDYzog Sm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+Cj4gPiBDYzogUm9k cmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+ID4gQ2M6IFBhdWxvIFphbm9uaSA8 cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgo+ID4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUu c3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBJbXJlIERlYWsgPGlt cmUuZGVha0BpbnRlbC5jb20+Cj4gPiAtLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZGkuYyAgICAgfCAxNiArLS0tLS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgfCAxMCArKysrCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHBfbXN0 LmggIHwgIDggKystCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdGMuYyAgICAgIHwg ODMKPiA+ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ICBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF90Yy5oICAgICAgfCAgMiArCj4gPiAgNSBmaWxlcyBjaGFuZ2VkLCAxMDMgaW5z ZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kZGkuYwo+ID4gaW5kZXggZDIzNjgzOWJlZTE5Li4yYmMzYjRmMmM5YTUgMTAwNjQ0Cj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZGkuYwo+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGRpLmMKPiA+IEBAIC0zOTE4LDE3ICszOTE4LDYgQEAgc3RhdGlj IHZvaWQgaW50ZWxfZGRpX2VuY29kZXJfc3VzcGVuZChzdHJ1Y3QKPiA+IGludGVsX2VuY29kZXIg KmVuY29kZXIpCj4gPiAgCQlpY2xfdGNfcGh5X2Rpc2Nvbm5lY3QoZGlnX3BvcnQpOwo+ID4gIH0K PiA+ICAKPiA+IC1zdGF0aWMgdm9pZCBpbnRlbF9kZGlfZW5jb2Rlcl9yZXNldChzdHJ1Y3QgZHJt X2VuY29kZXIgKmRybV9lbmNvZGVyKQo+ID4gLXsKPiA+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqZGlnX3BvcnQgPQo+ID4gZW5jX3RvX2RpZ19wb3J0KGRybV9lbmNvZGVyKTsKPiA+IC0J c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUgPSB0b19pOTE1KGRybV9lbmNvZGVyLT5kZXYp Owo+ID4gLQo+ID4gLQlpZiAoaW50ZWxfcG9ydF9pc190YyhpOTE1LCBkaWdfcG9ydC0+YmFzZS5w b3J0KSkKPiA+IC0JCWludGVsX2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQoJmRpZ19wb3J0LT5iYXNl KTsKPiA+IC0KPiA+IC0JaW50ZWxfZHBfZW5jb2Rlcl9yZXNldChkcm1fZW5jb2Rlcik7Cj4gPiAt fQo+ID4gLQo+ID4gIHN0YXRpYyB2b2lkIGludGVsX2RkaV9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0 IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ID4gIHsKPiA+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoZW5jb2Rlcik7Cj4gPiBAQCAtMzk0NCw3 ICszOTMzLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX2VuY29kZXJfZGVzdHJveShzdHJ1Y3QK PiA+IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgY29uc3Qg c3RydWN0IGRybV9lbmNvZGVyX2Z1bmNzIGludGVsX2RkaV9mdW5jcyA9IHsKPiA+IC0JLnJlc2V0 ID0gaW50ZWxfZGRpX2VuY29kZXJfcmVzZXQsCj4gPiArCS5yZXNldCA9IGludGVsX2RwX2VuY29k ZXJfcmVzZXQsCj4gPiAgCS5kZXN0cm95ID0gaW50ZWxfZGRpX2VuY29kZXJfZGVzdHJveSwKPiA+ ICB9Owo+ID4gIAo+ID4gQEAgLTQzMDksOSArNDI5OCw2IEBAIHZvaWQgaW50ZWxfZGRpX2luaXQo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUKPiA+ICpkZXZfcHJpdiwgZW51bSBwb3J0IHBvcnQpCj4g PiAgCj4gPiAgCWludGVsX2luZm9mcmFtZV9pbml0KGludGVsX2RpZ19wb3J0KTsKPiA+ICAKPiA+ IC0JaWYgKGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIHBvcnQpKQo+ID4gLQkJaW50ZWxfZGln aXRhbF9wb3J0X2Nvbm5lY3RlZChpbnRlbF9lbmNvZGVyKTsKPiA+IC0KPiA+ICAJcmV0dXJuOwo+ ID4gIAo+ID4gIGVycjoKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKPiA+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4g PiBpbmRleCAwZTQyNWE2ZWViZjMuLjkxZDE4Y2QwMzcxYyAxMDA2NDQKPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCj4gPiBAQCAtNzUsNiArNzUsNyBAQAo+ID4gICNpbmNsdWRl ICJpbnRlbF9zZHZvLmgiCj4gPiAgI2luY2x1ZGUgImludGVsX3NpZGViYW5kLmgiCj4gPiAgI2lu Y2x1ZGUgImludGVsX3Nwcml0ZS5oIgo+ID4gKyNpbmNsdWRlICJpbnRlbF90Yy5oIgo+ID4gICNp bmNsdWRlICJpbnRlbF90di5oIgo+ID4gICNpbmNsdWRlICJpbnRlbF92ZHNjLmgiCj4gPiAgCj4g PiBAQCAtMTY2ODMsNiArMTY2ODQsMTUgQEAgaW50ZWxfbW9kZXNldF9zZXR1cF9od19zdGF0ZShz dHJ1Y3QKPiA+IGRybV9kZXZpY2UgKmRldiwKPiA+ICAJaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3 X3N0YXRlKGRldik7Cj4gPiAgCj4gPiAgCS8qIEhXIHN0YXRlIGlzIHJlYWQgb3V0LCBub3cgd2Ug bmVlZCB0byBzYW5pdGl6ZSB0aGlzIG1lc3MuICovCj4gPiArCj4gPiArCS8qIFNhbml0aXplIHRo ZSBUeXBlQyBwb3J0IG1vZGUgdXBmcm9udCwgZW5jb2RlcnMgZGVwZW5kIG9uCj4gPiB0aGlzICov Cj4gPiArCWZvcl9lYWNoX2ludGVsX2VuY29kZXIoZGV2LCBlbmNvZGVyKSB7Cj4gPiArCQkvKiBX ZSBuZWVkIHRvIHNhbml0aXplIG9ubHkgdGhlIE1TVCBwcmltYXJ5IHBvcnQuICovCj4gPiArCQlp ZiAoZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfRFBfTVNUICYmCj4gPiArCQkgICAgaW50 ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCkpCj4gPiArCQkJaW50ZWxfdGNf cG9ydF9zYW5pdGl6ZShlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXIKPiA+IC0+YmFzZSkpOwo+ID4g Kwl9Cj4gPiArCj4gPiAgCWdldF9lbmNvZGVyX3Bvd2VyX2RvbWFpbnMoZGV2X3ByaXYpOwo+ID4g IAo+ID4gIAlpZiAoSEFTX1BDSF9JQlgoZGV2X3ByaXYpKQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5oCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwX21zdC5oCj4gPiBpbmRleCAxNDcwYzZlMDUxNGIuLjY3NTRjMjExMjA1YSAxMDA2 NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2RwX21zdC5oCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcF9tc3QuaAo+ID4gQEAgLTYsOSArNiwxNSBA QAo+ID4gICNpZm5kZWYgX19JTlRFTF9EUF9NU1RfSF9fCj4gPiAgI2RlZmluZSBfX0lOVEVMX0RQ X01TVF9IX18KPiA+ICAKPiA+IC1zdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0Owo+ID4gKyNpbmNs dWRlICJpbnRlbF9kcnYuaCIKPiA+ICAKPiA+ICBpbnQgaW50ZWxfZHBfbXN0X2VuY29kZXJfaW5p dChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0Cj4gPiAqaW50ZWxfZGlnX3BvcnQsIGludCBjb25u X2lkKTsKPiA+ICB2b2lkIGludGVsX2RwX21zdF9lbmNvZGVyX2NsZWFudXAoc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydAo+ID4gKmludGVsX2RpZ19wb3J0KTsKPiA+ICtzdGF0aWMgaW5saW5lIGlu dAo+ID4gK2ludGVsX2RwX21zdF9lbmNvZGVyX2FjdGl2ZV9saW5rcyhzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0Cj4gPiAqaW50ZWxfZGlnX3BvcnQpCj4gPiArewo+ID4gKwlyZXR1cm4gaW50ZWxf ZGlnX3BvcnQtPmRwLmFjdGl2ZV9tc3RfbGlua3M7Cj4gPiArfQo+ID4gKwo+ID4gIAo+ID4gICNl bmRpZiAvKiBfX0lOVEVMX0RQX01TVF9IX18gKi8KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF90Yy5jCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Rj LmMKPiA+IGluZGV4IDk4MzJlMmRkYjkyZS4uOWViZjI1ZDc5MzFjIDEwMDY0NAo+ID4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdGMuYwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfdGMuYwo+ID4gQEAgLTMsNiArMyw3IEBACj4gPiAgICogQ29weXJpZ2h0IMKp IDIwMTkgSW50ZWwgQ29ycG9yYXRpb24KPiA+ICAgKi8KPiA+ICAjaW5jbHVkZSAiaW50ZWxfZGlz cGxheS5oIgo+ID4gKyNpbmNsdWRlICJpbnRlbF9kcF9tc3QuaCIKPiA+ICAjaW5jbHVkZSAiaTkx NV9kcnYuaCIKPiA+ICAjaW5jbHVkZSAiaW50ZWxfdGMuaCIKPiA+ICAKPiA+IEBAIC0xNjcsNiAr MTY4LDE1IEBAIHN0YXRpYyBib29sIGljbF90Y19waHlfc2V0X3NhZmVfbW9kZShzdHJ1Y3QKPiA+ IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQsCj4gPiAgCXJldHVybiB0cnVlOwo+ID4gIH0K PiA+ICAKPiA+ICtzdGF0aWMgYm9vbCBpY2xfdGNfcGh5X2lzX2luX3NhZmVfbW9kZShzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0Cj4gPiAqZGlnX3BvcnQpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRpZ19wb3J0LQo+ID4gPmJhc2UuYmFz ZS5kZXYpOwo+ID4gKwllbnVtIHRjX3BvcnQgdGNfcG9ydCA9IGludGVsX3BvcnRfdG9fdGMoZGV2 X3ByaXYsIGRpZ19wb3J0LQo+ID4gPmJhc2UucG9ydCk7Cj4gPiArCj4gPiArCXJldHVybiAhKEk5 MTVfUkVBRChQT1JUX1RYX0RGTEVYRFBDU1NTKSAmCj4gPiArCQkgRFBfUEhZX01PREVfU1RBVFVT X05PVF9TQUZFKHRjX3BvcnQpKTsKPiA+ICt9Cj4gPiArCj4gPiAgLyoKPiA+ICAgKiBUaGlzIGZ1 bmN0aW9uIGltcGxlbWVudHMgdGhlIGZpcnN0IHBhcnQgb2YgdGhlIENvbm5lY3QgRmxvdwo+ID4g ZGVzY3JpYmVkIGJ5IG91cgo+ID4gICAqIHNwZWNpZmljYXRpb24sIEdlbjExIFR5cGVDIFByb2dy YW1taW5nIGNoYXB0ZXIuIFRoZSByZXN0IG9mIHRoZQo+ID4gZmxvdyAocmVhZGluZwo+ID4gQEAg LTI1MCw2ICsyNjAsNDkgQEAgdm9pZCBpY2xfdGNfcGh5X2Rpc2Nvbm5lY3Qoc3RydWN0Cj4gPiBp bnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQo+ID4gIAl9Cj4gPiAgfQo+ID4gIAo+ID4gK3N0 YXRpYyBib29sIGljbF90Y19waHlfaXNfY29ubmVjdGVkKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQKPiA+ICpkaWdfcG9ydCkKPiA+ICt7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGlnX3BvcnQtCj4gPiA+YmFzZS5iYXNlLmRldik7Cj4gPiArCWVu dW0gdGNfcG9ydCB0Y19wb3J0ID0gaW50ZWxfcG9ydF90b190YyhkZXZfcHJpdiwgZGlnX3BvcnQt Cj4gPiA+YmFzZS5wb3J0KTsKPiA+ICsKPiA+ICsJaWYgKCFpY2xfdGNfcGh5X3N0YXR1c19jb21w bGV0ZShkaWdfcG9ydCkpIHsKPiA+ICsJCURSTV9ERUJVR19LTVMoIlBvcnQgJXM6IFBIWSBzdGF0 dXMgbm90IGNvbXBsZXRlXG4iLAo+ID4gKwkJCSAgICAgIHRjX3BvcnRfbmFtZShkZXZfcHJpdiwg dGNfcG9ydCkpOwo+ID4gKwkJcmV0dXJuIGRpZ19wb3J0LT50Y19tb2RlID09IFRDX1BPUlRfVEJU X0FMVDsKPiA+ICsJfQo+ID4gKwo+ID4gKwlpZiAoaWNsX3RjX3BoeV9pc19pbl9zYWZlX21vZGUo ZGlnX3BvcnQpKSB7Cj4gPiArCQlEUk1fREVCVUdfS01TKCJQb3J0ICVzOiBQSFkgc3RpbGwgaW4g c2FmZSBtb2RlXG4iLAo+ID4gKwkJCSAgICAgIHRjX3BvcnRfbmFtZShkZXZfcHJpdiwgdGNfcG9y dCkpOwo+ID4gKwo+ID4gKwkJcmV0dXJuIGZhbHNlOwo+ID4gKwl9Cj4gPiArCj4gPiArCXJldHVy biBkaWdfcG9ydC0+dGNfbW9kZSA9PSBUQ19QT1JUX0RQX0FMVCB8fAo+ID4gKwkgICAgICAgZGln X3BvcnQtPnRjX21vZGUgPT0gVENfUE9SVF9MRUdBQ1k7Cj4gPiArfQo+ID4gKwo+ID4gK3N0YXRp YyBlbnVtIHRjX3BvcnRfbW9kZQo+ID4gK2ludGVsX3RjX3BvcnRfZ2V0X2N1cnJlbnRfbW9kZShz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKPiA+ICt7Cj4gPiArCXUzMiBsaXZl X3N0YXR1c19tYXNrID0gdGNfcG9ydF9saXZlX3N0YXR1c19tYXNrKGRpZ19wb3J0KTsKPiA+ICsJ Ym9vbCBpbl9zYWZlX21vZGUgPSBpY2xfdGNfcGh5X2lzX2luX3NhZmVfbW9kZShkaWdfcG9ydCk7 Cj4gPiArCWVudW0gdGNfcG9ydF9tb2RlIG1vZGU7Cj4gPiArCj4gPiArCWlmIChpbl9zYWZlX21v ZGUgfHwKPiA+IFdBUk5fT04oIWljbF90Y19waHlfc3RhdHVzX2NvbXBsZXRlKGRpZ19wb3J0KSkp Cj4gPiArCQlyZXR1cm4gVENfUE9SVF9UQlRfQUxUOwo+ID4gKwo+ID4gKwltb2RlID0gZGlnX3Bv cnQtPnRjX2xlZ2FjeV9wb3J0ID8gVENfUE9SVF9MRUdBQ1kgOgo+ID4gVENfUE9SVF9EUF9BTFQ7 Cj4gPiArCWlmIChsaXZlX3N0YXR1c19tYXNrKSB7Cj4gPiArCQllbnVtIHRjX3BvcnRfbW9kZSBs aXZlX21vZGUgPSBmbHMobGl2ZV9zdGF0dXNfbWFzaykgLQo+ID4gMTsKPiA+ICsKPiA+ICsJCWlm ICghV0FSTl9PTihsaXZlX21vZGUgPT0gVENfUE9SVF9UQlRfQUxUKSkKPiA+ICsJCQltb2RlID0g bGl2ZV9tb2RlOwo+ID4gKwl9Cj4gPiArCj4gPiArCXJldHVybiBtb2RlOwo+ID4gK30KPiA+ICsK PiA+ICBzdGF0aWMgZW51bSB0Y19wb3J0X21vZGUKPiA+ICBpbnRlbF90Y19wb3J0X2dldF90YXJn ZXRfbW9kZShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKPiA+ICB7Cj4gPiBA QCAtMjc4LDYgKzMzMSwzNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF90Y19wb3J0X3Jlc2V0X21vZGUo c3RydWN0Cj4gPiBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQo+ID4gIAkJICAgICAgdGNf cG9ydF9tb2RlX25hbWUoZGlnX3BvcnQtPnRjX21vZGUpKTsKPiA+ICB9Cj4gPiAgCj4gPiArdm9p ZCBpbnRlbF90Y19wb3J0X3Nhbml0aXplKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19w b3J0KQo+ID4gK3sKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShkaWdfcG9ydC0KPiA+ID5iYXNlLmJhc2UuZGV2KTsKPiA+ICsJc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIgPSAmZGlnX3BvcnQtPmJhc2U7Cj4gPiArCWVudW0gdGNfcG9ydCB0Y19w b3J0ID0gaW50ZWxfcG9ydF90b190YyhkZXZfcHJpdiwgZW5jb2Rlci0KPiA+ID5wb3J0KTsKPiA+ ICsJaW50IGFjdGl2ZV9saW5rcyA9IDA7Cj4gPiArCj4gPiArCWRpZ19wb3J0LT50Y19tb2RlID0g aW50ZWxfdGNfcG9ydF9nZXRfY3VycmVudF9tb2RlKGRpZ19wb3J0KTsKPiA+ICsJaWYgKGRpZ19w b3J0LT5kcC5pc19tc3QpCj4gPiArCQlhY3RpdmVfbGlua3MgPQo+ID4gaW50ZWxfZHBfbXN0X2Vu Y29kZXJfYWN0aXZlX2xpbmtzKGRpZ19wb3J0KTsKPiA+ICsJZWxzZSBpZiAoZW5jb2Rlci0+YmFz ZS5jcnRjKQo+ID4gKwkJYWN0aXZlX2xpbmtzID0gdG9faW50ZWxfY3J0YyhlbmNvZGVyLT5iYXNl LmNydGMpLQo+ID4gPmFjdGl2ZTsKPiA+ICsKPiA+ICsJaWYgKGFjdGl2ZV9saW5rcykgewo+ID4g KwkJaWYgKCFpY2xfdGNfcGh5X2lzX2Nvbm5lY3RlZChkaWdfcG9ydCkpCj4gPiArCQkJRFJNX0RF QlVHX0RSSVZFUigiUG9ydCAlczogUEhZIGRpc2Nvbm5lY3RlZAo+ID4gd2l0aCAlZCBhY3RpdmUg bGluayhzKVxuIiwKPiA+ICsJCQkJCSB0Y19wb3J0X25hbWUoZGV2X3ByaXYsCj4gPiB0Y19wb3J0 KSwKPiA+ICsJCQkJCSBhY3RpdmVfbGlua3MpOwo+ID4gKwkJZ290byBvdXQ7Cj4gCj4gQW5kIHRo ZW4gcHJvYmUgc2VxdWVuY2VzIHdpbGwgdGFrZSBjYXJlIG9mIGNhbGwKPiBpbnRlbF9kaWdpdGFs X3BvcnRfY29ubmVjdGVkKCkgdG8gcmVzZXQgVEMgc3RhdGUuIAoKUmlnaHQsIG9uY2UgdGhlIGFj dGl2ZSBtb2RlICh3ZSBkZXRlY3RlZCBoZXJlKSBnZXRzIGRpc2FibGVkLCBzaW5jZQpiZWZvcmUg dGhhdCB5b3UgY2FuJ3QgcmVzZXQgdGhlIG1vZGUuIEJ0dywgd2UnbGwgYWxzbyBjaGVjayBpZiBh IG1vZGUKcmVzZXQgaXMgbmVlZGVkIGJlZm9yZSBBVVggdHJhbnNmZXJzIChpZiB0aGUgcG9ydCBp cyBub3QgYWN0aXZlKS4KCj4gCj4gPiArCX0KPiA+ICsKPiA+ICsJaWYgKGRpZ19wb3J0LT50Y19s ZWdhY3lfcG9ydCkKPiA+ICsJCWljbF90Y19waHlfY29ubmVjdChkaWdfcG9ydCk7Cj4gPiArCj4g PiArb3V0Ogo+ID4gKwlEUk1fREVCVUdfRFJJVkVSKCJQb3J0ICVzOiBzYW5pdGl6ZSBtb2RlICgl cylcbiIsCj4gPiArCQkJIHRjX3BvcnRfbmFtZShkZXZfcHJpdiwgdGNfcG9ydCksCj4gPiArCQkJ IHRjX3BvcnRfbW9kZV9uYW1lKGRpZ19wb3J0LT50Y19tb2RlKSk7Cj4gCj4gU2hvdWxkIGJlOgo+ IAo+IERSTV9ERUJVR19EUklWRVIoKQo+IAo+IEkgZ3Vlc3MgSSBtaXNzZWQgdGhpcyBvbiBwcmV2 aW91cyBwYXRjaGVzIHRvby4KCkFoIHJpZ2h0LCBEUk1fREVCVUdfS01TKCkuCgo+IAo+IAo+IFdp dGggdGhhdDoKPiBSZXZpZXdlZC1ieTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6 YUBpbnRlbC5jb20+Cj4gCj4gCj4gPiArfQo+ID4gKwo+ID4gIHN0YXRpYyBib29sCj4gPiAgaW50 ZWxfdGNfcG9ydF9uZWVkc19yZXNldChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9y dCkKPiA+ICB7Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfdGMu aAo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF90Yy5oCj4gPiBpbmRleCBlOTM3ZjUz MjY5NTkuLjEwZjBmMGQ4MWVlNCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3RjLmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3RjLmgKPiA+ IEBAIC0xMSw0ICsxMSw2IEBAIGJvb2wgaW50ZWxfdGNfcG9ydF9jb25uZWN0ZWQoc3RydWN0Cj4g PiBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KTsKPiA+ICB1MzIgaW50ZWxfdGNfcG9ydF9n ZXRfbGFuZV9pbmZvKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQKPiA+ICpkaWdfcG9ydCk7Cj4g PiAgaW50IGludGVsX3RjX3BvcnRfZmlhX21heF9sYW5lX2NvdW50KHN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQKPiA+ICpkaWdfcG9ydCk7Cj4gPiAgCj4gPiArdm9pZCBpbnRlbF90Y19wb3J0X3Nh bml0aXplKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KTsKPiA+ICsKPiA+ICAj ZW5kaWYgLyogX19JTlRFTF9UQ19IX18gKi8KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vaW50ZWwtZ2Z4