From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v5 4/5] drm/i915: Transition port type checks to phy checks Date: Mon, 8 Jul 2019 16:13:49 +0300 Message-ID: <20190708131349.GQ5942@intel.com> References: <20190703233736.5816-5-matthew.d.roper@intel.com> <20190704000211.15771-1-matthew.d.roper@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by gabe.freedesktop.org (Postfix) with ESMTPS id 35F8189169 for ; Mon, 8 Jul 2019 13:14:19 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20190704000211.15771-1-matthew.d.roper@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Matt Roper Cc: intel-gfx@lists.freedesktop.org, Lucas De Marchi List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBKdWwgMDMsIDIwMTkgYXQgMDU6MDI6MTFQTSAtMDcwMCwgTWF0dCBSb3BlciB3cm90 ZToKPiBUcmFuc2l0aW9uIHRoZSByZW1haW5pbmcgdXNlcyBvZiBpbnRlbF9wb3J0X2lzXyogb3Zl ciB0byB0aGUgZXF1aXZhbGVudAo+IGludGVsX3BoeV9pc18qIGZ1bmN0aW9ucyBhbmQgZHJvcCB0 aGUgcG9ydCBmdW5jdGlvbnMuCj4gCj4gdjU6IEZpeCBhIGNhbGwgaW4gYSBkZWJ1ZyBmdW5jdGlv biB0aGF0J3Mgb25seSBjYWxsZWQgd2hlbgo+ICAgICBDT05GSUdfRFJNX0k5MTVfREVCVUdfUlVO VElNRV9QTSBpcyBvbi4gIChDSSkKPiAKPiBDYzogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9z ZS5zb3V6YUBpbnRlbC5jb20+Cj4gQ2M6IEx1Y2FzIERlIE1hcmNoaSA8bHVjYXMuZGVtYXJjaGlA aW50ZWwuY29tPgo+IFNpZ25lZC1vZmYtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBp bnRlbC5jb20+CgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KCj4gLS0tCj4gVG8gYXZvaWQgY29uZmxpY3RzIHdpdGggaW4tZmxpZ2h0 IFRHTCBwYXRjaGVzLCB3ZSBtYXkgd2FudCB0byBob2xkIG9mZgo+IG9uIG1lcmdpbmcgdGhpcyBv bmUgdW50aWwgVEdMIGxhbmRzPwo+IAo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Jpb3MuYyAgICAgfCAgNCArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RkaS5jICAgICAgfCA0OSArKysrKysrKysrKystLS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jICB8IDM4ICsrKystLS0tLS0tLS0tCj4gIC4u Li9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYyAgICB8ICA0ICstCj4gIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYyAgICAgICB8IDE1ICsrKy0tLQo+ ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmMgfCAxMSArKyst LQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgICAgICAgfCAgMiAt Cj4gIDcgZmlsZXMgY2hhbmdlZCwgNjEgaW5zZXJ0aW9ucygrKSwgNjIgZGVsZXRpb25zKC0pCj4g Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMKPiBpbmRleCAwYzk4 MDgxMzJkNjcuLjRmZGJiNWMzNWQ4NyAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2Jpb3MuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfYmlvcy5jCj4gQEAgLTI4LDYgKzI4LDcgQEAKPiAgI2luY2x1ZGUgPGRybS9kcm1f ZHBfaGVscGVyLmg+Cj4gICNpbmNsdWRlIDxkcm0vaTkxNV9kcm0uaD4KPiAgCj4gKyNpbmNsdWRl ICJkaXNwbGF5L2ludGVsX2Rpc3BsYXkuaCIKPiAgI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfZ21i dXMuaCIKPiAgCj4gICNpbmNsdWRlICJpOTE1X2Rydi5oIgo+IEBAIC0xNzMzLDEyICsxNzM0LDEz IEBAIGluaXRfdmJ0X21pc3NpbmdfZGVmYXVsdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KQo+ICAJZm9yIChwb3J0ID0gUE9SVF9BOyBwb3J0IDwgSTkxNV9NQVhfUE9SVFM7IHBv cnQrKykgewo+ICAJCXN0cnVjdCBkZGlfdmJ0X3BvcnRfaW5mbyAqaW5mbyA9Cj4gIAkJCSZkZXZf cHJpdi0+dmJ0LmRkaV9wb3J0X2luZm9bcG9ydF07Cj4gKwkJZW51bSBwaHkgcGh5ID0gaW50ZWxf cG9ydF90b19waHkoZGV2X3ByaXYsIHBvcnQpOwo+ICAKPiAgCQkvKgo+ICAJCSAqIFZCVCBoYXMg dGhlIFR5cGVDIG1vZGUgKG5hdGl2ZSxUQlQvVVNCKSBhbmQgd2UgZG9uJ3Qgd2FudAo+ICAJCSAq IHRvIGRldGVjdCBpdC4KPiAgCQkgKi8KPiAtCQlpZiAoaW50ZWxfcG9ydF9pc190YyhkZXZfcHJp diwgcG9ydCkpCj4gKwkJaWYgKGludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgcGh5KSkKPiAgCQkJ Y29udGludWU7Cj4gIAo+ICAJCWluZm8tPnN1cHBvcnRzX2R2aSA9IChwb3J0ICE9IFBPUlRfQSAm JiBwb3J0ICE9IFBPUlRfRSk7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rk aS5jCj4gaW5kZXggNTBkZDlkNzMxNDU2Li4zN2M4Y2VjYjlhNmEgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKPiBAQCAtODY4LDExICs4NjgsMTIgQEAgaWNs X2dldF9jb21ib19idWZfdHJhbnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBp bnQgdHlwZSwgaW50IHJhdGUsCj4gIHN0YXRpYyBpbnQgaW50ZWxfZGRpX2hkbWlfbGV2ZWwoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkKPiAgewo+ICAJ aW50IG5fZW50cmllcywgbGV2ZWwsIGRlZmF1bHRfZW50cnk7Cj4gKwllbnVtIHBoeSBwaHkgPSBp bnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgcG9ydCk7Cj4gIAo+ICAJbGV2ZWwgPSBkZXZfcHJp di0+dmJ0LmRkaV9wb3J0X2luZm9bcG9ydF0uaGRtaV9sZXZlbF9zaGlmdDsKPiAgCj4gIAlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkgewo+IC0JCWlmIChpbnRlbF9wb3J0X2lzX2NvbWJv cGh5KGRldl9wcml2LCBwb3J0KSkKPiArCQlpZiAoaW50ZWxfcGh5X2lzX2NvbWJvKGRldl9wcml2 LCBwaHkpKQo+ICAJCQlpY2xfZ2V0X2NvbWJvX2J1Zl90cmFucyhkZXZfcHJpdiwgSU5URUxfT1VU UFVUX0hETUksCj4gIAkJCQkJCTAsICZuX2VudHJpZXMpOwo+ICAJCWVsc2UKPiBAQCAtMTQ4Nyw5 ICsxNDg4LDEwIEBAIHN0YXRpYyB2b2lkIGljbF9kZGlfY2xvY2tfZ2V0KHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfZHBsbF9od19zdGF0 ZSAqcGxsX3N0YXRlID0gJnBpcGVfY29uZmlnLT5kcGxsX2h3X3N0YXRlOwo+ICAJZW51bSBwb3J0 IHBvcnQgPSBlbmNvZGVyLT5wb3J0Owo+ICsJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19w aHkoZGV2X3ByaXYsIHBvcnQpOwo+ICAJaW50IGxpbmtfY2xvY2s7Cj4gIAo+IC0JaWYgKGludGVs X3BvcnRfaXNfY29tYm9waHkoZGV2X3ByaXYsIHBvcnQpKSB7Cj4gKwlpZiAoaW50ZWxfcGh5X2lz X2NvbWJvKGRldl9wcml2LCBwaHkpKSB7Cj4gIAkJbGlua19jbG9jayA9IGNubF9jYWxjX3dycGxs X2xpbmsoZGV2X3ByaXYsIHBsbF9zdGF0ZSk7Cj4gIAl9IGVsc2Ugewo+ICAJCWVudW0gaW50ZWxf ZHBsbF9pZCBwbGxfaWQgPSBpbnRlbF9nZXRfc2hhcmVkX2RwbGxfaWQoZGV2X3ByaXYsCj4gQEAg LTIwODYsNiArMjA4OCw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9nZXRfcG93ZXJfZG9tYWlu cyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAlzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydDsKPiArCWVudW0gcGh5IHBoeSA9IGludGVs X3BvcnRfdG9fcGh5KGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KTsKPiAgCj4gIAkvKgo+ICAJICog VE9ETzogQWRkIHN1cHBvcnQgZm9yIE1TVCBlbmNvZGVycy4gQXRtLCB0aGUgZm9sbG93aW5nIHNo b3VsZCBuZXZlcgo+IEBAIC0yMTAzLDcgKzIxMDYsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlf Z2V0X3Bvd2VyX2RvbWFpbnMoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAkgKiBw b3J0cy4KPiAgCSAqLwo+ICAJaWYgKGludGVsX2NydGNfaGFzX2RwX2VuY29kZXIoY3J0Y19zdGF0 ZSkgfHwKPiAtCSAgICBpbnRlbF9wb3J0X2lzX3RjKGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KSkK PiArCSAgICBpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSkpCj4gIAkJaW50ZWxfZGlzcGxh eV9wb3dlcl9nZXQoZGV2X3ByaXYsCj4gIAkJCQkJaW50ZWxfZGRpX21haW5fbGlua19hdXhfZG9t YWluKGRpZ19wb3J0KSk7Cj4gIAo+IEBAIC0yMjI4LDEwICsyMjMxLDExIEBAIHU4IGludGVsX2Rk aV9kcF92b2x0YWdlX21heChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYp Owo+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rl ci0+YmFzZSk7Cj4gIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Cj4gKwllbnVtIHBo eSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgcG9ydCk7Cj4gIAlpbnQgbl9lbnRy aWVzOwo+ICAKPiAgCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKSB7Cj4gLQkJaWYgKGlu dGVsX3BvcnRfaXNfY29tYm9waHkoZGV2X3ByaXYsIHBvcnQpKQo+ICsJCWlmIChpbnRlbF9waHlf aXNfY29tYm8oZGV2X3ByaXYsIHBoeSkpCj4gIAkJCWljbF9nZXRfY29tYm9fYnVmX3RyYW5zKGRl dl9wcml2LCBlbmNvZGVyLT50eXBlLAo+ICAJCQkJCQlpbnRlbF9kcC0+bGlua19yYXRlLCAmbl9l bnRyaWVzKTsKPiAgCQllbHNlCj4gQEAgLTI2NjQsOSArMjY2OCw5IEBAIHN0YXRpYyB2b2lkIGlj bF9kZGlfdnN3aW5nX3NlcXVlbmNlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICAJ CQkJICAgIGVudW0gaW50ZWxfb3V0cHV0X3R5cGUgdHlwZSkKPiAgewo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gLQll bnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Cj4gKwllbnVtIHBoeSBwaHkgPSBpbnRlbF9w b3J0X3RvX3BoeShkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCk7Cj4gIAo+IC0JaWYgKGludGVsX3Bv cnRfaXNfY29tYm9waHkoZGV2X3ByaXYsIHBvcnQpKQo+ICsJaWYgKGludGVsX3BoeV9pc19jb21i byhkZXZfcHJpdiwgcGh5KSkKPiAgCQlpY2xfY29tYm9fcGh5X2RkaV92c3dpbmdfc2VxdWVuY2Uo ZW5jb2RlciwgbGV2ZWwsIHR5cGUpOwo+ICAJZWxzZQo+ICAJCWljbF9tZ19waHlfZGRpX3Zzd2lu Z19zZXF1ZW5jZShlbmNvZGVyLCBsaW5rX2Nsb2NrLCBsZXZlbCk7Cj4gQEAgLTI3MjksMTIgKzI3 MzMsMTMgQEAgdTMyIGRkaV9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAp Cj4gIAo+ICBzdGF0aWMgaW5saW5lCj4gIHUzMiBpY2xfZHBjbGthX2NmZ2NyMF9jbGtfb2ZmKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAtCQkJICAgICAgZW51bSBwb3J0IHBv cnQpCj4gKwkJCSAgICAgIGVudW0gcGh5IHBoeSkKPiAgewo+IC0JaWYgKGludGVsX3BvcnRfaXNf Y29tYm9waHkoZGV2X3ByaXYsIHBvcnQpKSB7Cj4gLQkJcmV0dXJuIElDTF9EUENMS0FfQ0ZHQ1Iw X0RESV9DTEtfT0ZGKHBvcnQpOwo+IC0JfSBlbHNlIGlmIChpbnRlbF9wb3J0X2lzX3RjKGRldl9w cml2LCBwb3J0KSkgewo+IC0JCWVudW0gdGNfcG9ydCB0Y19wb3J0ID0gaW50ZWxfcG9ydF90b190 YyhkZXZfcHJpdiwgcG9ydCk7Cj4gKwlpZiAoaW50ZWxfcGh5X2lzX2NvbWJvKGRldl9wcml2LCBw aHkpKSB7Cj4gKwkJcmV0dXJuIElDTF9EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfT0ZGKHBoeSk7Cj4g Kwl9IGVsc2UgaWYgKGludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgcGh5KSkgewo+ICsJCWVudW0g dGNfcG9ydCB0Y19wb3J0ID0gaW50ZWxfcG9ydF90b190YyhkZXZfcHJpdiwKPiArCQkJCQkJCShl bnVtIHBvcnQpcGh5KTsKPiAgCj4gIAkJcmV0dXJuIElDTF9EUENMS0FfQ0ZHQ1IwX1RDX0NMS19P RkYodGNfcG9ydCk7Cj4gIAl9Cj4gQEAgLTI4NzYsNiArMjg4MSw3IEBAIHN0YXRpYyB2b2lkIGlu dGVsX2RkaV9jbGtfc2VsZWN0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICB7Cj4g IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJh c2UuZGV2KTsKPiAgCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKPiArCWVudW0gcGh5 IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBwb3J0KTsKPiAgCXUzMiB2YWw7Cj4g IAljb25zdCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCA9IGNydGNfc3RhdGUtPnNoYXJl ZF9kcGxsOwo+ICAKPiBAQCAtMjg4NSw3ICsyODkxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRp X2Nsa19zZWxlY3Qoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAltdXRleF9sb2Nr KCZkZXZfcHJpdi0+ZHBsbF9sb2NrKTsKPiAgCj4gIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+ PSAxMSkgewo+IC0JCWlmICghaW50ZWxfcG9ydF9pc19jb21ib3BoeShkZXZfcHJpdiwgcG9ydCkp Cj4gKwkJaWYgKCFpbnRlbF9waHlfaXNfY29tYm8oZGV2X3ByaXYsIHBoeSkpCj4gIAkJCUk5MTVf V1JJVEUoRERJX0NMS19TRUwocG9ydCksCj4gIAkJCQkgICBpY2xfcGxsX3RvX2RkaV9jbGtfc2Vs KGVuY29kZXIsIGNydGNfc3RhdGUpKTsKPiAgCX0gZWxzZSBpZiAoSVNfQ0FOTk9OTEFLRShkZXZf cHJpdikpIHsKPiBAQCAtMjkyNSw5ICsyOTMxLDEwIEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9j bGtfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgewo+ICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNlLmRldik7 Cj4gIAllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7Cj4gKwllbnVtIHBoeSBwaHkgPSBp bnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgcG9ydCk7Cj4gIAo+ICAJaWYgKElOVEVMX0dFTihk ZXZfcHJpdikgPj0gMTEpIHsKPiAtCQlpZiAoIWludGVsX3BvcnRfaXNfY29tYm9waHkoZGV2X3By aXYsIHBvcnQpKQo+ICsJCWlmICghaW50ZWxfcGh5X2lzX2NvbWJvKGRldl9wcml2LCBwaHkpKQo+ ICAJCQlJOTE1X1dSSVRFKERESV9DTEtfU0VMKHBvcnQpLCBERElfQ0xLX1NFTF9OT05FKTsKPiAg CX0gZWxzZSBpZiAoSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikpIHsKPiAgCQlJOTE1X1dSSVRFKERQ Q0xLQV9DRkdDUjAsIEk5MTVfUkVBRChEUENMS0FfQ0ZHQ1IwKSB8Cj4gQEAgLTMxMzQsNyArMzE0 MSw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9l bmNvZGVyICplbmNvZGVyLAo+ICAKPiAgCWludGVsX2RkaV9jbGtfc2VsZWN0KGVuY29kZXIsIGNy dGNfc3RhdGUpOwo+ICAKPiAtCWlmICghaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgcG9ydCkg fHwKPiArCWlmICghaW50ZWxfcGh5X2lzX3RjKGRldl9wcml2LCBwaHkpIHx8Cj4gIAkgICAgZGln X3BvcnQtPnRjX21vZGUgIT0gVENfUE9SVF9UQlRfQUxUKQo+ICAJCWludGVsX2Rpc3BsYXlfcG93 ZXJfZ2V0KGRldl9wcml2LAo+ICAJCQkJCWRpZ19wb3J0LT5kZGlfaW9fcG93ZXJfZG9tYWluKTsK PiBAQCAtMzE1Miw3ICszMTU5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGVf ZHAoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCj4gIAllbHNlCj4gIAkJaW50ZWxfcHJl cGFyZV9kcF9kZGlfYnVmZmVycyhlbmNvZGVyLCBjcnRjX3N0YXRlKTsKPiAgCj4gLQlpZiAoaW50 ZWxfcG9ydF9pc19jb21ib3BoeShkZXZfcHJpdiwgcG9ydCkpIHsKPiArCWlmIChpbnRlbF9waHlf aXNfY29tYm8oZGV2X3ByaXYsIHBoeSkpIHsKPiAgCQlib29sIGxhbmVfcmV2ZXJzYWwgPQo+ICAJ CQlkaWdfcG9ydC0+c2F2ZWRfcG9ydF9iaXRzICYgRERJX0JVRl9QT1JUX1JFVkVSU0FMOwo+ICAK PiBAQCAtMzMwNCw2ICszMzExLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3Bvc3RfZGlzYWJs ZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKPiAgCXN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAgPSAmZGlnX3BvcnQtPmRwOwo+ICAJYm9vbCBpc19tc3QgPSBpbnRlbF9jcnRjX2hh c190eXBlKG9sZF9jcnRjX3N0YXRlLAo+ICAJCQkJCSAgSU5URUxfT1VUUFVUX0RQX01TVCk7Cj4g KwllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgZW5jb2Rlci0+cG9y dCk7Cj4gIAo+ICAJaWYgKCFpc19tc3QpIHsKPiAgCQlpbnRlbF9kZGlfZGlzYWJsZV9waXBlX2Ns b2NrKG9sZF9jcnRjX3N0YXRlKTsKPiBAQCAtMzMxOSw3ICszMzI3LDcgQEAgc3RhdGljIHZvaWQg aW50ZWxfZGRpX3Bvc3RfZGlzYWJsZV9kcChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiAgCWludGVsX2VkcF9wYW5lbF92ZGRfb24oaW50ZWxfZHApOwo+ICAJaW50ZWxfZWRwX3BhbmVs X29mZihpbnRlbF9kcCk7Cj4gIAo+IC0JaWYgKCFpbnRlbF9wb3J0X2lzX3RjKGRldl9wcml2LCBl bmNvZGVyLT5wb3J0KSB8fAo+ICsJaWYgKCFpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSkg fHwKPiAgCSAgICBkaWdfcG9ydC0+dGNfbW9kZSAhPSBUQ19QT1JUX1RCVF9BTFQpCj4gIAkJaW50 ZWxfZGlzcGxheV9wb3dlcl9wdXRfdW5jaGVja2VkKGRldl9wcml2LAo+ICAJCQkJCQkgIGRpZ19w b3J0LT5kZGlfaW9fcG93ZXJfZG9tYWluKTsKPiBAQCAtMzY2OSw4ICszNjc3LDkgQEAgaW50ZWxf ZGRpX3ByZV9wbGxfZW5hYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAo+ICB7Cj4g IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJh c2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3Rv X2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKPiAtCWJvb2wgaXNfdGNfcG9ydCA9IGludGVsX3Bv cnRfaXNfdGMoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpOwo+ICAJZW51bSBwb3J0IHBvcnQgPSBl bmNvZGVyLT5wb3J0Owo+ICsJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3By aXYsIHBvcnQpOwo+ICsJYm9vbCBpc190Y19wb3J0ID0gaW50ZWxfcGh5X2lzX3RjKGRldl9wcml2 LCBwaHkpOwo+ICAKPiAgCWlmIChpc190Y19wb3J0KQo+ICAJCWludGVsX3RjX3BvcnRfZ2V0X2xp bmsoZGlnX3BvcnQsIGNydGNfc3RhdGUtPmxhbmVfY291bnQpOwo+IEBAIC0zNzAwLDcgKzM3MDks OCBAQCBpbnRlbF9kZGlfcG9zdF9wbGxfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShlbmNvZGVyLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdf cG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7Cj4gLQlib29sIGlzX3RjX3Bv cnQgPSBpbnRlbF9wb3J0X2lzX3RjKGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KTsKPiArCWVudW0g cGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KTsKPiAr CWJvb2wgaXNfdGNfcG9ydCA9IGludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgcGh5KTsKPiAgCj4g IAlpZiAoaW50ZWxfY3J0Y19oYXNfZHBfZW5jb2RlcihjcnRjX3N0YXRlKSB8fCBpc190Y19wb3J0 KQo+ICAJCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0X3VuY2hlY2tlZChkZXZfcHJpdiwKPiBAQCAt NDIxNCw2ICs0MjI0LDcgQEAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQo+ICAJc3RydWN0IGRybV9lbmNvZGVyICpl bmNvZGVyOwo+ICAJYm9vbCBpbml0X2hkbWksIGluaXRfZHAsIGluaXRfbHNwY29uID0gZmFsc2U7 Cj4gIAllbnVtIHBpcGUgcGlwZTsKPiArCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5 KGRldl9wcml2LCBwb3J0KTsKPiAgCj4gIAlpbml0X2hkbWkgPSBwb3J0X2luZm8tPnN1cHBvcnRz X2R2aSB8fCBwb3J0X2luZm8tPnN1cHBvcnRzX2hkbWk7Cj4gIAlpbml0X2RwID0gcG9ydF9pbmZv LT5zdXBwb3J0c19kcDsKPiBAQCAtNDI3Nyw3ICs0Mjg4LDcgQEAgdm9pZCBpbnRlbF9kZGlfaW5p dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQo+ICAJ aW50ZWxfZGlnX3BvcnQtPm1heF9sYW5lcyA9IGludGVsX2RkaV9tYXhfbGFuZXMoaW50ZWxfZGln X3BvcnQpOwo+ICAJaW50ZWxfZGlnX3BvcnQtPmF1eF9jaCA9IGludGVsX2Jpb3NfcG9ydF9hdXhf Y2goZGV2X3ByaXYsIHBvcnQpOwo+ICAKPiAtCWlmIChpbnRlbF9wb3J0X2lzX3RjKGRldl9wcml2 LCBwb3J0KSkgewo+ICsJaWYgKGludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgcGh5KSkgewo+ICAJ CWJvb2wgaXNfbGVnYWN5ID0gIXBvcnRfaW5mby0+c3VwcG9ydHNfdHlwZWNfdXNiICYmCj4gIAkJ CQkgIXBvcnRfaW5mby0+c3VwcG9ydHNfdGJ0Owo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwo+IGluZGV4IDRhODVhYmVmOTNlNy4uNTUwNTMwY2My ZDI0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlz cGxheS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5 LmMKPiBAQCAtNjY0OSwyMCArNjY0OSw2IEBAIHN0YXRpYyB2b2lkIGk5eHhfcGZpdF9lbmFibGUo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gIAlJOTE1X1dSSVRF KEJDTFJQQVQoY3J0Yy0+cGlwZSksIDApOwo+ICB9Cj4gIAo+IC1ib29sIGludGVsX3BvcnRfaXNf Y29tYm9waHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9y dCkKPiAtewo+IC0JaWYgKHBvcnQgPT0gUE9SVF9OT05FKQo+IC0JCXJldHVybiBmYWxzZTsKPiAt Cj4gLQlpZiAoSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpKQo+IC0JCXJldHVybiBwb3J0IDw9IFBP UlRfQzsKPiAtCj4gLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkKPiAtCQlyZXR1cm4g cG9ydCA8PSBQT1JUX0I7Cj4gLQo+IC0JcmV0dXJuIGZhbHNlOwo+IC19Cj4gLQo+ICBib29sIGlu dGVsX3BoeV9pc19jb21ibyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0g cGh5IHBoeSkKPiAgewo+ICAJaWYgKHBoeSA9PSBQSFlfTk9ORSkKPiBAQCAtNjY3NywxNCArNjY2 Myw2IEBAIGJvb2wgaW50ZWxfcGh5X2lzX2NvbWJvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgZW51bSBwaHkgcGh5KQo+ICAJcmV0dXJuIGZhbHNlOwo+ICB9Cj4gIAo+IC1ib29s IGludGVsX3BvcnRfaXNfdGMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVt IHBvcnQgcG9ydCkKPiAtewo+IC0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEgJiYgIUlT X0VMS0hBUlRMQUtFKGRldl9wcml2KSkKPiAtCQlyZXR1cm4gcG9ydCA+PSBQT1JUX0MgJiYgcG9y dCA8PSBQT1JUX0Y7Cj4gLQo+IC0JcmV0dXJuIGZhbHNlOwo+IC19Cj4gLQo+ICBib29sIGludGVs X3BoeV9pc190YyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGh5IHBo eSkKPiAgewo+ICAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEgJiYgIUlTX0VMS0hBUlRM QUtFKGRldl9wcml2KSkKPiBAQCAtNjczNCw4ICs2NzEyLDkgQEAgZW51bSBpbnRlbF9kaXNwbGF5 X3Bvd2VyX2RvbWFpbgo+ICBpbnRlbF9hdXhfcG93ZXJfZG9tYWluKHN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmRpZ19wb3J0KQo+ICB7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKPiArCWVudW0gcGh5IHBo eSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBkaWdfcG9ydC0+YmFzZS5wb3J0KTsKPiAg Cj4gLQlpZiAoaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgZGlnX3BvcnQtPmJhc2UucG9ydCkg JiYKPiArCWlmIChpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSkgJiYKPiAgCSAgICBkaWdf cG9ydC0+dGNfbW9kZSA9PSBUQ19QT1JUX1RCVF9BTFQpIHsKPiAgCQlzd2l0Y2ggKGRpZ19wb3J0 LT5hdXhfY2gpIHsKPiAgCQljYXNlIEFVWF9DSF9DOgo+IEBAIC0xMDA2OSwxNiArMTAwNDgsMTcg QEAgc3RhdGljIHZvaWQgaWNlbGFrZV9nZXRfZGRpX3BsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCj4gIAkJCQllbnVtIHBvcnQgcG9ydCwKPiAgCQkJCXN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZykKPiAgewo+ICsJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9y dF90b19waHkoZGV2X3ByaXYsIHBvcnQpOwo+ICAJZW51bSBpY2xfcG9ydF9kcGxsX2lkIHBvcnRf ZHBsbF9pZDsKPiAgCWVudW0gaW50ZWxfZHBsbF9pZCBpZDsKPiAgCXUzMiB0ZW1wOwo+ICAKPiAt CWlmIChpbnRlbF9wb3J0X2lzX2NvbWJvcGh5KGRldl9wcml2LCBwb3J0KSkgewo+ICsJaWYgKGlu dGVsX3BoeV9pc19jb21ibyhkZXZfcHJpdiwgcGh5KSkgewo+ICAJCXRlbXAgPSBJOTE1X1JFQUQo RFBDTEtBX0NGR0NSMF9JQ0wpICYKPiAtCQkgICAgICAgRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NF TF9NQVNLKHBvcnQpOwo+IC0JCWlkID0gdGVtcCA+PiBEUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VM X1NISUZUKHBvcnQpOwo+ICsJCQlJQ0xfRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9NQVNLKHBo eSk7Cj4gKwkJaWQgPSB0ZW1wID4+IElDTF9EUENMS0FfQ0ZHQ1IwX0RESV9DTEtfU0VMX1NISUZU KHBoeSk7Cj4gIAkJcG9ydF9kcGxsX2lkID0gSUNMX1BPUlRfRFBMTF9ERUZBVUxUOwo+IC0JfSBl bHNlIGlmIChpbnRlbF9wb3J0X2lzX3RjKGRldl9wcml2LCBwb3J0KSkgewo+ICsJfSBlbHNlIGlm IChpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSkpIHsKPiAgCQl1MzIgY2xrX3NlbCA9IEk5 MTVfUkVBRChERElfQ0xLX1NFTChwb3J0KSkgJiBERElfQ0xLX1NFTF9NQVNLOwo+ICAKPiAgCQlp ZiAoY2xrX3NlbCA9PSBERElfQ0xLX1NFTF9NRykgewo+IEBAIC0xNjkzNSw5ICsxNjkxNSwxMSBA QCBpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4g IAo+ICAJLyogU2FuaXRpemUgdGhlIFR5cGVDIHBvcnQgbW9kZSB1cGZyb250LCBlbmNvZGVycyBk ZXBlbmQgb24gdGhpcyAqLwo+ICAJZm9yX2VhY2hfaW50ZWxfZW5jb2RlcihkZXYsIGVuY29kZXIp IHsKPiArCQllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgZW5jb2Rl ci0+cG9ydCk7Cj4gKwo+ICAJCS8qIFdlIG5lZWQgdG8gc2FuaXRpemUgb25seSB0aGUgTVNUIHBy aW1hcnkgcG9ydC4gKi8KPiAgCQlpZiAoZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfRFBf TVNUICYmCj4gLQkJICAgIGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQp KQo+ICsJCSAgICBpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSkpCj4gIAkJCWludGVsX3Rj X3BvcnRfc2FuaXRpemUoZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKSk7Cj4gIAl9Cj4g IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3Bs YXlfcG93ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9w b3dlci5jCj4gaW5kZXggNjQ2MjdjMTE3YzMxLi44YWFiZmVhNzZkMzggMTAwNjQ0Cj4gLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMKPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYwo+IEBA IC00ODcsNyArNDg3LDkgQEAgc3RhdGljIHZvaWQgaWNsX3RjX3BvcnRfYXNzZXJ0X3JlZl9oZWxk KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKPiAgCWF1eF9jaCA9IGljbF90Y19w aHlfYXV4X2NoKGRldl9wcml2LCBwb3dlcl93ZWxsKTsKPiAgCj4gIAlmb3JfZWFjaF9pbnRlbF9l bmNvZGVyKCZkZXZfcHJpdi0+ZHJtLCBlbmNvZGVyKSB7Cj4gLQkJaWYgKCFpbnRlbF9wb3J0X2lz X3RjKGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KSkKPiArCQllbnVtIHBoeSBwaHkgPSBpbnRlbF9w b3J0X3RvX3BoeShkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCk7Cj4gKwo+ICsJCWlmICghaW50ZWxf cGh5X2lzX3RjKGRldl9wcml2LCBwaHkpKQo+ICAJCQljb250aW51ZTsKPiAgCj4gIAkJLyogV2Un bGwgY2hlY2sgdGhlIE1TVCBwcmltYXJ5IHBvcnQgKi8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kcC5jCj4gaW5kZXggOGY3MTg4ZDcxZDA4Li42NzYwM2EyNDdlOGEgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcC5jCj4gQEAgLTI5Nyw5ICsyOTcs OSBAQCBzdGF0aWMgaW50IGljbF9tYXhfc291cmNlX3JhdGUoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCkKPiAgewo+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBkcF90 b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKPiAtCWVudW0gcG9ydCBwb3J0 ID0gZGlnX3BvcnQtPmJhc2UucG9ydDsKPiArCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9f cGh5KGRldl9wcml2LCBkaWdfcG9ydC0+YmFzZS5wb3J0KTsKPiAgCj4gLQlpZiAoaW50ZWxfcG9y dF9pc19jb21ib3BoeShkZXZfcHJpdiwgcG9ydCkgJiYKPiArCWlmIChpbnRlbF9waHlfaXNfY29t Ym8oZGV2X3ByaXYsIHBoeSkgJiYKPiAgCSAgICAhSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpICYm Cj4gIAkgICAgIWludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkpCj4gIAkJcmV0dXJuIDU0MDAwMDsK PiBAQCAtMTE5Miw3ICsxMTkyLDggQEAgaW50ZWxfZHBfYXV4X3hmZXIoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCwKPiAgCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1ID0KPiAgCQkJdG9f aTkxNShpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfdW5j b3JlICp1bmNvcmUgPSAmaTkxNS0+dW5jb3JlOwo+IC0JYm9vbCBpc190Y19wb3J0ID0gaW50ZWxf cG9ydF9pc190YyhpOTE1LCBpbnRlbF9kaWdfcG9ydC0+YmFzZS5wb3J0KTsKPiArCWVudW0gcGh5 IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGk5MTUsIGludGVsX2RpZ19wb3J0LT5iYXNlLnBvcnQp Owo+ICsJYm9vbCBpc190Y19wb3J0ID0gaW50ZWxfcGh5X2lzX3RjKGk5MTUsIHBoeSk7Cj4gIAlp OTE1X3JlZ190IGNoX2N0bCwgY2hfZGF0YVs1XTsKPiAgCXUzMiBhdXhfY2xvY2tfZGl2aWRlcjsK PiAgCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gYXV4X2RvbWFpbiA9Cj4gQEAgLTUy MTEsMTAgKzUyMTIsMTEgQEAgc3RhdGljIGJvb2wgaWNsX2RpZ2l0YWxfcG9ydF9jb25uZWN0ZWQo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpCj4gIHsKPiAgCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ICAJc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXIt PmJhc2UpOwo+ICsJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIGVu Y29kZXItPnBvcnQpOwo+ICAKPiAtCWlmIChpbnRlbF9wb3J0X2lzX2NvbWJvcGh5KGRldl9wcml2 LCBlbmNvZGVyLT5wb3J0KSkKPiArCWlmIChpbnRlbF9waHlfaXNfY29tYm8oZGV2X3ByaXYsIHBo eSkpCj4gIAkJcmV0dXJuIGljbF9jb21ib19wb3J0X2Nvbm5lY3RlZChkZXZfcHJpdiwgZGlnX3Bv cnQpOwo+IC0JZWxzZSBpZiAoaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgZW5jb2Rlci0+cG9y dCkpCj4gKwllbHNlIGlmIChpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSkpCj4gIAkJcmV0 dXJuIGludGVsX3RjX3BvcnRfY29ubmVjdGVkKGRpZ19wb3J0KTsKPiAgCWVsc2UKPiAgCQlNSVNT SU5HX0NBU0UoZW5jb2Rlci0+aHBkX3Bpbik7Cj4gQEAgLTcxMTgsNiArNzEyMCw3IEBAIGludGVs X2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19w b3J0LAo+ICAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2VuY29kZXItPmJhc2UuZGV2 Owo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ ICAJZW51bSBwb3J0IHBvcnQgPSBpbnRlbF9lbmNvZGVyLT5wb3J0Owo+ICsJZW51bSBwaHkgcGh5 ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIHBvcnQpOwo+ICAJaW50IHR5cGU7Cj4gIAo+ ICAJLyogSW5pdGlhbGl6ZSB0aGUgd29yayBmb3IgbW9kZXNldCBpbiBjYXNlIG9mIGxpbmsgdHJh aW4gZmFpbHVyZSAqLwo+IEBAIC03MTQ0LDcgKzcxNDcsNyBAQCBpbnRlbF9kcF9pbml0X2Nvbm5l Y3RvcihzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCwKPiAgCQkgKiBD dXJyZW50bHkgd2UgZG9uJ3Qgc3VwcG9ydCBlRFAgb24gVHlwZUMgcG9ydHMsIGFsdGhvdWdoIGlu Cj4gIAkJICogdGhlb3J5IGl0IGNvdWxkIHdvcmsgb24gVHlwZUMgbGVnYWN5IHBvcnRzLgo+ICAJ CSAqLwo+IC0JCVdBUk5fT04oaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgcG9ydCkpOwo+ICsJ CVdBUk5fT04oaW50ZWxfcGh5X2lzX3RjKGRldl9wcml2LCBwaHkpKTsKPiAgCQl0eXBlID0gRFJN X01PREVfQ09OTkVDVE9SX2VEUDsKPiAgCX0gZWxzZSB7Cj4gIAkJdHlwZSA9IERSTV9NT0RFX0NP Tk5FQ1RPUl9EaXNwbGF5UG9ydDsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kcGxsX21nci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kcGxsX21nci5jCj4gaW5kZXggZjk1Mzk3MWU3YzNiLi5mODc4MmMyNGM0NDcgMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGxsX21nci5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGxsX21nci5jCj4gQEAg LTI1ODAsNyArMjU4MCw4IEBAIHN0YXRpYyBib29sIGljbF9jYWxjX2RwbGxfc3RhdGUoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gIAlzdHJ1Y3Qgc2tsX3dycGxsX3BhcmFt cyBwbGxfcGFyYW1zID0geyAwIH07Cj4gIAlib29sIHJldDsKPiAgCj4gLQlpZiAoaW50ZWxfcG9y dF9pc190YyhkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCkpCj4gKwlpZiAoaW50ZWxfcGh5X2lzX3Rj KGRldl9wcml2LCBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwKPiArCQkJCQkJCWVuY29kZXIt PnBvcnQpKSkKPiAgCQlyZXQgPSBpY2xfY2FsY190YnRfcGxsKGNydGNfc3RhdGUsICZwbGxfcGFy YW1zKTsKPiAgCWVsc2UgaWYgKGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxf T1VUUFVUX0hETUkpIHx8Cj4gIAkJIGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5U RUxfT1VUUFVUX0RTSSkpCj4gQEAgLTI5OTMsMTQgKzI5OTQsMTQgQEAgc3RhdGljIGJvb2wgaWNs X2dldF9kcGxscyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKPiAgCQkJICBzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKPiAgewo+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpOwo+IC0JZW51bSBwb3J0IHBv cnQgPSBlbmNvZGVyLT5wb3J0Owo+ICsJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHko ZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpOwo+ICAKPiAtCWlmIChpbnRlbF9wb3J0X2lzX2NvbWJv cGh5KGRldl9wcml2LCBwb3J0KSkKPiArCWlmIChpbnRlbF9waHlfaXNfY29tYm8oZGV2X3ByaXYs IHBoeSkpCj4gIAkJcmV0dXJuIGljbF9nZXRfY29tYm9fcGh5X2RwbGwoc3RhdGUsIGNydGMsIGVu Y29kZXIpOwo+IC0JZWxzZSBpZiAoaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgcG9ydCkpCj4g KwllbHNlIGlmIChpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSkpCj4gIAkJcmV0dXJuIGlj bF9nZXRfdGNfcGh5X2RwbGxzKHN0YXRlLCBjcnRjLCBlbmNvZGVyKTsKPiAgCj4gLQlNSVNTSU5H X0NBU0UocG9ydCk7Cj4gKwlNSVNTSU5HX0NBU0UocGh5KTsKPiAgCj4gIAlyZXR1cm4gZmFsc2U7 Cj4gIH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+IGluZGV4IDgxNWMyNmMwYjk4Yy4uNzcw ZjlmNmFhZDg0IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5o Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKPiBAQCAtMTQ5Miw5ICsx NDkyLDcgQEAgdm9pZCBpbnRlbF9wcHNfdW5sb2NrX3JlZ3Nfd2Eoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KTsKPiAgdm9pZCBpbnRlbF9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRy bV9lbmNvZGVyICplbmNvZGVyKTsKPiAgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKgo+ICBpbnRl bF9lbmNvZGVyX2N1cnJlbnRfbW9kZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7Cj4g LWJvb2wgaW50ZWxfcG9ydF9pc19jb21ib3BoeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsIGVudW0gcG9ydCBwb3J0KTsKPiAgYm9vbCBpbnRlbF9waHlfaXNfY29tYm8oc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBoeSBwaHkpOwo+IC1ib29sIGludGVs X3BvcnRfaXNfdGMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQg cG9ydCk7Cj4gIGJvb2wgaW50ZWxfcGh5X2lzX3RjKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgZW51bSBwaHkgcGh5KTsKPiAgZW51bSB0Y19wb3J0IGludGVsX3BvcnRfdG9fdGMo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ICAJCQkgICAgICBlbnVtIHBvcnQg cG9ydCk7Cj4gLS0gCj4gMi4xNy4yCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaW50ZWwtZ2Z4CgotLSAKVmlsbGUgU3lyasOkbMOkCkludGVsCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==