From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v3 20/23] drm/i915: Keep the TypeC port mode fixed when the port is active Date: Fri, 28 Jun 2019 17:36:32 +0300 Message-ID: <20190628143635.22066-21-imre.deak@intel.com> References: <20190628143635.22066-1-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4FC9A6E940 for ; Fri, 28 Jun 2019 14:37:22 +0000 (UTC) In-Reply-To: <20190628143635.22066-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 b3ZpbmcgcmVkdW5kYW50IGlmLgogIChWaWxsZSkKdjM6Ci0gRml4IHNwYXJzZSB3YXJuaW5nLCBt YXJraW5nIHN0YXRpYyBmdW5jdGlvbnMgYXMgc3VjaC4KCkNjOiBWaWxsZSBTeXJqw6Rsw6QgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZl dHRlckBmZndsbC5jaD4KQ2M6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBs aW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVs LmNvbT4KUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYyAg ICAgIHwgNDEgKysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlz cGxheS5jICB8IDk2ICsrKysrKysrKysrKysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZHBsbF9tZ3IuYyB8IDI4ICsrKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kcGxsX21nci5oIHwgIDMgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF90Yy5jICAgICAgIHwgOTQgKysrKysrKysrKysrKy0tLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3RjLmggICAgICAgfCAgMyArCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgICAgICAgICAgfCAgOCArKwogNyBmaWxlcyBjaGFuZ2Vk LCAyNDMgaW5zZXJ0aW9ucygrKSwgMzAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGRpLmMKaW5kZXggMGM1YmZiZDY2YjE5Li40MDRmNTU1MTI2YTEgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYwpAQCAtMzYyMyw2ICszNjIz LDMwIEBAIHN0YXRpYyB2b2lkIGludGVsX2RkaV9zZXRfZmlhX2xhbmVfY291bnQoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCiAJSTkxNV9XUklURShQT1JUX1RYX0RGTEVYRFBNTEUxLCB2 YWwpOwogfQogCitzdGF0aWMgdm9pZAoraW50ZWxfZGRpX3VwZGF0ZV9wcmVwYXJlKHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAorCQkJIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQoreworCXN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpjcnRjX3N0YXRlID0KKwkJY3J0YyA/IGludGVsX2F0b21pY19nZXRfbmV3X2NydGNf c3RhdGUoc3RhdGUsIGNydGMpIDogTlVMTDsKKwlpbnQgcmVxdWlyZWRfbGFuZXMgPSBjcnRjX3N0 YXRlID8gY3J0Y19zdGF0ZS0+bGFuZV9jb3VudCA6IDE7CisKKwlXQVJOX09OKGNydGMgJiYgY3J0 Yy0+YWN0aXZlKTsKKworCWludGVsX3RjX3BvcnRfZ2V0X2xpbmsoZW5jX3RvX2RpZ19wb3J0KCZl bmNvZGVyLT5iYXNlKSwgcmVxdWlyZWRfbGFuZXMpOworCWlmIChjcnRjX3N0YXRlICYmIGNydGNf c3RhdGUtPmJhc2UuYWN0aXZlKQorCQlpbnRlbF91cGRhdGVfYWN0aXZlX2RwbGwoc3RhdGUsIGNy dGMsIGVuY29kZXIpOworfQorCitzdGF0aWMgdm9pZAoraW50ZWxfZGRpX3VwZGF0ZV9jb21wbGV0 ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCSAgc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXIsCisJCQkgIHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQoreworCWludGVs X3RjX3BvcnRfcHV0X2xpbmsoZW5jX3RvX2RpZ19wb3J0KCZlbmNvZGVyLT5iYXNlKSk7Cit9CisK IHN0YXRpYyB2b2lkCiBpbnRlbF9kZGlfcHJlX3BsbF9lbmFibGUoc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCiAJCQkgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3Rh dGUsCkBAIC0zNjMwLDEwICszNjU0LDEzIEBAIGludGVsX2RkaV9wcmVfcGxsX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICpkaWdfcG9ydCA9IGVuY190b19kaWdfcG9ydCgmZW5jb2Rlci0+YmFzZSk7CisJ Ym9vbCBpc190Y19wb3J0ID0gaW50ZWxfcG9ydF9pc190YyhkZXZfcHJpdiwgZW5jb2Rlci0+cG9y dCk7CiAJZW51bSBwb3J0IHBvcnQgPSBlbmNvZGVyLT5wb3J0OwogCi0JaWYgKGludGVsX2NydGNf aGFzX2RwX2VuY29kZXIoY3J0Y19zdGF0ZSkgfHwKLQkgICAgaW50ZWxfcG9ydF9pc190YyhkZXZf cHJpdiwgZW5jb2Rlci0+cG9ydCkpCisJaWYgKGlzX3RjX3BvcnQpCisJCWludGVsX3RjX3BvcnRf Z2V0X2xpbmsoZGlnX3BvcnQsIGNydGNfc3RhdGUtPmxhbmVfY291bnQpOworCisJaWYgKGludGVs X2NydGNfaGFzX2RwX2VuY29kZXIoY3J0Y19zdGF0ZSkgfHwgaXNfdGNfcG9ydCkKIAkJaW50ZWxf ZGlzcGxheV9wb3dlcl9nZXQoZGV2X3ByaXYsCiAJCQkJCWludGVsX2RkaV9tYWluX2xpbmtfYXV4 X2RvbWFpbihkaWdfcG9ydCkpOwogCkBAIC0zNjU4LDExICszNjg1LDE0IEBAIGludGVsX2RkaV9w b3N0X3BsbF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogewogCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYp OwogCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0 KCZlbmNvZGVyLT5iYXNlKTsKKwlib29sIGlzX3RjX3BvcnQgPSBpbnRlbF9wb3J0X2lzX3RjKGRl dl9wcml2LCBlbmNvZGVyLT5wb3J0KTsKIAotCWlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVy KGNydGNfc3RhdGUpIHx8Ci0JICAgIGludGVsX3BvcnRfaXNfdGMoZGV2X3ByaXYsIGVuY29kZXIt PnBvcnQpKQorCWlmIChpbnRlbF9jcnRjX2hhc19kcF9lbmNvZGVyKGNydGNfc3RhdGUpIHx8IGlz X3RjX3BvcnQpCiAJCWludGVsX2Rpc3BsYXlfcG93ZXJfcHV0X3VuY2hlY2tlZChkZXZfcHJpdiwK IAkJCQkJCSAgaW50ZWxfZGRpX21haW5fbGlua19hdXhfZG9tYWluKGRpZ19wb3J0KSk7CisKKwlp ZiAoaXNfdGNfcG9ydCkKKwkJaW50ZWxfdGNfcG9ydF9wdXRfbGluayhkaWdfcG9ydCk7CiB9CiAK IHN0YXRpYyB2b2lkIGludGVsX2RkaV9wcmVwYXJlX2xpbmtfcmV0cmFpbihzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQpAQCAtNDI1Niw2ICs0Mjg2LDkgQEAgdm9pZCBpbnRlbF9kZGlfaW5pdChz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0KQogCQkJCSAh cG9ydF9pbmZvLT5zdXBwb3J0c190YnQ7CiAKIAkJaW50ZWxfdGNfcG9ydF9pbml0KGludGVsX2Rp Z19wb3J0LCBpc19sZWdhY3kpOworCisJCWludGVsX2VuY29kZXItPnVwZGF0ZV9wcmVwYXJlID0g aW50ZWxfZGRpX3VwZGF0ZV9wcmVwYXJlOworCQlpbnRlbF9lbmNvZGVyLT51cGRhdGVfY29tcGxl dGUgPSBpbnRlbF9kZGlfdXBkYXRlX2NvbXBsZXRlOwogCX0KIAogCXN3aXRjaCAocG9ydCkgewpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwppbmRleCA3N2Fm NDNhYzY0ZmQuLjZmZWQ1NTBhMWY3NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5LmMKQEAgLTYwMzcsNiArNjAzNyw5NCBAQCBzdGF0aWMgdm9pZCBpbnRl bF9jcnRjX2Rpc2FibGVfcGxhbmVzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAog CWludGVsX2Zyb250YnVmZmVyX2ZsaXAoZGV2X3ByaXYsIGZiX2JpdHMpOwogfQogCisvKgorICog aW50ZWxfY29ubmVjdG9yX3ByaW1hcnlfZW5jb2RlciAtIGdldCB0aGUgcHJpbWFyeSBlbmNvZGVy IGZvciBhIGNvbm5lY3RvcgorICogQGNvbm5lY3RvcjogY29ubmVjdG9yIGZvciB3aGljaCB0byBy ZXR1cm4gdGhlIGVuY29kZXIKKyAqCisgKiBSZXR1cm5zIHRoZSBwcmltYXJ5IGVuY29kZXIgZm9y IGEgY29ubmVjdG9yLiBUaGVyZSBpcyBhIDE6MSBtYXBwaW5nIGZyb20KKyAqIGFsbCBjb25uZWN0 b3JzIHRvIHRoZWlyIGVuY29kZXIsIGV4Y2VwdCBmb3IgRFAtTVNUIGNvbm5lY3RvcnMgd2hpY2gg aGF2ZQorICogYm90aCBhIHZpcnR1YWwgYW5kIGEgcHJpbWFyeSBlbmNvZGVyLiBUaGVzZSBEUC1N U1QgcHJpbWFyeSBlbmNvZGVycyBjYW4gYmUKKyAqIHBvaW50ZWQgdG8gYnkgYXMgbWFueSBEUC1N U1QgY29ubmVjdG9ycyBhcyB0aGVyZSBhcmUgcGlwZXMuCisgKi8KK3N0YXRpYyBzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqCitpbnRlbF9jb25uZWN0b3JfcHJpbWFyeV9lbmNvZGVyKHN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvcikKK3sKKwlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl cjsKKworCWlmIChjb25uZWN0b3ItPm1zdF9wb3J0KQorCQlyZXR1cm4gJmRwX3RvX2RpZ19wb3J0 KGNvbm5lY3Rvci0+bXN0X3BvcnQpLT5iYXNlOworCisJZW5jb2RlciA9IGludGVsX2F0dGFjaGVk X2VuY29kZXIoJmNvbm5lY3Rvci0+YmFzZSk7CisJV0FSTl9PTighZW5jb2Rlcik7CisKKwlyZXR1 cm4gZW5jb2RlcjsKK30KKworc3RhdGljIGJvb2wKK2ludGVsX2Nvbm5lY3Rvcl9uZWVkc19tb2Rl c2V0KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJICAgICAgY29uc3Qgc3Ry dWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlLAorCQkJICAgICAgY29uc3Qg c3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5ld19jb25uX3N0YXRlKQoreworCXJldHVybiBu ZXdfY29ubl9zdGF0ZS0+Y3J0YyAhPSBvbGRfY29ubl9zdGF0ZS0+Y3J0YyB8fAorCSAgICAgICAo bmV3X2Nvbm5fc3RhdGUtPmNydGMgJiYKKwkJbmVlZHNfbW9kZXNldChkcm1fYXRvbWljX2dldF9u ZXdfY3J0Y19zdGF0ZSgmc3RhdGUtPmJhc2UsCisJCQkJCQkJICAgIG5ld19jb25uX3N0YXRlLT5j cnRjKSkpOworfQorCitzdGF0aWMgdm9pZCBpbnRlbF9lbmNvZGVyc191cGRhdGVfcHJlcGFyZShz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rv cl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGU7CisJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm5l d19jb25uX3N0YXRlOworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uOworCWludCBpOworCisJ Zm9yX2VhY2hfb2xkbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZSgmc3RhdGUtPmJhc2UsIGNvbm4sCisJ CQkJCSAgIG9sZF9jb25uX3N0YXRlLCBuZXdfY29ubl9zdGF0ZSwgaSkgeworCQlzdHJ1Y3QgaW50 ZWxfZW5jb2RlciAqZW5jb2RlcjsKKwkJc3RydWN0IGludGVsX2NydGMgKmNydGM7CisKKwkJaWYg KCFpbnRlbF9jb25uZWN0b3JfbmVlZHNfbW9kZXNldChzdGF0ZSwKKwkJCQkJCSAgIG9sZF9jb25u X3N0YXRlLAorCQkJCQkJICAgbmV3X2Nvbm5fc3RhdGUpKQorCQkJY29udGludWU7CisKKwkJZW5j b2RlciA9IGludGVsX2Nvbm5lY3Rvcl9wcmltYXJ5X2VuY29kZXIodG9faW50ZWxfY29ubmVjdG9y KGNvbm4pKTsKKwkJaWYgKCFlbmNvZGVyLT51cGRhdGVfcHJlcGFyZSkKKwkJCWNvbnRpbnVlOwor CisJCWNydGMgPSBuZXdfY29ubl9zdGF0ZS0+Y3J0YyA/CisJCQl0b19pbnRlbF9jcnRjKG5ld19j b25uX3N0YXRlLT5jcnRjKSA6IE5VTEw7CisJCWVuY29kZXItPnVwZGF0ZV9wcmVwYXJlKHN0YXRl LCBlbmNvZGVyLCBjcnRjKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGludGVsX2VuY29kZXJzX3Vw ZGF0ZV9jb21wbGV0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGU7CisJc3RydWN0IGRybV9jb25u ZWN0b3Jfc3RhdGUgKm5ld19jb25uX3N0YXRlOworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25u OworCWludCBpOworCisJZm9yX2VhY2hfb2xkbmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZSgmc3RhdGUt PmJhc2UsIGNvbm4sCisJCQkJCSAgIG9sZF9jb25uX3N0YXRlLCBuZXdfY29ubl9zdGF0ZSwgaSkg eworCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKKwkJc3RydWN0IGludGVsX2NydGMg KmNydGM7CisKKwkJaWYgKCFpbnRlbF9jb25uZWN0b3JfbmVlZHNfbW9kZXNldChzdGF0ZSwKKwkJ CQkJCSAgIG9sZF9jb25uX3N0YXRlLAorCQkJCQkJICAgbmV3X2Nvbm5fc3RhdGUpKQorCQkJY29u dGludWU7CisKKwkJZW5jb2RlciA9IGludGVsX2Nvbm5lY3Rvcl9wcmltYXJ5X2VuY29kZXIodG9f aW50ZWxfY29ubmVjdG9yKGNvbm4pKTsKKwkJaWYgKCFlbmNvZGVyLT51cGRhdGVfY29tcGxldGUp CisJCQljb250aW51ZTsKKworCQljcnRjID0gbmV3X2Nvbm5fc3RhdGUtPmNydGMgPworCQkJdG9f aW50ZWxfY3J0YyhuZXdfY29ubl9zdGF0ZS0+Y3J0YykgOiBOVUxMOworCQllbmNvZGVyLT51cGRh dGVfY29tcGxldGUoc3RhdGUsIGVuY29kZXIsIGNydGMpOworCX0KK30KKwogc3RhdGljIHZvaWQg aW50ZWxfZW5jb2RlcnNfcHJlX3BsbF9lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJ CQkgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQkJCQkgIHN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCkBAIC0xMzg5OCwxNCArMTM5ODYsMjAgQEAgc3Rh dGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSkKIAkJfQogCX0KIAorCWlmIChpbnRlbF9zdGF0ZS0+bW9kZXNldCkKKwkJaW50ZWxf ZW5jb2RlcnNfdXBkYXRlX3ByZXBhcmUoaW50ZWxfc3RhdGUpOworCiAJLyogTm93IGVuYWJsZSB0 aGUgY2xvY2tzLCBwbGFuZSwgcGlwZSwgYW5kIGNvbm5lY3RvcnMgdGhhdCB3ZSBzZXQgdXAuICov CiAJZGV2X3ByaXYtPmRpc3BsYXkudXBkYXRlX2NydGNzKHN0YXRlKTsKIAotCWlmIChpbnRlbF9z dGF0ZS0+bW9kZXNldCkKKwlpZiAoaW50ZWxfc3RhdGUtPm1vZGVzZXQpIHsKKwkJaW50ZWxfZW5j b2RlcnNfdXBkYXRlX2NvbXBsZXRlKGludGVsX3N0YXRlKTsKKwogCQlpbnRlbF9zZXRfY2RjbGtf cG9zdF9wbGFuZV91cGRhdGUoZGV2X3ByaXYsCiAJCQkJCQkgICZpbnRlbF9zdGF0ZS0+Y2RjbGsu YWN0dWFsLAogCQkJCQkJICAmZGV2X3ByaXYtPmNkY2xrLmFjdHVhbCwKIAkJCQkJCSAgaW50ZWxf c3RhdGUtPmNkY2xrLnBpcGUpOworCX0KIAogCS8qIEZJWE1FOiBXZSBzaG91bGQgY2FsbCBkcm1f YXRvbWljX2hlbHBlcl9jb21taXRfaHdfZG9uZSgpIGhlcmUKIAkgKiBhbHJlYWR5LCBidXQgc3Rp bGwgbmVlZCB0aGUgc3RhdGUgZm9yIHRoZSBkZWxheWVkIG9wdGltaXphdGlvbi4gVG8KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZHBsbF9tZ3IuYwppbmRleCBiZGM3MTUw ZGJmYWMuLjc2YTJjODc5ZWZjMiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kcGxsX21nci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZHBsbF9tZ3IuYwpAQCAtMTkzOSw3ICsxOTM5LDkgQEAgc3RydWN0IGludGVsX2RwbGxf bWdyIHsKIAkJCSAgc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIpOwogCXZvaWQgKCpwdXRf ZHBsbHMpKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCQkJICBzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0Yyk7Ci0KKwl2b2lkICgqdXBkYXRlX2FjdGl2ZV9kcGxsKShzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKKwkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywK KwkJCQkgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rlcik7CiAJdm9pZCAoKmR1bXBfaHdf c3RhdGUpKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgICAgIGNvbnN0 IHN0cnVjdCBpbnRlbF9kcGxsX2h3X3N0YXRlICpod19zdGF0ZSk7CiB9OwpAQCAtMzQwMiw2ICsz NDA0LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBpbnRlbF9kcGxsX21nciBpY2xfcGxsX21nciA9 IHsKIAkuZHBsbF9pbmZvID0gaWNsX3BsbHMsCiAJLmdldF9kcGxscyA9IGljbF9nZXRfZHBsbHMs CiAJLnB1dF9kcGxscyA9IGljbF9wdXRfZHBsbHMsCisJLnVwZGF0ZV9hY3RpdmVfZHBsbCA9IGlj bF91cGRhdGVfYWN0aXZlX2RwbGwsCiAJLmR1bXBfaHdfc3RhdGUgPSBpY2xfZHVtcF9od19zdGF0 ZSwKIH07CiAKQEAgLTM1MjYsNiArMzUyOSwyOSBAQCB2b2lkIGludGVsX3JlbGVhc2Vfc2hhcmVk X2RwbGxzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAogCWRwbGxfbWdyLT5wdXRf ZHBsbHMoc3RhdGUsIGNydGMpOwogfQogCisvKioKKyAqIGludGVsX3VwZGF0ZV9hY3RpdmVfZHBs bCAtIHVwZGF0ZSB0aGUgYWN0aXZlIERQTEwgZm9yIGEgQ1JUQy9lbmNvZGVyCisgKiBAc3RhdGU6 IGF0b21pYyBzdGF0ZQorICogQGNydGM6IHRoZSBDUlRDIGZvciB3aGljaCB0byB1cGRhdGUgdGhl IGFjdGl2ZSBEUExMCisgKiBAZW5jb2RlcjogZW5jb2RlciBkZXRlcm1pbmluZyB0aGUgdHlwZSBv ZiBwb3J0IERQTEwKKyAqCisgKiBVcGRhdGUgdGhlIGFjdGl2ZSBEUExMIGZvciB0aGUgZ2l2ZW4g QGNydGMvQGVuY29kZXIgaW4gQGNydGMncyBhdG9taWMgc3RhdGUsCisgKiBmcm9tIHRoZSBwb3J0 IERQTExzIHJlc2VydmVkIHByZXZpb3VzbHkgYnkgaW50ZWxfcmVzZXJ2ZV9zaGFyZWRfZHBsbHMo KS4gVGhlCisgKiBEUExMIHNlbGVjdGVkIHdpbGwgYmUgYmFzZWQgb24gdGhlIGN1cnJlbnQgbW9k ZSBvZiB0aGUgZW5jb2RlcidzIHBvcnQuCisgKi8KK3ZvaWQgaW50ZWxfdXBkYXRlX2FjdGl2ZV9k cGxsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJICAgICAgc3RydWN0IGlu dGVsX2NydGMgKmNydGMsCisJCQkgICAgICBzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcikK K3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXIt PmJhc2UuZGV2KTsKKwljb25zdCBzdHJ1Y3QgaW50ZWxfZHBsbF9tZ3IgKmRwbGxfbWdyID0gZGV2 X3ByaXYtPmRwbGxfbWdyOworCisJaWYgKFdBUk5fT04oIWRwbGxfbWdyKSkKKwkJcmV0dXJuOwor CisJZHBsbF9tZ3ItPnVwZGF0ZV9hY3RpdmVfZHBsbChzdGF0ZSwgY3J0YywgZW5jb2Rlcik7Cit9 CisKIC8qKgogICogaW50ZWxfc2hhcmVkX2RwbGxfZHVtcF9od19zdGF0ZSAtIHdyaXRlIGh3X3N0 YXRlIHRvIGRtZXNnCiAgKiBAZGV2X3ByaXY6IGk5MTUgZHJtIGRldmljZQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGxsX21nci5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kcGxsX21nci5oCmluZGV4IDU3OWYyY2VhZmJhMy4u MTY2OGY4MTE2OTA4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RwbGxfbWdyLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9k cGxsX21nci5oCkBAIC0zNDYsNiArMzQ2LDkgQEAgdm9pZCBpbnRlbF9yZWxlYXNlX3NoYXJlZF9k cGxscyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0Yyk7CiB2b2lkIGljbF9zZXRfYWN0aXZlX3BvcnRfZHBsbChzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJCSAgICAgIGVudW0gaWNsX3BvcnRfZHBsbF9pZCBw b3J0X2RwbGxfaWQpOwordm9pZCBpbnRlbF91cGRhdGVfYWN0aXZlX2RwbGwoc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkgICAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywK KwkJCSAgICAgIHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyKTsKIHZvaWQgaW50ZWxfcHJl cGFyZV9zaGFyZWRfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSk7CiB2b2lkIGludGVsX2VuYWJsZV9zaGFyZWRfZHBsbChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7CiB2b2lkIGludGVsX2Rpc2FibGVfc2hhcmVkX2RwbGwoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90Yy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF90Yy5jCmluZGV4IDU4YTIyOGJhNzY5Ni4uYmE2NDkyYmMwZWUwIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3RjLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90Yy5jCkBAIC0xODgsMTkgKzE4OCwx MiBAQCBzdGF0aWMgYm9vbCBpY2xfdGNfcGh5X2lzX2luX3NhZmVfbW9kZShzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKICAqIGRpc3BsYXksIFVTQiwgZXRjLiBBcyBhIHJlc3Vs dCwgaGFuZHNoYWtpbmcgdGhyb3VnaCBGSUEgaXMgcmVxdWlyZWQgYXJvdW5kCiAgKiBjb25uZWN0 IGFuZCBkaXNjb25uZWN0IHRvIGNsZWFubHkgdHJhbnNmZXIgb3duZXJzaGlwIHdpdGggdGhlIGNv bnRyb2xsZXIgYW5kCiAgKiBzZXQgdGhlIHR5cGUtQyBwb3dlciBzdGF0ZS4KLSAqCi0gKiBXZSBj b3VsZCBvcHQgdG8gb25seSBkbyB0aGUgY29ubmVjdCBmbG93IHdoZW4gd2UgYWN0dWFsbHkgdHJ5 IHRvIHVzZSB0aGUgQVVYCi0gKiBjaGFubmVscyBvciBkbyBhIG1vZGVzZXQsIHRoZW4gaW1tZWRp YXRlbHkgcnVuIHRoZSBkaXNjb25uZWN0IGZsb3cgYWZ0ZXIKLSAqIHVzYWdlLCBidXQgdGhlcmUg YXJlIHNvbWUgaW1wbGljYXRpb25zIG9uIHRoaXMgZm9yIGEgZHluYW1pYyBlbnZpcm9ubWVudDoK LSAqIHRoaW5ncyBtYXkgZ28gYXdheSBvciBjaGFuZ2UgYmVoaW5kIG91ciBiYWNrcy4gU28gZm9y IG5vdyBvdXIgZHJpdmVyIGlzCi0gKiBhbHdheXMgdHJ5aW5nIHRvIGFjcXVpcmUgb3duZXJzaGlw IG9mIHRoZSBjb250cm9sbGVyIGFzIHNvb24gYXMgaXQgZ2V0cyBhbgotICogaW50ZXJydXB0IChv ciBwb2xscyBzdGF0ZSBhbmQgc2VlcyBhIHBvcnQgaXMgY29ubmVjdGVkKSBhbmQgb25seSBnaXZl cyBpdAotICogYmFjayB3aGVuIGl0IHNlZXMgYSBkaXNjb25uZWN0LiBJbXBsZW1lbnRhdGlvbiBv ZiBhIG1vcmUgZmluZS1ncmFpbmVkIG1vZGVsCi0gKiB3aWxsIHJlcXVpcmUgYSBsb3Qgb2YgY29v cmRpbmF0aW9uIHdpdGggdXNlciBzcGFjZSBhbmQgdGhvcm91Z2ggdGVzdGluZyBmb3IKLSAqIHRo ZSBleHRyYSBwb3NzaWJsZSBjYXNlcy4KICAqLwotc3RhdGljIHZvaWQgaWNsX3RjX3BoeV9jb25u ZWN0KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KQorc3RhdGljIHZvaWQgaWNs X3RjX3BoeV9jb25uZWN0KHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0LAorCQkJ ICAgICAgIGludCByZXF1aXJlZF9sYW5lcykKIHsKKwlpbnQgbWF4X2xhbmVzOworCiAJaWYgKCFp Y2xfdGNfcGh5X3N0YXR1c19jb21wbGV0ZShkaWdfcG9ydCkpIHsKIAkJRFJNX0RFQlVHX0tNUygi UG9ydCAlczogUEhZIG5vdCByZWFkeVxuIiwKIAkJCSAgICAgIGRpZ19wb3J0LT50Y19wb3J0X25h bWUpOwpAQCAtMjExLDggKzIwNCw5IEBAIHN0YXRpYyB2b2lkIGljbF90Y19waHlfY29ubmVjdChz dHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKIAkgICAgIVdBUk5fT04oZGlnX3Bv cnQtPnRjX2xlZ2FjeV9wb3J0KSkKIAkJZ290byBvdXRfc2V0X3RidF9hbHRfbW9kZTsKIAorCW1h eF9sYW5lcyA9IGludGVsX3RjX3BvcnRfZmlhX21heF9sYW5lX2NvdW50KGRpZ19wb3J0KTsKIAlp ZiAoZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0KSB7Ci0JCVdBUk5fT04oaW50ZWxfdGNfcG9ydF9m aWFfbWF4X2xhbmVfY291bnQoZGlnX3BvcnQpICE9IDQpOworCQlXQVJOX09OKG1heF9sYW5lcyAh PSA0KTsKIAkJZGlnX3BvcnQtPnRjX21vZGUgPSBUQ19QT1JUX0xFR0FDWTsKIAogCQlyZXR1cm47 CkBAIC0yMjgsNiArMjIyLDEzIEBAIHN0YXRpYyB2b2lkIGljbF90Y19waHlfY29ubmVjdChzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKIAkJZ290byBvdXRfc2V0X3NhZmVfbW9k ZTsKIAl9CiAKKwlpZiAobWF4X2xhbmVzIDwgcmVxdWlyZWRfbGFuZXMpIHsKKwkJRFJNX0RFQlVH X0tNUygiUG9ydCAlczogUEhZIG1heCBsYW5lcyAlZCA8IHJlcXVpcmVkIGxhbmVzICVkXG4iLAor CQkJICAgICAgZGlnX3BvcnQtPnRjX3BvcnRfbmFtZSwKKwkJCSAgICAgIG1heF9sYW5lcywgcmVx dWlyZWRfbGFuZXMpOworCQlnb3RvIG91dF9zZXRfc2FmZV9tb2RlOworCX0KKwogCWRpZ19wb3J0 LT50Y19tb2RlID0gVENfUE9SVF9EUF9BTFQ7CiAKIAlyZXR1cm47CkBAIC0zMTEsNyArMzEyLDgg QEAgaW50ZWxfdGNfcG9ydF9nZXRfdGFyZ2V0X21vZGUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqZGlnX3BvcnQpCiAJCQkJCSAgVENfUE9SVF9UQlRfQUxUOwogfQogCi1zdGF0aWMgdm9pZCBp bnRlbF90Y19wb3J0X3Jlc2V0X21vZGUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3Bv cnQpCitzdGF0aWMgdm9pZCBpbnRlbF90Y19wb3J0X3Jlc2V0X21vZGUoc3RydWN0IGludGVsX2Rp Z2l0YWxfcG9ydCAqZGlnX3BvcnQsCisJCQkJICAgICBpbnQgcmVxdWlyZWRfbGFuZXMpCiB7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkaWdfcG9ydC0+YmFz ZS5iYXNlLmRldik7CiAJZW51bSB0Y19wb3J0X21vZGUgb2xkX3RjX21vZGUgPSBkaWdfcG9ydC0+ dGNfbW9kZTsKQEAgLTMxOSw3ICszMjEsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF90Y19wb3J0X3Jl c2V0X21vZGUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCiAJaW50ZWxfZGlz cGxheV9wb3dlcl9mbHVzaF93b3JrKGRldl9wcml2KTsKIAogCWljbF90Y19waHlfZGlzY29ubmVj dChkaWdfcG9ydCk7Ci0JaWNsX3RjX3BoeV9jb25uZWN0KGRpZ19wb3J0KTsKKwlpY2xfdGNfcGh5 X2Nvbm5lY3QoZGlnX3BvcnQsIHJlcXVpcmVkX2xhbmVzKTsKIAogCURSTV9ERUJVR19LTVMoIlBv cnQgJXM6IFRDIHBvcnQgbW9kZSByZXNldCAoJXMgLT4gJXMpXG4iLAogCQkgICAgICBkaWdfcG9y dC0+dGNfcG9ydF9uYW1lLApAQCAtMzI3LDYgKzMyOSwxNCBAQCBzdGF0aWMgdm9pZCBpbnRlbF90 Y19wb3J0X3Jlc2V0X21vZGUoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCiAJ CSAgICAgIHRjX3BvcnRfbW9kZV9uYW1lKGRpZ19wb3J0LT50Y19tb2RlKSk7CiB9CiAKK3N0YXRp YyB2b2lkCitpbnRlbF90Y19wb3J0X2xpbmtfaW5pdF9yZWZjb3VudChzdHJ1Y3QgaW50ZWxfZGln aXRhbF9wb3J0ICpkaWdfcG9ydCwKKwkJCQkgaW50IHJlZmNvdW50KQoreworCVdBUk5fT04oZGln X3BvcnQtPnRjX2xpbmtfcmVmY291bnQpOworCWRpZ19wb3J0LT50Y19saW5rX3JlZmNvdW50ID0g cmVmY291bnQ7Cit9CisKIHZvaWQgaW50ZWxfdGNfcG9ydF9zYW5pdGl6ZShzdHJ1Y3QgaW50ZWxf ZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKIHsKIAlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciA9ICZkaWdfcG9ydC0+YmFzZTsKQEAgLTM0NCwxMSArMzU0LDEzIEBAIHZvaWQgaW50ZWxfdGNf cG9ydF9zYW5pdGl6ZShzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCkKIAkJaWYg KCFpY2xfdGNfcGh5X2lzX2Nvbm5lY3RlZChkaWdfcG9ydCkpCiAJCQlEUk1fREVCVUdfS01TKCJQ b3J0ICVzOiBQSFkgZGlzY29ubmVjdGVkIHdpdGggJWQgYWN0aXZlIGxpbmsocylcbiIsCiAJCQkJ ICAgICAgZGlnX3BvcnQtPnRjX3BvcnRfbmFtZSwgYWN0aXZlX2xpbmtzKTsKKwkJaW50ZWxfdGNf cG9ydF9saW5rX2luaXRfcmVmY291bnQoZGlnX3BvcnQsIGFjdGl2ZV9saW5rcyk7CisKIAkJZ290 byBvdXQ7CiAJfQogCiAJaWYgKGRpZ19wb3J0LT50Y19sZWdhY3lfcG9ydCkKLQkJaWNsX3RjX3Bo eV9jb25uZWN0KGRpZ19wb3J0KTsKKwkJaWNsX3RjX3BoeV9jb25uZWN0KGRpZ19wb3J0LCAxKTsK IAogb3V0OgogCURSTV9ERUJVR19LTVMoIlBvcnQgJXM6IHNhbml0aXplIG1vZGUgKCVzKVxuIiwK QEAgLTM3NywyNyArMzg5LDYwIEBAIGJvb2wgaW50ZWxfdGNfcG9ydF9jb25uZWN0ZWQoc3RydWN0 IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpCiB7CiAJYm9vbCBpc19jb25uZWN0ZWQ7CiAK LQltdXRleF9sb2NrKCZkaWdfcG9ydC0+dGNfbG9jayk7Ci0KLQlpZiAoaW50ZWxfdGNfcG9ydF9u ZWVkc19yZXNldChkaWdfcG9ydCkpCi0JCWludGVsX3RjX3BvcnRfcmVzZXRfbW9kZShkaWdfcG9y dCk7Ci0KKwlpbnRlbF90Y19wb3J0X2xvY2soZGlnX3BvcnQpOwogCWlzX2Nvbm5lY3RlZCA9IHRj X3BvcnRfbGl2ZV9zdGF0dXNfbWFzayhkaWdfcG9ydCkgJgogCQkgICAgICAgQklUKGRpZ19wb3J0 LT50Y19tb2RlKTsKLQotCW11dGV4X3VubG9jaygmZGlnX3BvcnQtPnRjX2xvY2spOworCWludGVs X3RjX3BvcnRfdW5sb2NrKGRpZ19wb3J0KTsKIAogCXJldHVybiBpc19jb25uZWN0ZWQ7CiB9CiAK LXZvaWQgaW50ZWxfdGNfcG9ydF9sb2NrKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19w b3J0KQorc3RhdGljIHZvaWQgX19pbnRlbF90Y19wb3J0X2xvY2soc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCAqZGlnX3BvcnQsCisJCQkJIGludCByZXF1aXJlZF9sYW5lcykKIHsKKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRpZ19wb3J0LT5iYXNlLmJhc2Uu ZGV2KTsKKwlpbnRlbF93YWtlcmVmX3Qgd2FrZXJlZjsKKworCXdha2VyZWYgPSBpbnRlbF9kaXNw bGF5X3Bvd2VyX2dldChkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0RJU1BMQVlfQ09SRSk7CisKIAlt dXRleF9sb2NrKCZkaWdfcG9ydC0+dGNfbG9jayk7Ci0JLyogVE9ETzogcmVzZXQgdGhlIFR5cGVD IHBvcnQgbW9kZSBpZiBuZWVkZWQgKi8KKworCWlmICghZGlnX3BvcnQtPnRjX2xpbmtfcmVmY291 bnQgJiYKKwkgICAgaW50ZWxfdGNfcG9ydF9uZWVkc19yZXNldChkaWdfcG9ydCkpCisJCWludGVs X3RjX3BvcnRfcmVzZXRfbW9kZShkaWdfcG9ydCwgcmVxdWlyZWRfbGFuZXMpOworCisJV0FSTl9P TihkaWdfcG9ydC0+dGNfbG9ja193YWtlcmVmKTsKKwlkaWdfcG9ydC0+dGNfbG9ja193YWtlcmVm ID0gd2FrZXJlZjsKK30KKwordm9pZCBpbnRlbF90Y19wb3J0X2xvY2soc3RydWN0IGludGVsX2Rp Z2l0YWxfcG9ydCAqZGlnX3BvcnQpCit7CisJX19pbnRlbF90Y19wb3J0X2xvY2soZGlnX3BvcnQs IDEpOwogfQogCiB2b2lkIGludGVsX3RjX3BvcnRfdW5sb2NrKHN0cnVjdCBpbnRlbF9kaWdpdGFs X3BvcnQgKmRpZ19wb3J0KQogeworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IHRvX2k5MTUoZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXYpOworCWludGVsX3dha2VyZWZfdCB3YWtl cmVmID0gZmV0Y2hfYW5kX3plcm8oJmRpZ19wb3J0LT50Y19sb2NrX3dha2VyZWYpOworCisJbXV0 ZXhfdW5sb2NrKCZkaWdfcG9ydC0+dGNfbG9jayk7CisKKwlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1 dF9hc3luYyhkZXZfcHJpdiwgUE9XRVJfRE9NQUlOX0RJU1BMQVlfQ09SRSwKKwkJCQkgICAgICB3 YWtlcmVmKTsKK30KKwordm9pZCBpbnRlbF90Y19wb3J0X2dldF9saW5rKHN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmRpZ19wb3J0LAorCQkJICAgIGludCByZXF1aXJlZF9sYW5lcykKK3sKKwlf X2ludGVsX3RjX3BvcnRfbG9jayhkaWdfcG9ydCwgcmVxdWlyZWRfbGFuZXMpOworCWRpZ19wb3J0 LT50Y19saW5rX3JlZmNvdW50Kys7CisJaW50ZWxfdGNfcG9ydF91bmxvY2soZGlnX3BvcnQpOwor fQorCit2b2lkIGludGVsX3RjX3BvcnRfcHV0X2xpbmsoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqZGlnX3BvcnQpCit7CisJbXV0ZXhfbG9jaygmZGlnX3BvcnQtPnRjX2xvY2spOworCWRpZ19w b3J0LT50Y19saW5rX3JlZmNvdW50LS07CiAJbXV0ZXhfdW5sb2NrKCZkaWdfcG9ydC0+dGNfbG9j ayk7CiB9CiAKQEAgLTQxNSw0ICs0NjAsNSBAQCB2b2lkIGludGVsX3RjX3BvcnRfaW5pdChzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCwgYm9vbCBpc19sZWdhY3kpCiAKIAltdXRl eF9pbml0KCZkaWdfcG9ydC0+dGNfbG9jayk7CiAJZGlnX3BvcnQtPnRjX2xlZ2FjeV9wb3J0ID0g aXNfbGVnYWN5OworCWRpZ19wb3J0LT50Y19saW5rX3JlZmNvdW50ID0gMDsKIH0KZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuaAppbmRleCBiNWFmMmZlNjBiMjIuLjMxYWY3YmU5 NjA3MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF90Yy5o CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdGMuaApAQCAtMTksNiAr MTksOSBAQCBpbnQgaW50ZWxfdGNfcG9ydF9maWFfbWF4X2xhbmVfY291bnQoc3RydWN0IGludGVs X2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOwogdm9pZCBpbnRlbF90Y19wb3J0X3Nhbml0aXplKHN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KTsKIHZvaWQgaW50ZWxfdGNfcG9ydF9s b2NrKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0KTsKIHZvaWQgaW50ZWxfdGNf cG9ydF91bmxvY2soc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOwordm9pZCBp bnRlbF90Y19wb3J0X2dldF9saW5rKHN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0 LAorCQkJICAgIGludCByZXF1aXJlZF9sYW5lcyk7Cit2b2lkIGludGVsX3RjX3BvcnRfcHV0X2xp bmsoc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqZGlnX3BvcnQpOwogCiB2b2lkIGludGVsX3Rj X3BvcnRfaW5pdChzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICpkaWdfcG9ydCwgYm9vbCBpc19s ZWdhY3kpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCmluZGV4IDEyYTEwMmUyMzljNS4uMjRj NjNlZDQ1YzZmIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaApAQCAtMTE1LDYgKzExNSw5IEBA IHN0cnVjdCBpbnRlbF9lbmNvZGVyIHsKIAlpbnQgKCpjb21wdXRlX2NvbmZpZykoc3RydWN0IGlu dGVsX2VuY29kZXIgKiwKIAkJCSAgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICosCiAJCQkg ICAgICBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqKTsKKwl2b2lkICgqdXBkYXRlX3ByZXBh cmUpKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKiwKKwkJCSAgICAgICBzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqLAorCQkJICAgICAgIHN0cnVjdCBpbnRlbF9jcnRjICopOwogCXZvaWQgKCpwcmVf cGxsX2VuYWJsZSkoc3RydWN0IGludGVsX2VuY29kZXIgKiwKIAkJCSAgICAgICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqLAogCQkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICopOwpAQCAtMTI0LDYgKzEyNyw5IEBAIHN0cnVjdCBpbnRlbF9lbmNvZGVyIHsK IAl2b2lkICgqZW5hYmxlKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAogCQkgICAgICAgY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKiwKIAkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICopOworCXZvaWQgKCp1cGRhdGVfY29tcGxldGUpKHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKiwKKwkJCQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAorCQkJCXN0cnVjdCBp bnRlbF9jcnRjICopOwogCXZvaWQgKCpkaXNhYmxlKShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqLAog CQkJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKiwKIAkJCWNvbnN0IHN0cnVjdCBkcm1f Y29ubmVjdG9yX3N0YXRlICopOwpAQCAtMTIzNCw2ICsxMjQwLDggQEAgc3RydWN0IGludGVsX2Rp Z2l0YWxfcG9ydCB7CiAJZW51bSBhdXhfY2ggYXV4X2NoOwogCWVudW0gaW50ZWxfZGlzcGxheV9w b3dlcl9kb21haW4gZGRpX2lvX3Bvd2VyX2RvbWFpbjsKIAlzdHJ1Y3QgbXV0ZXggdGNfbG9jazsJ LyogcHJvdGVjdHMgdGhlIFR5cGVDIHBvcnQgbW9kZSAqLworCWludGVsX3dha2VyZWZfdCB0Y19s b2NrX3dha2VyZWY7CisJaW50IHRjX2xpbmtfcmVmY291bnQ7CiAJYm9vbCB0Y19sZWdhY3lfcG9y dDoxOwogCWNoYXIgdGNfcG9ydF9uYW1lWzhdOwogCWVudW0gdGNfcG9ydF9tb2RlIHRjX21vZGU7 Ci0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eA==