From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v2 20/23] drm/i915: Keep the TypeC port mode fixed when the port is active Date: Thu, 20 Jun 2019 17:05:57 +0300 Message-ID: <20190620140600.11357-21-imre.deak@intel.com> References: <20190620140600.11357-1-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id C4F556E593 for ; Thu, 20 Jun 2019 14:06:57 +0000 (UTC) In-Reply-To: <20190620140600.11357-1-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: intel-gfx@lists.freedesktop.org Cc: Daniel Vetter List-Id: intel-gfx@lists.freedesktop.org VGhlIFR5cGVDIHBvcnQgbW9kZSBuZWVkcyB0byBzdGF5IGZpeGVkIHdoZW5ldmVyIHRoZSBwb3J0 IGlzIGFjdGl2ZS4gRG8KdGhhdCBieSBpbnRyb2R1Y2luZyBhIHRjX2xpbmtfcmVmY291bnQgdG8g YWNjb3VudCBmb3IgYWN0aXZlIHBvcnRzLAphdm9pZGluZyBjaGFuZ2luZyB0aGUgcG9ydCBtb2Rl IGlmIGEgcmVmZXJlbmNlIGlzIGhlbGQuCgpEdXJpbmcgdGhlIG1vZGVzZXQgY29tbWl0IHBoYXNl IHdlIGFsc28gaGF2ZSB0byByZXNldCB0aGUgcG9ydCBtb2RlIGFuZAp1cGRhdGUgdGhlIGFjdGl2 ZSBQTEwgcmVmbGVjdGluZyB0aGUgbmV3IHBvcnQgbW9kZS4gV2UgY2FuIGRvIHRoaXMgb25seQpv bmNlIHRoZSBwb3J0IGFuZCBpdHMgb2xkIFBMTCBoYXMgYmVlbiBhbHJlYWR5IGRpc2FibGVkLiBB ZGQgdGhlIG5ldwplbmNvZGVyIHVwZGF0ZV9wcmVwYXJlL2NvbXBsZXRlIGhvb2tzIHRoYXQgYXJl IGNhbGxlZCBhcm91bmQgdGhlIHdob2xlCmVuYWJsaW5nIHNlcXVlbmNlLiBUaGUgVHlwZUMgc3Bl Y2lmaWMgaG9va3Mgb2YgdGhlc2Ugd2lsbCByZXNldCB0aGUgcG9ydAptb2RlLCB1cGRhdGUgdGhl IGFjdGl2ZSBQTEwgaWYgdGhlIHBvcnQgd2lsbCBiZSBhY3RpdmUgYW5kIGVuc3VyZSB0aGF0CnRo ZSBwb3J0IG1vZGUgd2lsbCBzdGF5IGZpeGVkIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIHdob2xl IGVuYWJsaW5nCnNlcXVlbmNlIGJ5IGhvbGRpbmcgYSB0Y19saW5rX3JlZmNvdW50LgoKRHVyaW5n IHRoZSBwb3J0IGVuYWJsaW5nLCB0aGUgcHJlX3BsbF9lbmFibGUvcG9zdF9wbGxfZGlzYWJsZSBo b29rcyB3aWxsCnRha2UvcmVsZWFzZSBhIHRjX2xpbmtfcmVmY291bnQgdG8gZW5zdXJlIHRoZSBw b3J0IG1vZGUgc3RheXMgZml4ZWQKd2hpbGUgdGhlIHBvcnQgaXMgYWN0aXZlLgoKQ2hhbmdpbmcg dGhlIHBvcnQgbW9kZSBzaG91bGQgYWxzbyBiZSBhdm9pZGVkIGR1cmluZyBjb25uZWN0b3IgZGV0 ZWN0aW9uCmFuZCBBVVggdHJhbnNmZXJzIGlmIHRoZSBwb3J0IGlzIGFjdGl2ZSwgd2UnbGwgZG8g dGhhdCBieSBjaGVja2luZyB0aGUKcG9ydCdzIHRjX2xpbmtfcmVmY291bnQuCgpXaGVuIHJlc2V0 dGluZyB0aGUgcG9ydCBtb2RlIHdlIGFsc28gaGF2ZSB0byB0YWtlIGludG8gYWNjb3VudCB0aGUK bWF4aW11bSBsYW5lcyBwcm92aWRlZCBieSB0aGUgRklBLiBJdCdzIGd1YXJhbnRlZWQgdG8gYmUg NCBpbiBUQlQtYWx0CmFuZCBsZWdhY3kgbW9kZXMsIGJ1dCB0aGVyZSBtYXkgYmUgbGVzcyBsYW5l cyBhdmFpbGFibGUgaW4gRFAtYWx0IG1vZGUsCmluIHdoaWNoIGNhc2Ugd2UgaGF2ZSB0byBmYWxs IGJhY2sgdG8gVEJULWFsdCBtb2RlLgoKV2hpbGUgYXQgaXQgYWxzbyB1cGRhdGUgaWNsX3RjX3Bo eV9jb25uZWN0KCkncyBjb2RlIGNvbW1lbnQsIHJlZmxlY3RpbmcKdGhlIGN1cnJlbnQgd2F5IG9m IHN3aXRjaGluZyB0aGUgcG9ydCBtb2RlLgoKdjI6Ci0gQWRkIHRoZSB1cGRhdGVfcHJlcGFyZS9j b21wbGV0ZSBob29rcyB0byB0aGUgZW5jb2RlciBpbnN0ZWFkIG9mIHRoZQogIGNvbm5lY3Rvci4g KFZpbGxlKQotIFNpbXBsaWZ5IGludGVsX2Nvbm5lY3Rvcl9uZWVkc19tb2Rlc2V0KCkgYnkgcmVt b3ZpbmcgcmVkdW5kYW50IGlmLgogIChWaWxsZSkKCkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxl LnN5cmphbGFAbGludXguaW50ZWwuY29tPgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRl ckBmZndsbC5jaD4KQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51 eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jICAgICAgfCA0 MSArKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMg IHwgOTYgKysrKysrKysrKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kcGxsX21nci5jIHwgMjggKysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2RwbGxfbWdyLmggfCAgMyArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX3RjLmMgICAgICAgfCA5NCArKysrKysrKysrKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfdGMuaCAgICAgICB8ICAzICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oICAgICAgICAgICAgICB8ICA4ICsrCiA3IGZpbGVzIGNoYW5nZWQsIDI0MyBp bnNlcnRpb25zKCspLCAzMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kZGkuYwppbmRleCAwYzViZmJkNjZiMTkuLmRkYmM0OTQ0YjRlMCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RkaS5jCkBAIC0zNjIzLDYgKzM2MjMsMzAgQEAg c3RhdGljIHZvaWQgaW50ZWxfZGRpX3NldF9maWFfbGFuZV9jb3VudChzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKIAlJOTE1X1dSSVRFKFBPUlRfVFhfREZMRVhEUE1MRTEsIHZhbCk7CiB9 CiAKK3ZvaWQKK2ludGVsX2RkaV91cGRhdGVfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0 YXRlICpzdGF0ZSwKKwkJCSBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKKwkJCSBzdHJ1 Y3QgaW50ZWxfY3J0YyAqY3J0YykKK3sKKwlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSA9CisJCWNydGMgPyBpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBj cnRjKSA6IE5VTEw7CisJaW50IHJlcXVpcmVkX2xhbmVzID0gY3J0Y19zdGF0ZSA/IGNydGNfc3Rh dGUtPmxhbmVfY291bnQgOiAxOworCisJV0FSTl9PTihjcnRjICYmIGNydGMtPmFjdGl2ZSk7CisK KwlpbnRlbF90Y19wb3J0X2dldF9saW5rKGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSks IHJlcXVpcmVkX2xhbmVzKTsKKwlpZiAoY3J0Y19zdGF0ZSAmJiBjcnRjX3N0YXRlLT5iYXNlLmFj dGl2ZSkKKwkJaW50ZWxfdXBkYXRlX2FjdGl2ZV9kcGxsKHN0YXRlLCBjcnRjLCBlbmNvZGVyKTsK K30KKwordm9pZAoraW50ZWxfZGRpX3VwZGF0ZV9jb21wbGV0ZShzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSwKKwkJCSAgc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJCQkg IHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQoreworCWludGVsX3RjX3BvcnRfcHV0X2xpbmsoZW5j X3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKSk7Cit9CisKIHN0YXRpYyB2b2lkCiBpbnRlbF9k ZGlfcHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCiAJCQkgY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCkBAIC0zNjMwLDEwICszNjU0 LDEzIEBAIGludGVsX2RkaV9wcmVfcGxsX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5j b2RlciwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVu Y29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCA9 IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7CisJYm9vbCBpc190Y19wb3J0ID0gaW50 ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCk7CiAJZW51bSBwb3J0IHBvcnQg PSBlbmNvZGVyLT5wb3J0OwogCi0JaWYgKGludGVsX2NydGNfaGFzX2RwX2VuY29kZXIoY3J0Y19z dGF0ZSkgfHwKLQkgICAgaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgZW5jb2Rlci0+cG9ydCkp CisJaWYgKGlzX3RjX3BvcnQpCisJCWludGVsX3RjX3BvcnRfZ2V0X2xpbmsoZGlnX3BvcnQsIGNy dGNfc3RhdGUtPmxhbmVfY291bnQpOworCisJaWYgKGludGVsX2NydGNfaGFzX2RwX2VuY29kZXIo Y3J0Y19zdGF0ZSkgfHwgaXNfdGNfcG9ydCkKIAkJaW50ZWxfZGlzcGxheV9wb3dlcl9nZXQoZGV2 X3ByaXYsCiAJCQkJCWludGVsX2RkaV9tYWluX2xpbmtfYXV4X2RvbWFpbihkaWdfcG9ydCkpOwog CkBAIC0zNjU4LDExICszNjg1LDE0IEBAIGludGVsX2RkaV9wb3N0X3BsbF9kaXNhYmxlKHN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKTsKKwli b29sIGlzX3RjX3BvcnQgPSBpbnRlbF9wb3J0X2lzX3RjKGRldl9wcml2LCBlbmNvZGVyLT5wb3J0 KTsKIAotCWlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUpIHx8Ci0JICAg IGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIGVuY29kZXItPnBvcnQpKQorCWlmIChpbnRlbF9j cnRjX2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUpIHx8IGlzX3RjX3BvcnQpCiAJCWludGVsX2Rp c3BsYXlfcG93ZXJfcHV0X3VuY2hlY2tlZChkZXZfcHJpdiwKIAkJCQkJCSAgaW50ZWxfZGRpX21h aW5fbGlua19hdXhfZG9tYWluKGRpZ19wb3J0KSk7CisKKwlpZiAoaXNfdGNfcG9ydCkKKwkJaW50 ZWxfdGNfcG9ydF9wdXRfbGluayhkaWdfcG9ydCk7CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2Rk aV9wcmVwYXJlX2xpbmtfcmV0cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQpAQCAtNDI1 Niw2ICs0Mjg2LDkgQEAgdm9pZCBpbnRlbF9kZGlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQogCQkJCSAhcG9ydF9pbmZvLT5zdXBwb3J0c190 YnQ7CiAKIAkJaW50ZWxfdGNfcG9ydF9pbml0KGludGVsX2RpZ19wb3J0LCBpc19sZWdhY3kpOwor CisJCWludGVsX2VuY29kZXItPnVwZGF0ZV9wcmVwYXJlID0gaW50ZWxfZGRpX3VwZGF0ZV9wcmVw YXJlOworCQlpbnRlbF9lbmNvZGVyLT51cGRhdGVfY29tcGxldGUgPSBpbnRlbF9kZGlfdXBkYXRl X2NvbXBsZXRlOwogCX0KIAogCXN3aXRjaCAocG9ydCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwppbmRleCA5M2UzZjU2OGQ3ZGIuLjY3OTMwN2E4NDA2 MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKQEAg LTYwMzcsNiArNjAzNyw5NCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2Rpc2FibGVfcGxhbmVz KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCWludGVsX2Zyb250YnVmZmVyX2Zs aXAoZGV2X3ByaXYsIGZiX2JpdHMpOwogfQogCisvKgorICogaW50ZWxfY29ubmVjdG9yX3ByaW1h cnlfZW5jb2RlciAtIGdldCB0aGUgcHJpbWFyeSBlbmNvZGVyIGZvciBhIGNvbm5lY3RvcgorICog QGNvbm5lY3RvcjogY29ubmVjdG9yIGZvciB3aGljaCB0byByZXR1cm4gdGhlIGVuY29kZXIKKyAq CisgKiBSZXR1cm5zIHRoZSBwcmltYXJ5IGVuY29kZXIgZm9yIGEgY29ubmVjdG9yLiBUaGVyZSBp cyBhIDE6MSBtYXBwaW5nIGZyb20KKyAqIGFsbCBjb25uZWN0b3JzIHRvIHRoZWlyIGVuY29kZXIs IGV4Y2VwdCBmb3IgRFAtTVNUIGNvbm5lY3RvcnMgd2hpY2ggaGF2ZQorICogYm90aCBhIHZpcnR1 YWwgYW5kIGEgcHJpbWFyeSBlbmNvZGVyLiBUaGVzZSBEUC1NU1QgcHJpbWFyeSBlbmNvZGVycyBj YW4gYmUKKyAqIHBvaW50ZWQgdG8gYnkgYXMgbWFueSBEUC1NU1QgY29ubmVjdG9ycyBhcyB0aGVy ZSBhcmUgcGlwZXMuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqCitpbnRlbF9j b25uZWN0b3JfcHJpbWFyeV9lbmNvZGVyKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rv cikKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKKworCWlmIChjb25uZWN0b3It Pm1zdF9wb3J0KQorCQlyZXR1cm4gJmRwX3RvX2RpZ19wb3J0KGNvbm5lY3Rvci0+bXN0X3BvcnQp LT5iYXNlOworCisJZW5jb2RlciA9IGludGVsX2F0dGFjaGVkX2VuY29kZXIoJmNvbm5lY3Rvci0+ YmFzZSk7CisJV0FSTl9PTighZW5jb2Rlcik7CisKKwlyZXR1cm4gZW5jb2RlcjsKK30KKworc3Rh dGljIGJvb2wKK2ludGVsX2Nvbm5lY3Rvcl9uZWVkc19tb2Rlc2V0KHN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKnN0YXRlLAorCQkJICAgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jfc3Rh dGUgKm9sZF9jb25uX3N0YXRlLAorCQkJICAgICAgY29uc3Qgc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKm5ld19jb25uX3N0YXRlKQoreworCXJldHVybiBuZXdfY29ubl9zdGF0ZS0+Y3J0YyAh PSBvbGRfY29ubl9zdGF0ZS0+Y3J0YyB8fAorCSAgICAgICAobmV3X2Nvbm5fc3RhdGUtPmNydGMg JiYKKwkJbmVlZHNfbW9kZXNldChkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZSgmc3RhdGUt PmJhc2UsCisJCQkJCQkJICAgIG5ld19jb25uX3N0YXRlLT5jcnRjKSkpOworfQorCitzdGF0aWMg dm9pZCBpbnRlbF9lbmNvZGVyc191cGRhdGVfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0 YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3Rh dGU7CisJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5ld19jb25uX3N0YXRlOworCXN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uOworCWludCBpOworCisJZm9yX2VhY2hfb2xkbmV3X2Nvbm5l Y3Rvcl9pbl9zdGF0ZSgmc3RhdGUtPmJhc2UsIGNvbm4sCisJCQkJCSAgIG9sZF9jb25uX3N0YXRl LCBuZXdfY29ubl9zdGF0ZSwgaSkgeworCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsK KwkJc3RydWN0IGludGVsX2NydGMgKmNydGM7CisKKwkJaWYgKCFpbnRlbF9jb25uZWN0b3JfbmVl ZHNfbW9kZXNldChzdGF0ZSwKKwkJCQkJCSAgIG9sZF9jb25uX3N0YXRlLAorCQkJCQkJICAgbmV3 X2Nvbm5fc3RhdGUpKQorCQkJY29udGludWU7CisKKwkJZW5jb2RlciA9IGludGVsX2Nvbm5lY3Rv cl9wcmltYXJ5X2VuY29kZXIodG9faW50ZWxfY29ubmVjdG9yKGNvbm4pKTsKKwkJaWYgKCFlbmNv ZGVyLT51cGRhdGVfcHJlcGFyZSkKKwkJCWNvbnRpbnVlOworCisJCWNydGMgPSBuZXdfY29ubl9z dGF0ZS0+Y3J0YyA/CisJCQl0b19pbnRlbF9jcnRjKG5ld19jb25uX3N0YXRlLT5jcnRjKSA6IE5V TEw7CisJCWVuY29kZXItPnVwZGF0ZV9wcmVwYXJlKHN0YXRlLCBlbmNvZGVyLCBjcnRjKTsKKwl9 Cit9CisKK3N0YXRpYyB2b2lkIGludGVsX2VuY29kZXJzX3VwZGF0ZV9jb21wbGV0ZShzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0 ZSAqb2xkX2Nvbm5fc3RhdGU7CisJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5ld19jb25u X3N0YXRlOworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uOworCWludCBpOworCisJZm9yX2Vh Y2hfb2xkbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZSgmc3RhdGUtPmJhc2UsIGNvbm4sCisJCQkJCSAg IG9sZF9jb25uX3N0YXRlLCBuZXdfY29ubl9zdGF0ZSwgaSkgeworCQlzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlcjsKKwkJc3RydWN0IGludGVsX2NydGMgKmNydGM7CisKKwkJaWYgKCFpbnRl bF9jb25uZWN0b3JfbmVlZHNfbW9kZXNldChzdGF0ZSwKKwkJCQkJCSAgIG9sZF9jb25uX3N0YXRl LAorCQkJCQkJICAgbmV3X2Nvbm5fc3RhdGUpKQorCQkJY29udGludWU7CisKKwkJZW5jb2RlciA9 IGludGVsX2Nvbm5lY3Rvcl9wcmltYXJ5X2VuY29kZXIodG9faW50ZWxfY29ubmVjdG9yKGNvbm4p KTsKKwkJaWYgKCFlbmNvZGVyLT51cGRhdGVfY29tcGxldGUpCisJCQljb250aW51ZTsKKworCQlj cnRjID0gbmV3X2Nvbm5fc3RhdGUtPmNydGMgPworCQkJdG9faW50ZWxfY3J0YyhuZXdfY29ubl9z dGF0ZS0+Y3J0YykgOiBOVUxMOworCQllbmNvZGVyLT51cGRhdGVfY29tcGxldGUoc3RhdGUsIGVu Y29kZXIsIGNydGMpOworCX0KK30KKwogc3RhdGljIHZvaWQgaW50ZWxfZW5jb2RlcnNfcHJlX3Bs bF9lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJCQkgIHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCQkgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRf c3RhdGUpCkBAIC0xMzg5OCwxNCArMTM5ODYsMjAgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWlj X2NvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAkJfQogCX0KIAor CWlmIChpbnRlbF9zdGF0ZS0+bW9kZXNldCkKKwkJaW50ZWxfZW5jb2RlcnNfdXBkYXRlX3ByZXBh cmUoaW50ZWxfc3RhdGUpOworCiAJLyogTm93IGVuYWJsZSB0aGUgY2xvY2tzLCBwbGFuZSwgcGlw ZSwgYW5kIGNvbm5lY3RvcnMgdGhhdCB3ZSBzZXQgdXAuICovCiAJZGV2X3ByaXYtPmRpc3BsYXku dXBkYXRlX2NydGNzKHN0YXRlKTsKIAotCWlmIChpbnRlbF9zdGF0ZS0+bW9kZXNldCkKKwlpZiAo aW50ZWxfc3RhdGUtPm1vZGVzZXQpIHsKKwkJaW50ZWxfZW5jb2RlcnNfdXBkYXRlX2NvbXBsZXRl KGludGVsX3N0YXRlKTsKKwogCQlpbnRlbF9zZXRfY2RjbGtfcG9zdF9wbGFuZV91cGRhdGUoZGV2 X3ByaXYsCiAJCQkJCQkgICZpbnRlbF9zdGF0ZS0+Y2RjbGsuYWN0dWFsLAogCQkJCQkJICAmZGV2 X3ByaXYtPmNkY2xrLmFjdHVhbCwKIAkJCQkJCSAgaW50ZWxfc3RhdGUtPmNkY2xrLnBpcGUpOwor CX0KIAogCS8qIEZJWE1FOiBXZSBzaG91bGQgY2FsbCBkcm1fYXRvbWljX2hlbHBlcl9jb21taXRf aHdfZG9uZSgpIGhlcmUKIAkgKiBhbHJlYWR5LCBidXQgc3RpbGwgbmVlZCB0aGUgc3RhdGUgZm9y IHRoZSBkZWxheWVkIG9wdGltaXphdGlvbi4gVG8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZHBsbF9tZ3IuYwppbmRleCBhOTk2YTNmYWQ0OGMuLmNiYjlhYTQ1OGYxOSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGxsX21nci5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYwpAQCAt MTkzOSw3ICsxOTM5LDkgQEAgc3RydWN0IGludGVsX2RwbGxfbWdyIHsKIAkJCSAgc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIpOwogCXZvaWQgKCpwdXRfZHBsbHMpKHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlLAogCQkJICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7Ci0KKwl2 b2lkICgqdXBkYXRlX2FjdGl2ZV9kcGxsKShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0 ZSwKKwkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKKwkJCQkgICBzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2Rlcik7CiAJdm9pZCAoKmR1bXBfaHdfc3RhdGUpKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX2h3 X3N0YXRlICpod19zdGF0ZSk7CiB9OwpAQCAtMzQwMCw2ICszNDAyLDcgQEAgc3RhdGljIGNvbnN0 IHN0cnVjdCBpbnRlbF9kcGxsX21nciBpY2xfcGxsX21nciA9IHsKIAkuZHBsbF9pbmZvID0gaWNs X3BsbHMsCiAJLmdldF9kcGxscyA9IGljbF9nZXRfZHBsbHMsCiAJLnB1dF9kcGxscyA9IGljbF9w dXRfZHBsbHMsCisJLnVwZGF0ZV9hY3RpdmVfZHBsbCA9IGljbF91cGRhdGVfYWN0aXZlX2RwbGws CiAJLmR1bXBfaHdfc3RhdGUgPSBpY2xfZHVtcF9od19zdGF0ZSwKIH07CiAKQEAgLTM1MjQsNiAr MzUyNywyOSBAQCB2b2lkIGludGVsX3JlbGVhc2Vfc2hhcmVkX2RwbGxzKHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlLAogCWRwbGxfbWdyLT5wdXRfZHBsbHMoc3RhdGUsIGNydGMpOwog fQogCisvKioKKyAqIGludGVsX3VwZGF0ZV9hY3RpdmVfZHBsbCAtIHVwZGF0ZSB0aGUgYWN0aXZl IERQTEwgZm9yIGEgQ1JUQy9lbmNvZGVyCisgKiBAc3RhdGU6IGF0b21pYyBzdGF0ZQorICogQGNy dGM6IHRoZSBDUlRDIGZvciB3aGljaCB0byB1cGRhdGUgdGhlIGFjdGl2ZSBEUExMCisgKiBAZW5j b2RlcjogZW5jb2RlciBkZXRlcm1pbmluZyB0aGUgdHlwZSBvZiBwb3J0IERQTEwKKyAqCisgKiBV cGRhdGUgdGhlIGFjdGl2ZSBEUExMIGZvciB0aGUgZ2l2ZW4gQGNydGMvQGVuY29kZXIgaW4gQGNy dGMncyBhdG9taWMgc3RhdGUsCisgKiBmcm9tIHRoZSBwb3J0IERQTExzIHJlc2VydmVkIHByZXZp b3VzbHkgYnkgaW50ZWxfcmVzZXJ2ZV9zaGFyZWRfZHBsbHMoKS4gVGhlCisgKiBEUExMIHNlbGVj dGVkIHdpbGwgYmUgYmFzZWQgb24gdGhlIGN1cnJlbnQgbW9kZSBvZiB0aGUgZW5jb2RlcidzIHBv cnQuCisgKi8KK3ZvaWQgaW50ZWxfdXBkYXRlX2FjdGl2ZV9kcGxsKHN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKnN0YXRlLAorCQkJICAgICAgc3RydWN0IGludGVsX2NydGMgKmNydGMsCisJCQkg ICAgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKKwljb25zdCBz dHJ1Y3QgaW50ZWxfZHBsbF9tZ3IgKmRwbGxfbWdyID0gZGV2X3ByaXYtPmRwbGxfbWdyOworCisJ aWYgKFdBUk5fT04oIWRwbGxfbWdyKSkKKwkJcmV0dXJuOworCisJZHBsbF9tZ3ItPnVwZGF0ZV9h Y3RpdmVfZHBsbChzdGF0ZSwgY3J0YywgZW5jb2Rlcik7Cit9CisKIC8qKgogICogaW50ZWxfc2hh cmVkX2RwbGxfZHVtcF9od19zdGF0ZSAtIHdyaXRlIGh3X3N0YXRlIHRvIGRtZXNnCiAgKiBAZGV2 X3ByaXY6IGk5MTUgZHJtIGRldmljZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kcGxsX21nci5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kcGxsX21nci5oCmluZGV4IDU3OWYyY2VhZmJhMy4uMTY2OGY4MTE2OTA4IDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2RwbGxfbWdyLmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGxsX21nci5oCkBAIC0zNDYsNiAr MzQ2LDkgQEAgdm9pZCBpbnRlbF9yZWxlYXNlX3NoYXJlZF9kcGxscyhzdHJ1Y3QgaW50ZWxfYXRv bWljX3N0YXRlICpzdGF0ZSwKIAkJCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7CiB2b2lkIGlj bF9zZXRfYWN0aXZlX3BvcnRfZHBsbChzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwKIAkJCSAgICAgIGVudW0gaWNsX3BvcnRfZHBsbF9pZCBwb3J0X2RwbGxfaWQpOwordm9pZCBp bnRlbF91cGRhdGVfYWN0aXZlX2RwbGwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUs CisJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKKwkJCSAgICAgIHN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyKTsKIHZvaWQgaW50ZWxfcHJlcGFyZV9zaGFyZWRfZHBsbChjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CiB2b2lkIGludGVsX2VuYWJs ZV9zaGFyZWRfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7 CiB2b2lkIGludGVsX2Rpc2FibGVfc2hhcmVkX2RwbGwoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF90Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90Yy5j CmluZGV4IDcxOTBiNTczNzZkNi4uYzg5MDQ5MTFlODQxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3RjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF90Yy5jCkBAIC0xNzIsMTkgKzE3MiwxMiBAQCBzdGF0aWMgYm9vbCBpY2xf dGNfcGh5X2lzX2luX3NhZmVfbW9kZShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9y dCkKICAqIGRpc3BsYXksIFVTQiwgZXRjLiBBcyBhIHJlc3VsdCwgaGFuZHNoYWtpbmcgdGhyb3Vn aCBGSUEgaXMgcmVxdWlyZWQgYXJvdW5kCiAgKiBjb25uZWN0IGFuZCBkaXNjb25uZWN0IHRvIGNs ZWFubHkgdHJhbnNmZXIgb3duZXJzaGlwIHdpdGggdGhlIGNvbnRyb2xsZXIgYW5kCiAgKiBzZXQg dGhlIHR5cGUtQyBwb3dlciBzdGF0ZS4KLSAqCi0gKiBXZSBjb3VsZCBvcHQgdG8gb25seSBkbyB0 aGUgY29ubmVjdCBmbG93IHdoZW4gd2UgYWN0dWFsbHkgdHJ5IHRvIHVzZSB0aGUgQVVYCi0gKiBj aGFubmVscyBvciBkbyBhIG1vZGVzZXQsIHRoZW4gaW1tZWRpYXRlbHkgcnVuIHRoZSBkaXNjb25u ZWN0IGZsb3cgYWZ0ZXIKLSAqIHVzYWdlLCBidXQgdGhlcmUgYXJlIHNvbWUgaW1wbGljYXRpb25z IG9uIHRoaXMgZm9yIGEgZHluYW1pYyBlbnZpcm9ubWVudDoKLSAqIHRoaW5ncyBtYXkgZ28gYXdh eSBvciBjaGFuZ2UgYmVoaW5kIG91ciBiYWNrcy4gU28gZm9yIG5vdyBvdXIgZHJpdmVyIGlzCi0g KiBhbHdheXMgdHJ5aW5nIHRvIGFjcXVpcmUgb3duZXJzaGlwIG9mIHRoZSBjb250cm9sbGVyIGFz IHNvb24gYXMgaXQgZ2V0cyBhbgotICogaW50ZXJydXB0IChvciBwb2xscyBzdGF0ZSBhbmQgc2Vl cyBhIHBvcnQgaXMgY29ubmVjdGVkKSBhbmQgb25seSBnaXZlcyBpdAotICogYmFjayB3aGVuIGl0 IHNlZXMgYSBkaXNjb25uZWN0LiBJbXBsZW1lbnRhdGlvbiBvZiBhIG1vcmUgZmluZS1ncmFpbmVk IG1vZGVsCi0gKiB3aWxsIHJlcXVpcmUgYSBsb3Qgb2YgY29vcmRpbmF0aW9uIHdpdGggdXNlciBz cGFjZSBhbmQgdGhvcm91Z2ggdGVzdGluZyBmb3IKLSAqIHRoZSBleHRyYSBwb3NzaWJsZSBjYXNl cy4KICAqLwotc3RhdGljIHZvaWQgaWNsX3RjX3BoeV9jb25uZWN0KHN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmRpZ19wb3J0KQorc3RhdGljIHZvaWQgaWNsX3RjX3BoeV9jb25uZWN0KHN0cnVj dCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0LAorCQkJICAgICAgIGludCByZXF1aXJlZF9s YW5lcykKIHsKKwlpbnQgbWF4X2xhbmVzOworCiAJaWYgKCFpY2xfdGNfcGh5X3N0YXR1c19jb21w bGV0ZShkaWdfcG9ydCkpIHsKIAkJRFJNX0RFQlVHX0tNUygiUG9ydCAlczogUEhZIG5vdCByZWFk eVxuIiwKIAkJCSAgICAgIGRpZ19wb3J0LT50Y19wb3J0X25hbWUpOwpAQCAtMTk1LDggKzE4OCw5 IEBAIHN0YXRpYyB2b2lkIGljbF90Y19waHlfY29ubmVjdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9w b3J0ICpkaWdfcG9ydCkKIAkgICAgIVdBUk5fT04oZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0KSkK IAkJZ290byBvdXRfc2V0X3RidF9hbHRfbW9kZTsKIAorCW1heF9sYW5lcyA9IGludGVsX3RjX3Bv cnRfZmlhX21heF9sYW5lX2NvdW50KGRpZ19wb3J0KTsKIAlpZiAoZGlnX3BvcnQtPnRjX2xlZ2Fj eV9wb3J0KSB7Ci0JCVdBUk5fT04oaW50ZWxfdGNfcG9ydF9maWFfbWF4X2xhbmVfY291bnQoZGln X3BvcnQpICE9IDQpOworCQlXQVJOX09OKG1heF9sYW5lcyAhPSA0KTsKIAkJZGlnX3BvcnQtPnRj X21vZGUgPSBUQ19QT1JUX0xFR0FDWTsKIAogCQlyZXR1cm47CkBAIC0yMTIsNiArMjA2LDEzIEBA IHN0YXRpYyB2b2lkIGljbF90Y19waHlfY29ubmVjdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0 ICpkaWdfcG9ydCkKIAkJZ290byBvdXRfc2V0X3NhZmVfbW9kZTsKIAl9CiAKKwlpZiAobWF4X2xh bmVzIDwgcmVxdWlyZWRfbGFuZXMpIHsKKwkJRFJNX0RFQlVHX0tNUygiUG9ydCAlczogUEhZIG1h eCBsYW5lcyAlZCA8IHJlcXVpcmVkIGxhbmVzICVkXG4iLAorCQkJICAgICAgZGlnX3BvcnQtPnRj X3BvcnRfbmFtZSwKKwkJCSAgICAgIG1heF9sYW5lcywgcmVxdWlyZWRfbGFuZXMpOworCQlnb3Rv IG91dF9zZXRfc2FmZV9tb2RlOworCX0KKwogCWRpZ19wb3J0LT50Y19tb2RlID0gVENfUE9SVF9E UF9BTFQ7CiAKIAlyZXR1cm47CkBAIC0yOTUsNyArMjk2LDggQEAgaW50ZWxfdGNfcG9ydF9nZXRf dGFyZ2V0X21vZGUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCiAJCQkJCSAg VENfUE9SVF9UQlRfQUxUOwogfQogCi1zdGF0aWMgdm9pZCBpbnRlbF90Y19wb3J0X3Jlc2V0X21v ZGUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCitzdGF0aWMgdm9pZCBpbnRl bF90Y19wb3J0X3Jlc2V0X21vZGUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQs CisJCQkJICAgICBpbnQgcmVxdWlyZWRfbGFuZXMpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7CiAJZW51bSB0 Y19wb3J0X21vZGUgb2xkX3RjX21vZGUgPSBkaWdfcG9ydC0+dGNfbW9kZTsKQEAgLTMwMyw3ICsz MDUsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF90Y19wb3J0X3Jlc2V0X21vZGUoc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCiAJaW50ZWxfZGlzcGxheV9wb3dlcl9mbHVzaF93b3Jr KGRldl9wcml2KTsKIAogCWljbF90Y19waHlfZGlzY29ubmVjdChkaWdfcG9ydCk7Ci0JaWNsX3Rj X3BoeV9jb25uZWN0KGRpZ19wb3J0KTsKKwlpY2xfdGNfcGh5X2Nvbm5lY3QoZGlnX3BvcnQsIHJl cXVpcmVkX2xhbmVzKTsKIAogCURSTV9ERUJVR19LTVMoIlBvcnQgJXM6IFRDIHBvcnQgbW9kZSBy ZXNldCAoJXMgLT4gJXMpXG4iLAogCQkgICAgICBkaWdfcG9ydC0+dGNfcG9ydF9uYW1lLApAQCAt MzExLDYgKzMxMywxNCBAQCBzdGF0aWMgdm9pZCBpbnRlbF90Y19wb3J0X3Jlc2V0X21vZGUoc3Ry dWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCiAJCSAgICAgIHRjX3BvcnRfbW9kZV9u YW1lKGRpZ19wb3J0LT50Y19tb2RlKSk7CiB9CiAKK3N0YXRpYyB2b2lkCitpbnRlbF90Y19wb3J0 X2xpbmtfaW5pdF9yZWZjb3VudChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCwK KwkJCQkgaW50IHJlZmNvdW50KQoreworCVdBUk5fT04oZGlnX3BvcnQtPnRjX2xpbmtfcmVmY291 bnQpOworCWRpZ19wb3J0LT50Y19saW5rX3JlZmNvdW50ID0gcmVmY291bnQ7Cit9CisKIHZvaWQg aW50ZWxfdGNfcG9ydF9zYW5pdGl6ZShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9y dCkKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9ICZkaWdfcG9ydC0+YmFzZTsK QEAgLTMyOCwxMSArMzM4LDEzIEBAIHZvaWQgaW50ZWxfdGNfcG9ydF9zYW5pdGl6ZShzdHJ1Y3Qg aW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKIAkJaWYgKCFpY2xfdGNfcGh5X2lzX2Nvbm5l Y3RlZChkaWdfcG9ydCkpCiAJCQlEUk1fREVCVUdfS01TKCJQb3J0ICVzOiBQSFkgZGlzY29ubmVj dGVkIHdpdGggJWQgYWN0aXZlIGxpbmsocylcbiIsCiAJCQkJICAgICAgZGlnX3BvcnQtPnRjX3Bv cnRfbmFtZSwgYWN0aXZlX2xpbmtzKTsKKwkJaW50ZWxfdGNfcG9ydF9saW5rX2luaXRfcmVmY291 bnQoZGlnX3BvcnQsIGFjdGl2ZV9saW5rcyk7CisKIAkJZ290byBvdXQ7CiAJfQogCiAJaWYgKGRp Z19wb3J0LT50Y19sZWdhY3lfcG9ydCkKLQkJaWNsX3RjX3BoeV9jb25uZWN0KGRpZ19wb3J0KTsK KwkJaWNsX3RjX3BoeV9jb25uZWN0KGRpZ19wb3J0LCAxKTsKIAogb3V0OgogCURSTV9ERUJVR19L TVMoIlBvcnQgJXM6IHNhbml0aXplIG1vZGUgKCVzKVxuIiwKQEAgLTM2MSwyNyArMzczLDYwIEBA IGJvb2wgaW50ZWxfdGNfcG9ydF9jb25uZWN0ZWQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAq ZGlnX3BvcnQpCiB7CiAJYm9vbCBpc19jb25uZWN0ZWQ7CiAKLQltdXRleF9sb2NrKCZkaWdfcG9y dC0+dGNfbG9jayk7Ci0KLQlpZiAoaW50ZWxfdGNfcG9ydF9uZWVkc19yZXNldChkaWdfcG9ydCkp Ci0JCWludGVsX3RjX3BvcnRfcmVzZXRfbW9kZShkaWdfcG9ydCk7Ci0KKwlpbnRlbF90Y19wb3J0 X2xvY2soZGlnX3BvcnQpOwogCWlzX2Nvbm5lY3RlZCA9IHRjX3BvcnRfbGl2ZV9zdGF0dXNfbWFz ayhkaWdfcG9ydCkgJgogCQkgICAgICAgQklUKGRpZ19wb3J0LT50Y19tb2RlKTsKLQotCW11dGV4 X3VubG9jaygmZGlnX3BvcnQtPnRjX2xvY2spOworCWludGVsX3RjX3BvcnRfdW5sb2NrKGRpZ19w b3J0KTsKIAogCXJldHVybiBpc19jb25uZWN0ZWQ7CiB9CiAKLXZvaWQgaW50ZWxfdGNfcG9ydF9s b2NrKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQorc3RhdGljIHZvaWQgX19p bnRlbF90Y19wb3J0X2xvY2soc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQsCisJ CQkJIGludCByZXF1aXJlZF9sYW5lcykKIHsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGRpZ19wb3J0LT5iYXNlLmJhc2UuZGV2KTsKKwlpbnRlbF93YWtlcmVm X3Qgd2FrZXJlZjsKKworCXdha2VyZWYgPSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldChkZXZfcHJp diwgUE9XRVJfRE9NQUlOX0RJU1BMQVlfQ09SRSk7CisKIAltdXRleF9sb2NrKCZkaWdfcG9ydC0+ dGNfbG9jayk7Ci0JLyogVE9ETzogcmVzZXQgdGhlIFR5cGVDIHBvcnQgbW9kZSBpZiBuZWVkZWQg Ki8KKworCWlmICghZGlnX3BvcnQtPnRjX2xpbmtfcmVmY291bnQgJiYKKwkgICAgaW50ZWxfdGNf cG9ydF9uZWVkc19yZXNldChkaWdfcG9ydCkpCisJCWludGVsX3RjX3BvcnRfcmVzZXRfbW9kZShk aWdfcG9ydCwgcmVxdWlyZWRfbGFuZXMpOworCisJV0FSTl9PTihkaWdfcG9ydC0+dGNfbG9ja193 YWtlcmVmKTsKKwlkaWdfcG9ydC0+dGNfbG9ja193YWtlcmVmID0gd2FrZXJlZjsKK30KKwordm9p ZCBpbnRlbF90Y19wb3J0X2xvY2soc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQp Cit7CisJX19pbnRlbF90Y19wb3J0X2xvY2soZGlnX3BvcnQsIDEpOwogfQogCiB2b2lkIGludGVs X3RjX3BvcnRfdW5sb2NrKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQogewor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGlnX3BvcnQtPmJh c2UuYmFzZS5kZXYpOworCWludGVsX3dha2VyZWZfdCB3YWtlcmVmID0gZmV0Y2hfYW5kX3plcm8o JmRpZ19wb3J0LT50Y19sb2NrX3dha2VyZWYpOworCisJbXV0ZXhfdW5sb2NrKCZkaWdfcG9ydC0+ dGNfbG9jayk7CisKKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dF9hc3luYyhkZXZfcHJpdiwgUE9X RVJfRE9NQUlOX0RJU1BMQVlfQ09SRSwKKwkJCQkgICAgICB3YWtlcmVmKTsKK30KKwordm9pZCBp bnRlbF90Y19wb3J0X2dldF9saW5rKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0 LAorCQkJICAgIGludCByZXF1aXJlZF9sYW5lcykKK3sKKwlfX2ludGVsX3RjX3BvcnRfbG9jayhk aWdfcG9ydCwgcmVxdWlyZWRfbGFuZXMpOworCWRpZ19wb3J0LT50Y19saW5rX3JlZmNvdW50Kys7 CisJaW50ZWxfdGNfcG9ydF91bmxvY2soZGlnX3BvcnQpOworfQorCit2b2lkIGludGVsX3RjX3Bv cnRfcHV0X2xpbmsoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCit7CisJbXV0 ZXhfbG9jaygmZGlnX3BvcnQtPnRjX2xvY2spOworCWRpZ19wb3J0LT50Y19saW5rX3JlZmNvdW50 LS07CiAJbXV0ZXhfdW5sb2NrKCZkaWdfcG9ydC0+dGNfbG9jayk7CiB9CiAKQEAgLTM5OSw0ICs0 NDQsNSBAQCB2b2lkIGludGVsX3RjX3BvcnRfaW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0 ICpkaWdfcG9ydCwgYm9vbCBpc19sZWdhY3kpCiAKIAltdXRleF9pbml0KCZkaWdfcG9ydC0+dGNf bG9jayk7CiAJZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0ID0gaXNfbGVnYWN5OworCWRpZ19wb3J0 LT50Y19saW5rX3JlZmNvdW50ID0gMDsKIH0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfdGMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50 ZWxfdGMuaAppbmRleCBiNWFmMmZlNjBiMjIuLjMxYWY3YmU5NjA3MCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90Yy5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuaApAQCAtMTksNiArMTksOSBAQCBpbnQgaW50ZWxfdGNf cG9ydF9maWFfbWF4X2xhbmVfY291bnQoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3Bv cnQpOwogdm9pZCBpbnRlbF90Y19wb3J0X3Nhbml0aXplKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3Bv cnQgKmRpZ19wb3J0KTsKIHZvaWQgaW50ZWxfdGNfcG9ydF9sb2NrKHN0cnVjdCBpbnRlbF9kaWdp dGFsX3BvcnQgKmRpZ19wb3J0KTsKIHZvaWQgaW50ZWxfdGNfcG9ydF91bmxvY2soc3RydWN0IGlu dGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOwordm9pZCBpbnRlbF90Y19wb3J0X2dldF9saW5r KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0LAorCQkJICAgIGludCByZXF1aXJl ZF9sYW5lcyk7Cit2b2lkIGludGVsX3RjX3BvcnRfcHV0X2xpbmsoc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCAqZGlnX3BvcnQpOwogCiB2b2lkIGludGVsX3RjX3BvcnRfaW5pdChzdHJ1Y3QgaW50 ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCwgYm9vbCBpc19sZWdhY3kpOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCmluZGV4IDEyYTEwMmUyMzljNS4uMjRjNjNlZDQ1YzZmIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kcnYuaApAQCAtMTE1LDYgKzExNSw5IEBAIHN0cnVjdCBpbnRlbF9lbmNvZGVy IHsKIAlpbnQgKCpjb21wdXRlX2NvbmZpZykoc3RydWN0IGludGVsX2VuY29kZXIgKiwKIAkJCSAg ICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICosCiAJCQkgICAgICBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9zdGF0ZSAqKTsKKwl2b2lkICgqdXBkYXRlX3ByZXBhcmUpKHN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKiwKKwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAorCQkJICAgICAg IHN0cnVjdCBpbnRlbF9jcnRjICopOwogCXZvaWQgKCpwcmVfcGxsX2VuYWJsZSkoc3RydWN0IGlu dGVsX2VuY29kZXIgKiwKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq LAogCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICopOwpAQCAtMTI0 LDYgKzEyNyw5IEBAIHN0cnVjdCBpbnRlbF9lbmNvZGVyIHsKIAl2b2lkICgqZW5hYmxlKShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqLAogCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKiwKIAkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICopOworCXZv aWQgKCp1cGRhdGVfY29tcGxldGUpKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKiwKKwkJCQlz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAorCQkJCXN0cnVjdCBpbnRlbF9jcnRjICopOwogCXZvaWQg KCpkaXNhYmxlKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAogCQkJY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKiwKIAkJCWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICopOwpA QCAtMTIzNCw2ICsxMjQwLDggQEAgc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCB7CiAJZW51bSBh dXhfY2ggYXV4X2NoOwogCWVudW0gaW50ZWxfZGlzcGxheV9wb3dlcl9kb21haW4gZGRpX2lvX3Bv d2VyX2RvbWFpbjsKIAlzdHJ1Y3QgbXV0ZXggdGNfbG9jazsJLyogcHJvdGVjdHMgdGhlIFR5cGVD IHBvcnQgbW9kZSAqLworCWludGVsX3dha2VyZWZfdCB0Y19sb2NrX3dha2VyZWY7CisJaW50IHRj X2xpbmtfcmVmY291bnQ7CiAJYm9vbCB0Y19sZWdhY3lfcG9ydDoxOwogCWNoYXIgdGNfcG9ydF9u YW1lWzhdOwogCWVudW0gdGNfcG9ydF9tb2RlIHRjX21vZGU7Ci0tIAoyLjE3LjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==