From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matt Roper Subject: [PATCH v6 4/5] drm/i915: Transition port type checks to phy checks Date: Tue, 9 Jul 2019 11:39:33 -0700 Message-ID: <20190709183934.445-5-matthew.d.roper@intel.com> References: <20190709183934.445-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 mga12.intel.com (mga12.intel.com [192.55.52.136]) by gabe.freedesktop.org (Postfix) with ESMTPS id 670676E096 for ; Tue, 9 Jul 2019 18:39:59 +0000 (UTC) In-Reply-To: <20190709183934.445-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: intel-gfx@lists.freedesktop.org Cc: Lucas De Marchi List-Id: intel-gfx@lists.freedesktop.org VHJhbnNpdGlvbiB0aGUgcmVtYWluaW5nIHVzZXMgb2YgaW50ZWxfcG9ydF9pc18qIG92ZXIgdG8g dGhlIGVxdWl2YWxlbnQKaW50ZWxfcGh5X2lzXyogZnVuY3Rpb25zIGFuZCBkcm9wIHRoZSBwb3J0 IGZ1bmN0aW9ucy4KCnY1OiBGaXggYSBjYWxsIGluIGEgZGVidWcgZnVuY3Rpb24gdGhhdCdzIG9u bHkgY2FsbGVkIHdoZW4KICAgIENPTkZJR19EUk1fSTkxNV9ERUJVR19SVU5USU1FX1BNIGlzIG9u LiAgKENJKQoKQ2M6IEpvc8OpIFJvYmVydG8gZGUgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29t PgpDYzogTHVjYXMgRGUgTWFyY2hpIDxsdWNhcy5kZW1hcmNoaUBpbnRlbC5jb20+ClNpZ25lZC1v ZmYtYnk6IE1hdHQgUm9wZXIgPG1hdHRoZXcuZC5yb3BlckBpbnRlbC5jb20+ClJldmlld2VkLWJ5 OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpSZXZpZXdl ZC1ieTogSm9zw6kgUm9iZXJ0byBkZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+Ci0tLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9iaW9zLmMgICAgIHwgIDQgKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMgICAgICB8IDM4ICsrKysrKysr KysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5j ICB8IDM4ICsrKysrLS0tLS0tLS0tLS0tLS0KIC4uLi9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rp c3BsYXlfcG93ZXIuYyAgICB8ICA0ICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RwLmMgICAgICAgfCAxNSArKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kcGxsX21nci5jIHwgMTEgKysrLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaCAgICAgICAgICAgICAgfCAgMiAtCiA3IGZpbGVzIGNoYW5nZWQsIDU1IGluc2VydGlv bnMoKyksIDU3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfYmlvcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9iaW9zLmMKaW5kZXggMGM5ODA4MTMyZDY3Li40ZmRiYjVjMzVkODcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYmlvcy5jCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVk ZSA8ZHJtL2RybV9kcF9oZWxwZXIuaD4KICNpbmNsdWRlIDxkcm0vaTkxNV9kcm0uaD4KIAorI2lu Y2x1ZGUgImRpc3BsYXkvaW50ZWxfZGlzcGxheS5oIgogI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxf Z21idXMuaCIKIAogI2luY2x1ZGUgImk5MTVfZHJ2LmgiCkBAIC0xNzMzLDEyICsxNzM0LDEzIEBA IGluaXRfdmJ0X21pc3NpbmdfZGVmYXVsdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQogCWZvciAocG9ydCA9IFBPUlRfQTsgcG9ydCA8IEk5MTVfTUFYX1BPUlRTOyBwb3J0Kysp IHsKIAkJc3RydWN0IGRkaV92YnRfcG9ydF9pbmZvICppbmZvID0KIAkJCSZkZXZfcHJpdi0+dmJ0 LmRkaV9wb3J0X2luZm9bcG9ydF07CisJCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5 KGRldl9wcml2LCBwb3J0KTsKIAogCQkvKgogCQkgKiBWQlQgaGFzIHRoZSBUeXBlQyBtb2RlIChu YXRpdmUsVEJUL1VTQikgYW5kIHdlIGRvbid0IHdhbnQKIAkJICogdG8gZGV0ZWN0IGl0LgogCQkg Ki8KLQkJaWYgKGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIHBvcnQpKQorCQlpZiAoaW50ZWxf cGh5X2lzX3RjKGRldl9wcml2LCBwaHkpKQogCQkJY29udGludWU7CiAKIAkJaW5mby0+c3VwcG9y dHNfZHZpID0gKHBvcnQgIT0gUE9SVF9BICYmIHBvcnQgIT0gUE9SVF9FKTsKZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCmluZGV4IGQ5ZWE1ODAzODY0Mi4uOGY3NjBhM2Uz MGZhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKQEAgLTg2OCwx MSArODY4LDEyIEBAIGljbF9nZXRfY29tYm9fYnVmX3RyYW5zKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgaW50IHR5cGUsIGludCByYXRlLAogc3RhdGljIGludCBpbnRlbF9kZGlf aGRtaV9sZXZlbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBw b3J0KQogewogCWludCBuX2VudHJpZXMsIGxldmVsLCBkZWZhdWx0X2VudHJ5OworCWVudW0gcGh5 IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBwb3J0KTsKIAogCWxldmVsID0gZGV2 X3ByaXYtPnZidC5kZGlfcG9ydF9pbmZvW3BvcnRdLmhkbWlfbGV2ZWxfc2hpZnQ7CiAKIAlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkgewotCQlpZiAoaW50ZWxfcG9ydF9pc19jb21ib3Bo eShkZXZfcHJpdiwgcG9ydCkpCisJCWlmIChpbnRlbF9waHlfaXNfY29tYm8oZGV2X3ByaXYsIHBo eSkpCiAJCQlpY2xfZ2V0X2NvbWJvX2J1Zl90cmFucyhkZXZfcHJpdiwgSU5URUxfT1VUUFVUX0hE TUksCiAJCQkJCQkwLCAmbl9lbnRyaWVzKTsKIAkJZWxzZQpAQCAtMTQ4Nyw5ICsxNDg4LDEwIEBA IHN0YXRpYyB2b2lkIGljbF9kZGlfY2xvY2tfZ2V0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rl ci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlICpwbGxfc3RhdGUgPSAm cGlwZV9jb25maWctPmRwbGxfaHdfc3RhdGU7CiAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5w b3J0OworCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBwb3J0KTsK IAlpbnQgbGlua19jbG9jazsKIAotCWlmIChpbnRlbF9wb3J0X2lzX2NvbWJvcGh5KGRldl9wcml2 LCBwb3J0KSkgeworCWlmIChpbnRlbF9waHlfaXNfY29tYm8oZGV2X3ByaXYsIHBoeSkpIHsKIAkJ bGlua19jbG9jayA9IGNubF9jYWxjX3dycGxsX2xpbmsoZGV2X3ByaXYsIHBsbF9zdGF0ZSk7CiAJ fSBlbHNlIHsKIAkJZW51bSBpbnRlbF9kcGxsX2lkIHBsbF9pZCA9IGludGVsX2dldF9zaGFyZWRf ZHBsbF9pZChkZXZfcHJpdiwKQEAgLTIwODYsNiArMjA4OCw3IEBAIHN0YXRpYyB2b2lkIGludGVs X2RkaV9nZXRfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJh c2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydDsKKwllbnVtIHBo eSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCk7CiAKIAkv KgogCSAqIFRPRE86IEFkZCBzdXBwb3J0IGZvciBNU1QgZW5jb2RlcnMuIEF0bSwgdGhlIGZvbGxv d2luZyBzaG91bGQgbmV2ZXIKQEAgLTIxMDMsNyArMjEwNiw3IEBAIHN0YXRpYyB2b2lkIGludGVs X2RkaV9nZXRfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAkg KiBwb3J0cy4KIAkgKi8KIAlpZiAoaW50ZWxfY3J0Y19oYXNfZHBfZW5jb2RlcihjcnRjX3N0YXRl KSB8fAotCSAgICBpbnRlbF9wb3J0X2lzX3RjKGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KSkKKwkg ICAgaW50ZWxfcGh5X2lzX3RjKGRldl9wcml2LCBwaHkpKQogCQlpbnRlbF9kaXNwbGF5X3Bvd2Vy X2dldChkZXZfcHJpdiwKIAkJCQkJaW50ZWxfZGRpX21haW5fbGlua19hdXhfZG9tYWluKGRpZ19w b3J0KSk7CiAKQEAgLTIyMjgsMTAgKzIyMzEsMTEgQEAgdTggaW50ZWxfZGRpX2RwX3ZvbHRhZ2Vf bWF4KHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHAgPSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwogCWVudW0g cG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKKwllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3Rv X3BoeShkZXZfcHJpdiwgcG9ydCk7CiAJaW50IG5fZW50cmllczsKIAogCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpID49IDExKSB7Ci0JCWlmIChpbnRlbF9wb3J0X2lzX2NvbWJvcGh5KGRldl9wcml2 LCBwb3J0KSkKKwkJaWYgKGludGVsX3BoeV9pc19jb21ibyhkZXZfcHJpdiwgcGh5KSkKIAkJCWlj bF9nZXRfY29tYm9fYnVmX3RyYW5zKGRldl9wcml2LCBlbmNvZGVyLT50eXBlLAogCQkJCQkJaW50 ZWxfZHAtPmxpbmtfcmF0ZSwgJm5fZW50cmllcyk7CiAJCWVsc2UKQEAgLTI2NjQsOSArMjY2OCw5 IEBAIHN0YXRpYyB2b2lkIGljbF9kZGlfdnN3aW5nX3NlcXVlbmNlKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAogCQkJCSAgICBlbnVtIGludGVsX291dHB1dF90eXBlIHR5cGUpCiB7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNvZGVyLT5iYXNl LmRldik7Ci0JZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0OworCWVudW0gcGh5IHBoeSA9 IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KTsKIAotCWlmIChpbnRl bF9wb3J0X2lzX2NvbWJvcGh5KGRldl9wcml2LCBwb3J0KSkKKwlpZiAoaW50ZWxfcGh5X2lzX2Nv bWJvKGRldl9wcml2LCBwaHkpKQogCQlpY2xfY29tYm9fcGh5X2RkaV92c3dpbmdfc2VxdWVuY2Uo ZW5jb2RlciwgbGV2ZWwsIHR5cGUpOwogCWVsc2UKIAkJaWNsX21nX3BoeV9kZGlfdnN3aW5nX3Nl cXVlbmNlKGVuY29kZXIsIGxpbmtfY2xvY2ssIGxldmVsKTsKQEAgLTI4NzcsNiArMjg4MSw3IEBA IHN0YXRpYyB2b2lkIGludGVsX2RkaV9jbGtfc2VsZWN0KHN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo ZW5jb2Rlci0+YmFzZS5kZXYpOwogCWVudW0gcG9ydCBwb3J0ID0gZW5jb2Rlci0+cG9ydDsKKwll bnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwgcG9ydCk7CiAJdTMyIHZh bDsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfc2hhcmVkX2RwbGwgKnBsbCA9IGNydGNfc3RhdGUtPnNo YXJlZF9kcGxsOwogCkBAIC0yODg2LDcgKzI4OTEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlf Y2xrX3NlbGVjdChzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAltdXRleF9sb2NrKCZk ZXZfcHJpdi0+ZHBsbF9sb2NrKTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKSB7 Ci0JCWlmICghaW50ZWxfcG9ydF9pc19jb21ib3BoeShkZXZfcHJpdiwgcG9ydCkpCisJCWlmICgh aW50ZWxfcGh5X2lzX2NvbWJvKGRldl9wcml2LCBwaHkpKQogCQkJSTkxNV9XUklURShERElfQ0xL X1NFTChwb3J0KSwKIAkJCQkgICBpY2xfcGxsX3RvX2RkaV9jbGtfc2VsKGVuY29kZXIsIGNydGNf c3RhdGUpKTsKIAl9IGVsc2UgaWYgKElTX0NBTk5PTkxBS0UoZGV2X3ByaXYpKSB7CkBAIC0yOTI2 LDkgKzI5MzEsMTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX2Nsa19kaXNhYmxlKHN0cnVjdCBp bnRlbF9lbmNvZGVyICplbmNvZGVyKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCWVudW0gcG9ydCBwb3J0ID0gZW5j b2Rlci0+cG9ydDsKKwllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJpdiwg cG9ydCk7CiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkgewotCQlpZiAoIWludGVs X3BvcnRfaXNfY29tYm9waHkoZGV2X3ByaXYsIHBvcnQpKQorCQlpZiAoIWludGVsX3BoeV9pc19j b21ibyhkZXZfcHJpdiwgcGh5KSkKIAkJCUk5MTVfV1JJVEUoRERJX0NMS19TRUwocG9ydCksIERE SV9DTEtfU0VMX05PTkUpOwogCX0gZWxzZSBpZiAoSVNfQ0FOTk9OTEFLRShkZXZfcHJpdikpIHsK IAkJSTkxNV9XUklURShEUENMS0FfQ0ZHQ1IwLCBJOTE1X1JFQUQoRFBDTEtBX0NGR0NSMCkgfApA QCAtMzEzNSw3ICszMTQxLDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZGRpX3ByZV9lbmFibGVfZHAo c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAKIAlpbnRlbF9kZGlfY2xrX3NlbGVjdChl bmNvZGVyLCBjcnRjX3N0YXRlKTsKIAotCWlmICghaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwg cG9ydCkgfHwKKwlpZiAoIWludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgcGh5KSB8fAogCSAgICBk aWdfcG9ydC0+dGNfbW9kZSAhPSBUQ19QT1JUX1RCVF9BTFQpCiAJCWludGVsX2Rpc3BsYXlfcG93 ZXJfZ2V0KGRldl9wcml2LAogCQkJCQlkaWdfcG9ydC0+ZGRpX2lvX3Bvd2VyX2RvbWFpbik7CkBA IC0zMTUzLDcgKzMxNTksNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcHJlX2VuYWJsZV9kcChz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIAllbHNlCiAJCWludGVsX3ByZXBhcmVfZHBf ZGRpX2J1ZmZlcnMoZW5jb2RlciwgY3J0Y19zdGF0ZSk7CiAKLQlpZiAoaW50ZWxfcG9ydF9pc19j b21ib3BoeShkZXZfcHJpdiwgcG9ydCkpIHsKKwlpZiAoaW50ZWxfcGh5X2lzX2NvbWJvKGRldl9w cml2LCBwaHkpKSB7CiAJCWJvb2wgbGFuZV9yZXZlcnNhbCA9CiAJCQlkaWdfcG9ydC0+c2F2ZWRf cG9ydF9iaXRzICYgRERJX0JVRl9QT1JUX1JFVkVSU0FMOwogCkBAIC0zMzA1LDYgKzMzMTEsNyBA QCBzdGF0aWMgdm9pZCBpbnRlbF9kZGlfcG9zdF9kaXNhYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNv ZGVyICplbmNvZGVyLAogCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAgPSAmZGlnX3BvcnQtPmRw OwogCWJvb2wgaXNfbXN0ID0gaW50ZWxfY3J0Y19oYXNfdHlwZShvbGRfY3J0Y19zdGF0ZSwKIAkJ CQkJICBJTlRFTF9PVVRQVVRfRFBfTVNUKTsKKwllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3Rv X3BoeShkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCk7CiAKIAlpZiAoIWlzX21zdCkgewogCQlpbnRl bF9kZGlfZGlzYWJsZV9waXBlX2Nsb2NrKG9sZF9jcnRjX3N0YXRlKTsKQEAgLTMzMjAsNyArMzMy Nyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9wb3N0X2Rpc2FibGVfZHAoc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIsCiAJaW50ZWxfZWRwX3BhbmVsX3ZkZF9vbihpbnRlbF9kcCk7CiAJ aW50ZWxfZWRwX3BhbmVsX29mZihpbnRlbF9kcCk7CiAKLQlpZiAoIWludGVsX3BvcnRfaXNfdGMo ZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpIHx8CisJaWYgKCFpbnRlbF9waHlfaXNfdGMoZGV2X3By aXYsIHBoeSkgfHwKIAkgICAgZGlnX3BvcnQtPnRjX21vZGUgIT0gVENfUE9SVF9UQlRfQUxUKQog CQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dF91bmNoZWNrZWQoZGV2X3ByaXYsCiAJCQkJCQkgIGRp Z19wb3J0LT5kZGlfaW9fcG93ZXJfZG9tYWluKTsKQEAgLTM2NzAsOCArMzY3Nyw5IEBAIGludGVs X2RkaV9wcmVfcGxsX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2Uu ZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190b19kaWdf cG9ydCgmZW5jb2Rlci0+YmFzZSk7Ci0JYm9vbCBpc190Y19wb3J0ID0gaW50ZWxfcG9ydF9pc190 YyhkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCk7CiAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5w b3J0OworCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBwb3J0KTsK Kwlib29sIGlzX3RjX3BvcnQgPSBpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSk7CiAKIAlp ZiAoaXNfdGNfcG9ydCkKIAkJaW50ZWxfdGNfcG9ydF9nZXRfbGluayhkaWdfcG9ydCwgY3J0Y19z dGF0ZS0+bGFuZV9jb3VudCk7CkBAIC0zNzAxLDcgKzM3MDksOCBAQCBpbnRlbF9kZGlfcG9zdF9w bGxfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5j b2Rlci0+YmFzZSk7Ci0JYm9vbCBpc190Y19wb3J0ID0gaW50ZWxfcG9ydF9pc190YyhkZXZfcHJp diwgZW5jb2Rlci0+cG9ydCk7CisJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2 X3ByaXYsIGVuY29kZXItPnBvcnQpOworCWJvb2wgaXNfdGNfcG9ydCA9IGludGVsX3BoeV9pc190 YyhkZXZfcHJpdiwgcGh5KTsKIAogCWlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNydGNf c3RhdGUpIHx8IGlzX3RjX3BvcnQpCiAJCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0X3VuY2hlY2tl ZChkZXZfcHJpdiwKQEAgLTQyMTMsNiArNDIyMiw3IEBAIHZvaWQgaW50ZWxfZGRpX2luaXQoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCkKIAlzdHJ1Y3Qg ZHJtX2VuY29kZXIgKmVuY29kZXI7CiAJYm9vbCBpbml0X2hkbWksIGluaXRfZHAsIGluaXRfbHNw Y29uID0gZmFsc2U7CiAJZW51bSBwaXBlIHBpcGU7CisJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9y dF90b19waHkoZGV2X3ByaXYsIHBvcnQpOwogCiAJaW5pdF9oZG1pID0gcG9ydF9pbmZvLT5zdXBw b3J0c19kdmkgfHwgcG9ydF9pbmZvLT5zdXBwb3J0c19oZG1pOwogCWluaXRfZHAgPSBwb3J0X2lu Zm8tPnN1cHBvcnRzX2RwOwpAQCAtNDI3Niw3ICs0Mjg2LDcgQEAgdm9pZCBpbnRlbF9kZGlfaW5p dChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQogCWlu dGVsX2RpZ19wb3J0LT5tYXhfbGFuZXMgPSBpbnRlbF9kZGlfbWF4X2xhbmVzKGludGVsX2RpZ19w b3J0KTsKIAlpbnRlbF9kaWdfcG9ydC0+YXV4X2NoID0gaW50ZWxfYmlvc19wb3J0X2F1eF9jaChk ZXZfcHJpdiwgcG9ydCk7CiAKLQlpZiAoaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgcG9ydCkp IHsKKwlpZiAoaW50ZWxfcGh5X2lzX3RjKGRldl9wcml2LCBwaHkpKSB7CiAJCWJvb2wgaXNfbGVn YWN5ID0gIXBvcnRfaW5mby0+c3VwcG9ydHNfdHlwZWNfdXNiICYmCiAJCQkJICFwb3J0X2luZm8t PnN1cHBvcnRzX3RidDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rp c3BsYXkuYwppbmRleCA0NGM3OWY4YmQwMjguLmMyZWQ0YmQ4ZDU2YiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKQEAgLTY2NzEsMjAgKzY2NzEsNiBA QCBzdGF0aWMgdm9pZCBpOXh4X3BmaXRfZW5hYmxlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlKQogCUk5MTVfV1JJVEUoQkNMUlBBVChjcnRjLT5waXBlKSwgMCk7CiB9 CiAKLWJvb2wgaW50ZWxfcG9ydF9pc19jb21ib3BoeShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQotewotCWlmIChwb3J0ID09IFBPUlRfTk9ORSkKLQkJ cmV0dXJuIGZhbHNlOwotCi0JaWYgKElTX0VMS0hBUlRMQUtFKGRldl9wcml2KSkKLQkJcmV0dXJu IHBvcnQgPD0gUE9SVF9DOwotCi0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCi0JCXJl dHVybiBwb3J0IDw9IFBPUlRfQjsKLQotCXJldHVybiBmYWxzZTsKLX0KLQogYm9vbCBpbnRlbF9w aHlfaXNfY29tYm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBoeSBw aHkpCiB7CiAJaWYgKHBoeSA9PSBQSFlfTk9ORSkKQEAgLTY2OTksMTQgKzY2ODUsNiBAQCBib29s IGludGVsX3BoeV9pc19jb21ibyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVu dW0gcGh5IHBoeSkKIAlyZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgaW50ZWxfcG9ydF9pc190Yyhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQotewotCWlm IChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExICYmICFJU19FTEtIQVJUTEFLRShkZXZfcHJpdikp Ci0JCXJldHVybiBwb3J0ID49IFBPUlRfQyAmJiBwb3J0IDw9IFBPUlRfRjsKLQotCXJldHVybiBm YWxzZTsKLX0KLQogYm9vbCBpbnRlbF9waHlfaXNfdGMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LCBlbnVtIHBoeSBwaHkpCiB7CiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0g MTEgJiYgIUlTX0VMS0hBUlRMQUtFKGRldl9wcml2KSkKQEAgLTY3NTYsOCArNjczNCw5IEBAIGVu dW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4KIGludGVsX2F1eF9wb3dlcl9kb21haW4oc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCiB7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7CisJZW51 bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIGRpZ19wb3J0LT5iYXNlLnBv cnQpOwogCi0JaWYgKGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIGRpZ19wb3J0LT5iYXNlLnBv cnQpICYmCisJaWYgKGludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgcGh5KSAmJgogCSAgICBkaWdf cG9ydC0+dGNfbW9kZSA9PSBUQ19QT1JUX1RCVF9BTFQpIHsKIAkJc3dpdGNoIChkaWdfcG9ydC0+ YXV4X2NoKSB7CiAJCWNhc2UgQVVYX0NIX0M6CkBAIC0xMDA5MSwxNiArMTAwNzAsMTcgQEAgc3Rh dGljIHZvaWQgaWNlbGFrZV9nZXRfZGRpX3BsbChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCiAJCQkJZW51bSBwb3J0IHBvcnQsCiAJCQkJc3RydWN0IGludGVsX2NydGNfc3RhdGUg KnBpcGVfY29uZmlnKQogeworCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9w cml2LCBwb3J0KTsKIAllbnVtIGljbF9wb3J0X2RwbGxfaWQgcG9ydF9kcGxsX2lkOwogCWVudW0g aW50ZWxfZHBsbF9pZCBpZDsKIAl1MzIgdGVtcDsKIAotCWlmIChpbnRlbF9wb3J0X2lzX2NvbWJv cGh5KGRldl9wcml2LCBwb3J0KSkgeworCWlmIChpbnRlbF9waHlfaXNfY29tYm8oZGV2X3ByaXYs IHBoeSkpIHsKIAkJdGVtcCA9IEk5MTVfUkVBRChJQ0xfRFBDTEtBX0NGR0NSMCkgJgotCQkgICAg ICAgRFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9NQVNLKHBvcnQpOwotCQlpZCA9IHRlbXAgPj4g RFBDTEtBX0NGR0NSMF9ERElfQ0xLX1NFTF9TSElGVChwb3J0KTsKKwkJCUlDTF9EUENMS0FfQ0ZH Q1IwX0RESV9DTEtfU0VMX01BU0socGh5KTsKKwkJaWQgPSB0ZW1wID4+IElDTF9EUENMS0FfQ0ZH Q1IwX0RESV9DTEtfU0VMX1NISUZUKHBoeSk7CiAJCXBvcnRfZHBsbF9pZCA9IElDTF9QT1JUX0RQ TExfREVGQVVMVDsKLQl9IGVsc2UgaWYgKGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIHBvcnQp KSB7CisJfSBlbHNlIGlmIChpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSkpIHsKIAkJdTMy IGNsa19zZWwgPSBJOTE1X1JFQUQoRERJX0NMS19TRUwocG9ydCkpICYgRERJX0NMS19TRUxfTUFT SzsKIAogCQlpZiAoY2xrX3NlbCA9PSBERElfQ0xLX1NFTF9NRykgewpAQCAtMTY5NjIsOSArMTY5 NDIsMTEgQEAgaW50ZWxfbW9kZXNldF9zZXR1cF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LAogCiAJLyogU2FuaXRpemUgdGhlIFR5cGVDIHBvcnQgbW9kZSB1cGZyb250LCBlbmNvZGVy cyBkZXBlbmQgb24gdGhpcyAqLwogCWZvcl9lYWNoX2ludGVsX2VuY29kZXIoZGV2LCBlbmNvZGVy KSB7CisJCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBlbmNvZGVy LT5wb3J0KTsKKwogCQkvKiBXZSBuZWVkIHRvIHNhbml0aXplIG9ubHkgdGhlIE1TVCBwcmltYXJ5 IHBvcnQuICovCiAJCWlmIChlbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9EUF9NU1QgJiYK LQkJICAgIGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpKQorCQkgICAg aW50ZWxfcGh5X2lzX3RjKGRldl9wcml2LCBwaHkpKQogCQkJaW50ZWxfdGNfcG9ydF9zYW5pdGl6 ZShlbmNfdG9fZGlnX3BvcnQoJmVuY29kZXItPmJhc2UpKTsKIAl9CiAKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMKaW5kZXggYTI0ZDE4 NTliMzdiLi43ZTIyYTI3MDQ4NDMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGlzcGxheV9wb3dlci5jCkBAIC00ODksNyArNDg5LDkgQEAgc3RhdGljIHZv aWQgaWNsX3RjX3BvcnRfYXNzZXJ0X3JlZl9oZWxkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAlhdXhfY2ggPSBpY2xfdGNfcGh5X2F1eF9jaChkZXZfcHJpdiwgcG93ZXJfd2Vs bCk7CiAKIAlmb3JfZWFjaF9pbnRlbF9lbmNvZGVyKCZkZXZfcHJpdi0+ZHJtLCBlbmNvZGVyKSB7 Ci0JCWlmICghaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCkpCisJCWVu dW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LCBlbmNvZGVyLT5wb3J0KTsK KworCQlpZiAoIWludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgcGh5KSkKIAkJCWNvbnRpbnVlOwog CiAJCS8qIFdlJ2xsIGNoZWNrIHRoZSBNU1QgcHJpbWFyeSBwb3J0ICovCmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKaW5kZXggMGJkYjdlY2M1YTgxLi5hOWRiMTZkZTI5OTkg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHAuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwLmMKQEAgLTI5Nyw5ICsyOTcs OSBAQCBzdGF0aWMgaW50IGljbF9tYXhfc291cmNlX3JhdGUoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCkKIHsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9IGRwX3RvX2Rp Z19wb3J0KGludGVsX2RwKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKLQllbnVtIHBvcnQgcG9ydCA9IGRpZ19w b3J0LT5iYXNlLnBvcnQ7CisJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3By aXYsIGRpZ19wb3J0LT5iYXNlLnBvcnQpOwogCi0JaWYgKGludGVsX3BvcnRfaXNfY29tYm9waHko ZGV2X3ByaXYsIHBvcnQpICYmCisJaWYgKGludGVsX3BoeV9pc19jb21ibyhkZXZfcHJpdiwgcGh5 KSAmJgogCSAgICAhSVNfRUxLSEFSVExBS0UoZGV2X3ByaXYpICYmCiAJICAgICFpbnRlbF9kcF9p c19lZHAoaW50ZWxfZHApKQogCQlyZXR1cm4gNTQwMDAwOwpAQCAtMTE5Miw3ICsxMTkyLDggQEAg aW50ZWxfZHBfYXV4X3hmZXIoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKIAlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqaTkxNSA9CiAJCQl0b19pOTE1KGludGVsX2RpZ19wb3J0LT5iYXNlLmJh c2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfdW5jb3JlICp1bmNvcmUgPSAmaTkxNS0+dW5jb3JlOwot CWJvb2wgaXNfdGNfcG9ydCA9IGludGVsX3BvcnRfaXNfdGMoaTkxNSwgaW50ZWxfZGlnX3BvcnQt PmJhc2UucG9ydCk7CisJZW51bSBwaHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoaTkxNSwgaW50 ZWxfZGlnX3BvcnQtPmJhc2UucG9ydCk7CisJYm9vbCBpc190Y19wb3J0ID0gaW50ZWxfcGh5X2lz X3RjKGk5MTUsIHBoeSk7CiAJaTkxNV9yZWdfdCBjaF9jdGwsIGNoX2RhdGFbNV07CiAJdTMyIGF1 eF9jbG9ja19kaXZpZGVyOwogCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gYXV4X2Rv bWFpbiA9CkBAIC01MjExLDEwICs1MjEyLDExIEBAIHN0YXRpYyBib29sIGljbF9kaWdpdGFsX3Bv cnRfY29ubmVjdGVkKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKQogewogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwog CXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZl bmNvZGVyLT5iYXNlKTsKKwllbnVtIHBoeSBwaHkgPSBpbnRlbF9wb3J0X3RvX3BoeShkZXZfcHJp diwgZW5jb2Rlci0+cG9ydCk7CiAKLQlpZiAoaW50ZWxfcG9ydF9pc19jb21ib3BoeShkZXZfcHJp diwgZW5jb2Rlci0+cG9ydCkpCisJaWYgKGludGVsX3BoeV9pc19jb21ibyhkZXZfcHJpdiwgcGh5 KSkKIAkJcmV0dXJuIGljbF9jb21ib19wb3J0X2Nvbm5lY3RlZChkZXZfcHJpdiwgZGlnX3BvcnQp OwotCWVsc2UgaWYgKGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpKQor CWVsc2UgaWYgKGludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgcGh5KSkKIAkJcmV0dXJuIGludGVs X3RjX3BvcnRfY29ubmVjdGVkKGRpZ19wb3J0KTsKIAllbHNlCiAJCU1JU1NJTkdfQ0FTRShlbmNv ZGVyLT5ocGRfcGluKTsKQEAgLTcxMTMsNiArNzExNSw3IEBAIGludGVsX2RwX2luaXRfY29ubmVj dG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0LAogCXN0cnVjdCBk cm1fZGV2aWNlICpkZXYgPSBpbnRlbF9lbmNvZGVyLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJZW51bSBwb3J0IHBvcnQgPSBp bnRlbF9lbmNvZGVyLT5wb3J0OworCWVudW0gcGh5IHBoeSA9IGludGVsX3BvcnRfdG9fcGh5KGRl dl9wcml2LCBwb3J0KTsKIAlpbnQgdHlwZTsKIAogCS8qIEluaXRpYWxpemUgdGhlIHdvcmsgZm9y IG1vZGVzZXQgaW4gY2FzZSBvZiBsaW5rIHRyYWluIGZhaWx1cmUgKi8KQEAgLTcxMzksNyArNzE0 Miw3IEBAIGludGVsX2RwX2luaXRfY29ubmVjdG9yKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQg KmludGVsX2RpZ19wb3J0LAogCQkgKiBDdXJyZW50bHkgd2UgZG9uJ3Qgc3VwcG9ydCBlRFAgb24g VHlwZUMgcG9ydHMsIGFsdGhvdWdoIGluCiAJCSAqIHRoZW9yeSBpdCBjb3VsZCB3b3JrIG9uIFR5 cGVDIGxlZ2FjeSBwb3J0cy4KIAkJICovCi0JCVdBUk5fT04oaW50ZWxfcG9ydF9pc190YyhkZXZf cHJpdiwgcG9ydCkpOworCQlXQVJOX09OKGludGVsX3BoeV9pc190YyhkZXZfcHJpdiwgcGh5KSk7 CiAJCXR5cGUgPSBEUk1fTU9ERV9DT05ORUNUT1JfZURQOwogCX0gZWxzZSB7CiAJCXR5cGUgPSBE Uk1fTU9ERV9DT05ORUNUT1JfRGlzcGxheVBvcnQ7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2RwbGxfbWdyLmMKaW5kZXggMzBkNzUwMGViNjZjLi5mYzZmM2M1MjYyOWEg MTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3Iu YworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmMKQEAg LTI1ODQsNyArMjU4NCw4IEBAIHN0YXRpYyBib29sIGljbF9jYWxjX2RwbGxfc3RhdGUoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJc3RydWN0IHNrbF93cnBsbF9wYXJhbXMg cGxsX3BhcmFtcyA9IHsgMCB9OwogCWJvb2wgcmV0OwogCi0JaWYgKGludGVsX3BvcnRfaXNfdGMo ZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpKQorCWlmIChpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYs IGludGVsX3BvcnRfdG9fcGh5KGRldl9wcml2LAorCQkJCQkJCWVuY29kZXItPnBvcnQpKSkKIAkJ cmV0ID0gaWNsX2NhbGNfdGJ0X3BsbChjcnRjX3N0YXRlLCAmcGxsX3BhcmFtcyk7CiAJZWxzZSBp ZiAoaW50ZWxfY3J0Y19oYXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfSERNSSkgfHwK IAkJIGludGVsX2NydGNfaGFzX3R5cGUoY3J0Y19zdGF0ZSwgSU5URUxfT1VUUFVUX0RTSSkpCkBA IC0zMDA0LDE0ICszMDA1LDE0IEBAIHN0YXRpYyBib29sIGljbF9nZXRfZHBsbHMoc3RydWN0IGlu dGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCQkgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3Rh dGUtPmJhc2UuZGV2KTsKLQllbnVtIHBvcnQgcG9ydCA9IGVuY29kZXItPnBvcnQ7CisJZW51bSBw aHkgcGh5ID0gaW50ZWxfcG9ydF90b19waHkoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpOwogCi0J aWYgKGludGVsX3BvcnRfaXNfY29tYm9waHkoZGV2X3ByaXYsIHBvcnQpKQorCWlmIChpbnRlbF9w aHlfaXNfY29tYm8oZGV2X3ByaXYsIHBoeSkpCiAJCXJldHVybiBpY2xfZ2V0X2NvbWJvX3BoeV9k cGxsKHN0YXRlLCBjcnRjLCBlbmNvZGVyKTsKLQllbHNlIGlmIChpbnRlbF9wb3J0X2lzX3RjKGRl dl9wcml2LCBwb3J0KSkKKwllbHNlIGlmIChpbnRlbF9waHlfaXNfdGMoZGV2X3ByaXYsIHBoeSkp CiAJCXJldHVybiBpY2xfZ2V0X3RjX3BoeV9kcGxscyhzdGF0ZSwgY3J0YywgZW5jb2Rlcik7CiAK LQlNSVNTSU5HX0NBU0UocG9ydCk7CisJTUlTU0lOR19DQVNFKHBoeSk7CiAKIAlyZXR1cm4gZmFs c2U7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDgxNWMyNmMwYjk4Yy4uNzcwZjlm NmFhZDg0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtMTQ5Miw5ICsxNDkyLDcgQEAg dm9pZCBpbnRlbF9wcHNfdW5sb2NrX3JlZ3Nfd2Eoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KTsKIHZvaWQgaW50ZWxfZW5jb2Rlcl9kZXN0cm95KHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2Rlcik7CiBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqCiBpbnRlbF9lbmNvZGVyX2N1cnJl bnRfbW9kZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7Ci1ib29sIGludGVsX3BvcnRf aXNfY29tYm9waHkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQg cG9ydCk7CiBib29sIGludGVsX3BoeV9pc19jb21ibyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIGVudW0gcGh5IHBoeSk7Ci1ib29sIGludGVsX3BvcnRfaXNfdGMoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBvcnQgcG9ydCk7CiBib29sIGludGVsX3Bo eV9pc190YyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcGh5IHBoeSk7 CiBlbnVtIHRjX3BvcnQgaW50ZWxfcG9ydF90b190YyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAJCQkgICAgICBlbnVtIHBvcnQgcG9ydCk7Ci0tIAoyLjIwLjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==