From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v6 2/2] drm/i915: Skip modeset for cdclk changes if possible Date: Mon, 18 Mar 2019 16:34:35 +0200 Message-ID: <20190318143435.1686-3-imre.deak@intel.com> References: <20190318143435.1686-1-imre.deak@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 08951898BC for ; Mon, 18 Mar 2019 14:34:46 +0000 (UTC) In-Reply-To: <20190318143435.1686-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 List-Id: intel-gfx@lists.freedesktop.org RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCklm IHdlIGhhdmUgb25seSBhIHNpbmdsZSBhY3RpdmUgcGlwZSBhbmQgdGhlIGNkY2xrIGNoYW5nZSBv bmx5IHJlcXVpcmVzCnRoZSBjZDJ4IGRpdmlkZXIgdG8gYmUgdXBkYXRlZCBieHQrIGNhbiBkbyB0 aGUgdXBkYXRlIHdpdGggZm9yY2luZyBhIGZ1bGwKbW9kZXNldCBvbiB0aGUgcGlwZS4gVHJ5IHRv IGhvb2sgdGhhdCB1cC4KCnYyOgotIFdhaXQgZm9yIHZibGFuayBhZnRlciBhbiBvcHRpbWl6ZWQg Q0RDTEsgY2hhbmdlLgotIEF2b2lkIG9wdGltaXphdGlvbiBpZiB0aGUgcGlwZSBuZWVkcyBhIG1v ZGVzZXQgKG9yIHdhcyBkaXNhYmxlZCkuCi0gU3BsaXQgQ0RDTEsgY2hhbmdlIHRvIGEgcHJlL3Bv c3QgcGxhbmUgdXBkYXRlIHN0ZXAuCgpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZp bGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBYmhheSBLdW1hciA8 YWJoYXkua3VtYXJAaW50ZWwuY29tPgpUZXN0ZWQtYnk6IEFiaGF5IEt1bWFyIDxhYmhheS5rdW1h ckBpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNv bT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAgIDMgKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggICAgICB8ICAgMyArLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfY2RjbGsuYyAgIHwgMTU1ICsrKysrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgMzkgKysr KysrKystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMTUgKysrLQog NSBmaWxlcyBjaGFuZ2VkLCAxNzggaW5zZXJ0aW9ucygrKSwgMzcgZGVsZXRpb25zKC0pCgpkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggNmIxMGNlZTRlNzdmLi5kOGY5MTUyNWM5NGMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMjc3LDcgKzI3Nyw4IEBAIHN0cnVjdCBkcm1faTkxNV9k aXNwbGF5X2Z1bmNzIHsKIAl2b2lkICgqZ2V0X2NkY2xrKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAJCQkgIHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUp OwogCXZvaWQgKCpzZXRfY2RjbGspKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK LQkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSk7CisJCQkg IGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUsCisJCQkgIGVudW0g cGlwZSBwaXBlKTsKIAlpbnQgKCpnZXRfZmlmb19zaXplKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAJCQkgICAgIGVudW0gaTl4eF9wbGFuZV9pZCBpOXh4X3BsYW5lKTsKIAlp bnQgKCpjb21wdXRlX3BpcGVfd20pKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpOwpk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmgKaW5kZXggOWI2OWNlYzIxZjdiLi4xMmI4MTcwY2VkOTYgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9yZWcuaApAQCAtOTUyMSw3ICs5NTIxLDggQEAgZW51bSBza2xfcG93 ZXJfZ2F0ZSB7CiAjZGVmaW5lICBCWFRfQ0RDTEtfQ0QyWF9QSVBFKHBpcGUpCSgocGlwZSkgPDwg MjApCiAjZGVmaW5lICBDRENMS19ESVZNVVhfQ0RfT1ZFUlJJREUJKDEgPDwgMTkpCiAjZGVmaW5l ICBCWFRfQ0RDTEtfQ0QyWF9QSVBFX05PTkUJQlhUX0NEQ0xLX0NEMlhfUElQRSgzKQotI2RlZmlu ZSAgSUNMX0NEQ0xLX0NEMlhfUElQRV9OT05FCSg3IDw8IDE5KQorI2RlZmluZSAgSUNMX0NEQ0xL X0NEMlhfUElQRShwaXBlKQkoKHBpcGUpIDw8IDE5KQorI2RlZmluZSAgSUNMX0NEQ0xLX0NEMlhf UElQRV9OT05FCUlDTF9DRENMS19DRDJYX1BJUEUoNykKICNkZWZpbmUgIEJYVF9DRENMS19TU0Ff UFJFQ0hBUkdFX0VOQUJMRQkoMSA8PCAxNikKICNkZWZpbmUgIENEQ0xLX0ZSRVFfREVDSU1BTF9N QVNLCSgweDdmZikKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2Rj bGsuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMKaW5kZXggN2RjY2E4NGYz MWQxLi5kMDc0NTE3Mjg4ZWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2NkY2xrLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYwpAQCAtNTE2 LDcgKzUxNiw4IEBAIHN0YXRpYyB2b2lkIHZsdl9wcm9ncmFtX3BmaV9jcmVkaXRzKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIH0KIAogc3RhdGljIHZvaWQgdmx2X3NldF9jZGNs ayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkgIGNvbnN0IHN0cnVjdCBp bnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpCisJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9j ZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUsCisJCQkgIGVudW0gcGlwZSBwaXBlKQogewogCWludCBj ZGNsayA9IGNkY2xrX3N0YXRlLT5jZGNsazsKIAl1MzIgdmFsLCBjbWQgPSBjZGNsa19zdGF0ZS0+ dm9sdGFnZV9sZXZlbDsKQEAgLTU5OCw3ICs1OTksOCBAQCBzdGF0aWMgdm9pZCB2bHZfc2V0X2Nk Y2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIH0KIAogc3RhdGljIHZvaWQg Y2h2X3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkgIGNv bnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpCisJCQkgIGNvbnN0IHN0 cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUsCisJCQkgIGVudW0gcGlwZSBwaXBl KQogewogCWludCBjZGNsayA9IGNkY2xrX3N0YXRlLT5jZGNsazsKIAl1MzIgdmFsLCBjbWQgPSBj ZGNsa19zdGF0ZS0+dm9sdGFnZV9sZXZlbDsKQEAgLTY5Nyw3ICs2OTksOCBAQCBzdGF0aWMgdm9p ZCBiZHdfZ2V0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIH0KIAog c3RhdGljIHZvaWQgYmR3X3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCi0JCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpCisJ CQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUsCisJCQkgIGVu dW0gcGlwZSBwaXBlKQogewogCWludCBjZGNsayA9IGNkY2xrX3N0YXRlLT5jZGNsazsKIAl1MzIg dmFsOwpAQCAtOTg3LDcgKzk5MCw4IEBAIHN0YXRpYyB2b2lkIHNrbF9kcGxsMF9kaXNhYmxlKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIH0KIAogc3RhdGljIHZvaWQgc2tsX3Nl dF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkgIGNvbnN0IHN0 cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpCisJCQkgIGNvbnN0IHN0cnVjdCBp bnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUsCisJCQkgIGVudW0gcGlwZSBwaXBlKQogewog CWludCBjZGNsayA9IGNkY2xrX3N0YXRlLT5jZGNsazsKIAlpbnQgdmNvID0gY2RjbGtfc3RhdGUt PnZjbzsKQEAgLTExNTgsNyArMTE2Miw3IEBAIHZvaWQgc2tsX2luaXRfY2RjbGsoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWNkY2xrX3N0YXRlLmNkY2xrID0gc2tsX2NhbGNf Y2RjbGsoMCwgY2RjbGtfc3RhdGUudmNvKTsKIAljZGNsa19zdGF0ZS52b2x0YWdlX2xldmVsID0g c2tsX2NhbGNfdm9sdGFnZV9sZXZlbChjZGNsa19zdGF0ZS5jZGNsayk7CiAKLQlza2xfc2V0X2Nk Y2xrKGRldl9wcml2LCAmY2RjbGtfc3RhdGUpOworCXNrbF9zZXRfY2RjbGsoZGV2X3ByaXYsICZj ZGNsa19zdGF0ZSwgSU5WQUxJRF9QSVBFKTsKIH0KIAogLyoqCkBAIC0xMTc2LDcgKzExODAsNyBA QCB2b2lkIHNrbF91bmluaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogCWNkY2xrX3N0YXRlLnZjbyA9IDA7CiAJY2RjbGtfc3RhdGUudm9sdGFnZV9sZXZlbCA9IHNr bF9jYWxjX3ZvbHRhZ2VfbGV2ZWwoY2RjbGtfc3RhdGUuY2RjbGspOwogCi0Jc2tsX3NldF9jZGNs ayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRlKTsKKwlza2xfc2V0X2NkY2xrKGRldl9wcml2LCAmY2Rj bGtfc3RhdGUsIElOVkFMSURfUElQRSk7CiB9CiAKIHN0YXRpYyBpbnQgYnh0X2NhbGNfY2RjbGso aW50IG1pbl9jZGNsaykKQEAgLTEzNTUsNyArMTM1OSw4IEBAIHN0YXRpYyB2b2lkIGJ4dF9kZV9w bGxfZW5hYmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHZjbykKIH0K IAogc3RhdGljIHZvaWQgYnh0X3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCi0JCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUp CisJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUsCisJCQkg IGVudW0gcGlwZSBwaXBlKQogewogCWludCBjZGNsayA9IGNkY2xrX3N0YXRlLT5jZGNsazsKIAlp bnQgdmNvID0gY2RjbGtfc3RhdGUtPnZjbzsKQEAgLTE0MDgsMTEgKzE0MTMsMTAgQEAgc3RhdGlj IHZvaWQgYnh0X3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJ CWJ4dF9kZV9wbGxfZW5hYmxlKGRldl9wcml2LCB2Y28pOwogCiAJdmFsID0gZGl2aWRlciB8IHNr bF9jZGNsa19kZWNpbWFsKGNkY2xrKTsKLQkvKgotCSAqIEZJWE1FIGlmIG9ubHkgdGhlIGNkMngg ZGl2aWRlciBuZWVkcyBjaGFuZ2luZywgaXQgY291bGQgYmUgZG9uZQotCSAqIHdpdGhvdXQgc2h1 dHRpbmcgb2ZmIHRoZSBwaXBlIChpZiBvbmx5IG9uZSBwaXBlIGlzIGFjdGl2ZSkuCi0JICovCi0J dmFsIHw9IEJYVF9DRENMS19DRDJYX1BJUEVfTk9ORTsKKwlpZiAocGlwZSA9PSBJTlZBTElEX1BJ UEUpCisJCXZhbCB8PSBCWFRfQ0RDTEtfQ0QyWF9QSVBFX05PTkU7CisJZWxzZQorCQl2YWwgfD0g QlhUX0NEQ0xLX0NEMlhfUElQRShwaXBlKTsKIAkvKgogCSAqIERpc2FibGUgU1NBIFByZWNoYXJn ZSB3aGVuIENEIGNsb2NrIGZyZXF1ZW5jeSA8IDUwMCBNSHosCiAJICogZW5hYmxlIG90aGVyd2lz ZS4KQEAgLTE0MjEsNiArMTQyNSw5IEBAIHN0YXRpYyB2b2lkIGJ4dF9zZXRfY2RjbGsoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQl2YWwgfD0gQlhUX0NEQ0xLX1NTQV9QUkVD SEFSR0VfRU5BQkxFOwogCUk5MTVfV1JJVEUoQ0RDTEtfQ1RMLCB2YWwpOwogCisJaWYgKHBpcGUg IT0gSU5WQUxJRF9QSVBFKQorCQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2X3ByaXYsIHBpcGUp OworCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBjdV9sb2NrKTsKIAkvKgogCSAqIFRoZSB0aW1l b3V0IGlzbid0IHNwZWNpZmllZCwgdGhlIDJtcyB1c2VkIGhlcmUgaXMgYmFzZWQgb24KQEAgLTE1 MjUsNyArMTUzMiw3IEBAIHZvaWQgYnh0X2luaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2KQogCX0KIAljZGNsa19zdGF0ZS52b2x0YWdlX2xldmVsID0gYnh0X2NhbGNf dm9sdGFnZV9sZXZlbChjZGNsa19zdGF0ZS5jZGNsayk7CiAKLQlieHRfc2V0X2NkY2xrKGRldl9w cml2LCAmY2RjbGtfc3RhdGUpOworCWJ4dF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0 ZSwgSU5WQUxJRF9QSVBFKTsKIH0KIAogLyoqCkBAIC0xNTQzLDcgKzE1NTAsNyBAQCB2b2lkIGJ4 dF91bmluaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWNkY2xr X3N0YXRlLnZjbyA9IDA7CiAJY2RjbGtfc3RhdGUudm9sdGFnZV9sZXZlbCA9IGJ4dF9jYWxjX3Zv bHRhZ2VfbGV2ZWwoY2RjbGtfc3RhdGUuY2RjbGspOwogCi0JYnh0X3NldF9jZGNsayhkZXZfcHJp diwgJmNkY2xrX3N0YXRlKTsKKwlieHRfc2V0X2NkY2xrKGRldl9wcml2LCAmY2RjbGtfc3RhdGUs IElOVkFMSURfUElQRSk7CiB9CiAKIHN0YXRpYyBpbnQgY25sX2NhbGNfY2RjbGsoaW50IG1pbl9j ZGNsaykKQEAgLTE2NjMsNyArMTY3MCw4IEBAIHN0YXRpYyB2b2lkIGNubF9jZGNsa19wbGxfZW5h YmxlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHZjbykKIH0KIAogc3Rh dGljIHZvaWQgY25sX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Ci0JCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpCisJCQkg IGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUsCisJCQkgIGVudW0g cGlwZSBwaXBlKQogewogCWludCBjZGNsayA9IGNkY2xrX3N0YXRlLT5jZGNsazsKIAlpbnQgdmNv ID0gY2RjbGtfc3RhdGUtPnZjbzsKQEAgLTE3MDQsMTMgKzE3MTIsMTUgQEAgc3RhdGljIHZvaWQg Y25sX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCWNubF9j ZGNsa19wbGxfZW5hYmxlKGRldl9wcml2LCB2Y28pOwogCiAJdmFsID0gZGl2aWRlciB8IHNrbF9j ZGNsa19kZWNpbWFsKGNkY2xrKTsKLQkvKgotCSAqIEZJWE1FIGlmIG9ubHkgdGhlIGNkMnggZGl2 aWRlciBuZWVkcyBjaGFuZ2luZywgaXQgY291bGQgYmUgZG9uZQotCSAqIHdpdGhvdXQgc2h1dHRp bmcgb2ZmIHRoZSBwaXBlIChpZiBvbmx5IG9uZSBwaXBlIGlzIGFjdGl2ZSkuCi0JICovCi0JdmFs IHw9IEJYVF9DRENMS19DRDJYX1BJUEVfTk9ORTsKKwlpZiAocGlwZSA9PSBJTlZBTElEX1BJUEUp CisJCXZhbCB8PSBCWFRfQ0RDTEtfQ0QyWF9QSVBFX05PTkU7CisJZWxzZQorCQl2YWwgfD0gQlhU X0NEQ0xLX0NEMlhfUElQRShwaXBlKTsKIAlJOTE1X1dSSVRFKENEQ0xLX0NUTCwgdmFsKTsKIAor CWlmIChwaXBlICE9IElOVkFMSURfUElQRSkKKwkJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldl9w cml2LCBwaXBlKTsKKwogCS8qIGluZm9ybSBQQ1Ugb2YgdGhlIGNoYW5nZSAqLwogCW11dGV4X2xv Y2soJmRldl9wcml2LT5wY3VfbG9jayk7CiAJc2FuZHlicmlkZ2VfcGNvZGVfd3JpdGUoZGV2X3By aXYsIFNLTF9QQ09ERV9DRENMS19DT05UUk9MLApAQCAtMTg0NywxMCArMTg1NywxMiBAQCBzdGF0 aWMgaW50IGljbF9jYWxjX2NkY2xrX3BsbF92Y28oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LCBpbnQgY2RjbGspCiB9CiAKIHN0YXRpYyB2b2lkIGljbF9zZXRfY2RjbGsoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2Rj bGtfc3RhdGUgKmNkY2xrX3N0YXRlKQorCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3Rh dGUgKmNkY2xrX3N0YXRlLAorCQkJICBlbnVtIHBpcGUgcGlwZSkKIHsKIAl1bnNpZ25lZCBpbnQg Y2RjbGsgPSBjZGNsa19zdGF0ZS0+Y2RjbGs7CiAJdW5zaWduZWQgaW50IHZjbyA9IGNkY2xrX3N0 YXRlLT52Y287CisJdTMyIHZhbDsKIAlpbnQgcmV0OwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYt PnBjdV9sb2NrKTsKQEAgLTE4NzIsOCArMTg4NCwxNSBAQCBzdGF0aWMgdm9pZCBpY2xfc2V0X2Nk Y2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlpZiAoZGV2X3ByaXYtPmNk Y2xrLmh3LnZjbyAhPSB2Y28pCiAJCWNubF9jZGNsa19wbGxfZW5hYmxlKGRldl9wcml2LCB2Y28p OwogCi0JSTkxNV9XUklURShDRENMS19DVEwsIElDTF9DRENMS19DRDJYX1BJUEVfTk9ORSB8Ci0J CQkgICAgICBza2xfY2RjbGtfZGVjaW1hbChjZGNsaykpOworCXZhbCA9IHNrbF9jZGNsa19kZWNp bWFsKGNkY2xrKTsKKwlpZiAocGlwZSA9PSBJTlZBTElEX1BJUEUpCisJCXZhbCB8PSBJQ0xfQ0RD TEtfQ0QyWF9QSVBFX05PTkU7CisJZWxzZQorCQl2YWwgfD0gSUNMX0NEQ0xLX0NEMlhfUElQRShw aXBlKTsKKwlJOTE1X1dSSVRFKENEQ0xLX0NUTCwgdmFsKTsKKworCWlmIChwaXBlICE9IElOVkFM SURfUElQRSkKKwkJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldl9wcml2LCBwaXBlKTsKIAogCW11 dGV4X2xvY2soJmRldl9wcml2LT5wY3VfbG9jayk7CiAJc2FuZHlicmlkZ2VfcGNvZGVfd3JpdGUo ZGV2X3ByaXYsIFNLTF9QQ09ERV9DRENMS19DT05UUk9MLApAQCAtMjAwMiw3ICsyMDIxLDcgQEAg dm9pZCBpY2xfaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJ c2FuaXRpemVkX3N0YXRlLnZvbHRhZ2VfbGV2ZWwgPQogCQkJCWljbF9jYWxjX3ZvbHRhZ2VfbGV2 ZWwoc2FuaXRpemVkX3N0YXRlLmNkY2xrKTsKIAotCWljbF9zZXRfY2RjbGsoZGV2X3ByaXYsICZz YW5pdGl6ZWRfc3RhdGUpOworCWljbF9zZXRfY2RjbGsoZGV2X3ByaXYsICZzYW5pdGl6ZWRfc3Rh dGUsIElOVkFMSURfUElQRSk7CiB9CiAKIC8qKgpAQCAtMjAyMCw3ICsyMDM5LDcgQEAgdm9pZCBp Y2xfdW5pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAljZGNs a19zdGF0ZS52Y28gPSAwOwogCWNkY2xrX3N0YXRlLnZvbHRhZ2VfbGV2ZWwgPSBpY2xfY2FsY192 b2x0YWdlX2xldmVsKGNkY2xrX3N0YXRlLmNkY2xrKTsKIAotCWljbF9zZXRfY2RjbGsoZGV2X3By aXYsICZjZGNsa19zdGF0ZSk7CisJaWNsX3NldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRl LCBJTlZBTElEX1BJUEUpOwogfQogCiAvKioKQEAgLTIwNDgsNyArMjA2Nyw3IEBAIHZvaWQgY25s X2luaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWNkY2xrX3N0 YXRlLnZjbyA9IGNubF9jZGNsa19wbGxfdmNvKGRldl9wcml2LCBjZGNsa19zdGF0ZS5jZGNsayk7 CiAJY2RjbGtfc3RhdGUudm9sdGFnZV9sZXZlbCA9IGNubF9jYWxjX3ZvbHRhZ2VfbGV2ZWwoY2Rj bGtfc3RhdGUuY2RjbGspOwogCi0JY25sX3NldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRl KTsKKwljbmxfc2V0X2NkY2xrKGRldl9wcml2LCAmY2RjbGtfc3RhdGUsIElOVkFMSURfUElQRSk7 CiB9CiAKIC8qKgpAQCAtMjA2Niw3ICsyMDg1LDcgQEAgdm9pZCBjbmxfdW5pbml0X2NkY2xrKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAljZGNsa19zdGF0ZS52Y28gPSAwOwog CWNkY2xrX3N0YXRlLnZvbHRhZ2VfbGV2ZWwgPSBjbmxfY2FsY192b2x0YWdlX2xldmVsKGNkY2xr X3N0YXRlLmNkY2xrKTsKIAotCWNubF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSk7 CisJY25sX3NldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRlLCBJTlZBTElEX1BJUEUpOwog fQogCiAvKioKQEAgLTIwODYsNiArMjEwNSw0MiBAQCBib29sIGludGVsX2NkY2xrX25lZWRzX21v ZGVzZXQoY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICphLAogfQogCiAvKioKKyAqIGlu dGVsX2NkY2xrX25lZWRzX2NkMnhfdXBkYXRlIC0gRGV0ZXJtaW5lIGlmIHR3byBDRENMSyBzdGF0 ZXMgcmVxdWlyZSBhIGNkMnggZGl2aWRlciB1cGRhdGUKKyAqIEBhOiBmaXJzdCBDRENMSyBzdGF0 ZQorICogQGI6IHNlY29uZCBDRENMSyBzdGF0ZQorICoKKyAqIFJldHVybnM6CisgKiBUcnVlIGlm IHRoZSBDRENMSyBzdGF0ZXMgcmVxdWlyZSBqdXN0IGEgY2QyeCBkaXZpZGVyIHVwZGF0ZSwgZmFs c2UgaWYgbm90LgorICovCitib29sIGludGVsX2NkY2xrX25lZWRzX2NkMnhfdXBkYXRlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxf Y2RjbGtfc3RhdGUgKmEsCisJCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpi KQoreworCS8qIE9sZGVyIGh3IGRvZXNuJ3QgaGF2ZSB0aGUgY2FwYWJpbGl0eSAqLworCWlmIChJ TlRFTF9HRU4oZGV2X3ByaXYpIDwgMTAgJiYgIUlTX0dFTjlfTFAoZGV2X3ByaXYpKQorCQlyZXR1 cm4gZmFsc2U7CisKKwlyZXR1cm4gYS0+Y2RjbGsgIT0gYi0+Y2RjbGsgJiYKKwkJYS0+dmNvID09 IGItPnZjbyAmJgorCQlhLT5yZWYgPT0gYi0+cmVmOworfQorCisvKioKKyAqIGludGVsX2NkY2xr X2Nhbl9za2lwX21vZGVzZXQgLSBEZXRlcm1pbmUgaWYgdHdvIENEQ0xLIHN0YXRlcyBjYW4gYSBt b2Rlc2V0IG9uIGFsbCBwaXBlcworICogQGE6IGZpcnN0IENEQ0xLIHN0YXRlCisgKiBAYjogc2Vj b25kIENEQ0xLIHN0YXRlCisgKgorICogUmV0dXJuczoKKyAqIFRydWUgaWYgdGhlIENEQ0xLIHN0 YXRlcyByZXF1aXJlIHBpcGVzIHRvIGJlIG9mZiBkdXJpbmcgcmVwcm9ncmFtbWluZywKKyAqIGZh bHNlIGlmIG5vdC4KKyAqLworYm9vbCBpbnRlbF9jZGNsa19jYW5fc2tpcF9tb2Rlc2V0KGNvbnN0 IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqYSwKKwkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9j ZGNsa19zdGF0ZSAqYikKK3sKKwlyZXR1cm4gYS0+dmNvID09IGItPnZjbyAmJiBhLT5yZWYgPT0g Yi0+cmVmOworfQorCisvKioKICAqIGludGVsX2NkY2xrX2NoYW5nZWQgLSBEZXRlcm1pbmUgaWYg dHdvIENEQ0xLIHN0YXRlcyBhcmUgZGlmZmVyZW50CiAgKiBAYTogZmlyc3QgQ0RDTEsgc3RhdGUK ICAqIEBiOiBzZWNvbmQgQ0RDTEsgc3RhdGUKQEAgLTIxMTMsMTIgKzIxNjgsMTQgQEAgdm9pZCBp bnRlbF9kdW1wX2NkY2xrX3N0YXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2Rj bGtfc3RhdGUsCiAgKiBpbnRlbF9zZXRfY2RjbGsgLSBQdXNoIHRoZSBDRENMSyBzdGF0ZSB0byB0 aGUgaGFyZHdhcmUKICAqIEBkZXZfcHJpdjogaTkxNSBkZXZpY2UKICAqIEBjZGNsa19zdGF0ZTog bmV3IENEQ0xLIHN0YXRlCisgKiBAcGlwZTogcGlwZSB3aXRoIHdoaWNoIHRvIHN5bmNocm9uaXpl IHRoZSB1cGRhdGUKICAqCiAgKiBQcm9ncmFtIHRoZSBoYXJkd2FyZSBiYXNlZCBvbiB0aGUgcGFz c2VkIGluIENEQ0xLIHN0YXRlLAogICogaWYgbmVjZXNzYXJ5LgogICovCi12b2lkIGludGVsX3Nl dF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCSAgICAgY29uc3Qg c3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSkKK3N0YXRpYyB2b2lkIGludGVs X3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkgICAgY29u c3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSwKKwkJCSAgICBlbnVtIHBp cGUgcGlwZSkKIHsKIAlpZiAoIWludGVsX2NkY2xrX2NoYW5nZWQoJmRldl9wcml2LT5jZGNsay5o dywgY2RjbGtfc3RhdGUpKQogCQlyZXR1cm47CkBAIC0yMTI4LDcgKzIxODUsNyBAQCB2b2lkIGlu dGVsX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIAlpbnRl bF9kdW1wX2NkY2xrX3N0YXRlKGNkY2xrX3N0YXRlLCAiQ2hhbmdpbmcgQ0RDTEsgdG8iKTsKIAot CWRldl9wcml2LT5kaXNwbGF5LnNldF9jZGNsayhkZXZfcHJpdiwgY2RjbGtfc3RhdGUpOworCWRl dl9wcml2LT5kaXNwbGF5LnNldF9jZGNsayhkZXZfcHJpdiwgY2RjbGtfc3RhdGUsIHBpcGUpOwog CiAJaWYgKFdBUk4oaW50ZWxfY2RjbGtfY2hhbmdlZCgmZGV2X3ByaXYtPmNkY2xrLmh3LCBjZGNs a19zdGF0ZSksCiAJCSAiY2RjbGsgc3RhdGUgZG9lc24ndCBtYXRjaCFcbiIpKSB7CkBAIC0yMTM3 LDYgKzIxOTQsNDQgQEAgdm9pZCBpbnRlbF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAogCX0KIH0KIAorLyoqCisgKiBpbnRlbF9zZXRfY2RjbGtfcHJlX3BsYW5l X3VwZGF0ZSAtIFB1c2ggdGhlIENEQ0xLIHN0YXRlIHRvIHRoZSBoYXJkd2FyZQorICogQGRldl9w cml2OiBpOTE1IGRldmljZQorICogQGNkY2xrX3N0YXRlOiBuZXcgQ0RDTEsgc3RhdGUKKyAqIEBw aXBlOiBwaXBlIHdpdGggd2hpY2ggdG8gc3luY2hyb25pemUgdGhlIHVwZGF0ZQorICoKKyAqIFBy b2dyYW0gdGhlIGhhcmR3YXJlIGJlZm9yZSB1cGRhdGluZyB0aGUgSFcgcGxhbmUgc3RhdGUgYmFz ZWQgb24gdGhlIHBhc3NlZAorICogaW4gQ0RDTEsgc3RhdGUsIGlmIG5lY2Vzc2FyeS4KKyAqLwor dm9pZAoraW50ZWxfc2V0X2NkY2xrX3ByZV9wbGFuZV91cGRhdGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAorCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNk Y2xrX3N0YXRlLAorCQkJCSBlbnVtIHBpcGUgcGlwZSkKK3sKKwlpZiAocGlwZSA9PSBJTlZBTElE X1BJUEUgfHwKKwkgICAgZGV2X3ByaXYtPmNkY2xrLmFjdHVhbC5jZGNsayA+PSBjZGNsa19zdGF0 ZS0+Y2RjbGspCisJCWludGVsX3NldF9jZGNsayhkZXZfcHJpdiwgY2RjbGtfc3RhdGUsIHBpcGUp OworfQorCisvKioKKyAqIGludGVsX3NldF9jZGNsa19wb3N0X3BsYW5lX3VwZGF0ZSAtIFB1c2gg dGhlIENEQ0xLIHN0YXRlIHRvIHRoZSBoYXJkd2FyZQorICogQGRldl9wcml2OiBpOTE1IGRldmlj ZQorICogQGNkY2xrX3N0YXRlOiBuZXcgQ0RDTEsgc3RhdGUKKyAqIEBwaXBlOiBwaXBlIHdpdGgg d2hpY2ggdG8gc3luY2hyb25pemUgdGhlIHVwZGF0ZQorICoKKyAqIFByb2dyYW0gdGhlIGhhcmR3 YXJlIGFmdGVyIHVwZGF0aW5nIHRoZSBIVyBwbGFuZSBzdGF0ZSBiYXNlZCBvbiB0aGUgcGFzc2Vk CisgKiBpbiBDRENMSyBzdGF0ZSwgaWYgbmVjZXNzYXJ5LgorICovCit2b2lkCitpbnRlbF9zZXRf Y2RjbGtfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAorCQkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSwKKwkJ CQkgIGVudW0gcGlwZSBwaXBlKQoreworCWlmIChwaXBlICE9IElOVkFMSURfUElQRSAmJgorCSAg ICBkZXZfcHJpdi0+Y2RjbGsuYWN0dWFsLmNkY2xrIDwgY2RjbGtfc3RhdGUtPmNkY2xrKQorCQlp bnRlbF9zZXRfY2RjbGsoZGV2X3ByaXYsIGNkY2xrX3N0YXRlLCBwaXBlKTsKK30KKwogc3RhdGlj IGludCBpbnRlbF9waXhlbF9yYXRlX3RvX2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKIAkJCQkgICAgIGludCBwaXhlbF9yYXRlKQogewpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCmluZGV4IGI0MTk5Y2Q1MzM0OS4uMGY5ODg0ZWM3ZThlIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0xMjk4Miw2ICsxMjk4Miw3IEBAIHN0YXRpYyBp bnQgaW50ZWxfbW9kZXNldF9jaGVja3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQog CWludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MgPSBkZXZfcHJpdi0+YWN0aXZlX2NydGNzOwogCWlu dGVsX3N0YXRlLT5jZGNsay5sb2dpY2FsID0gZGV2X3ByaXYtPmNkY2xrLmxvZ2ljYWw7CiAJaW50 ZWxfc3RhdGUtPmNkY2xrLmFjdHVhbCA9IGRldl9wcml2LT5jZGNsay5hY3R1YWw7CisJaW50ZWxf c3RhdGUtPmNkY2xrLnBpcGUgPSBJTlZBTElEX1BJUEU7CiAKIAlmb3JfZWFjaF9vbGRuZXdfY3J0 Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsIG5ld19jcnRjX3N0YXRlLCBp KSB7CiAJCWlmIChuZXdfY3J0Y19zdGF0ZS0+YWN0aXZlKQpAQCAtMTMwMDEsNiArMTMwMDIsOCBA QCBzdGF0aWMgaW50IGludGVsX21vZGVzZXRfY2hlY2tzKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSkKIAkgKiBhZGp1c3RlZF9tb2RlIGJpdHMgaW4gdGhlIGNydGMgZGlyZWN0bHkuCiAJ ICovCiAJaWYgKGRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNsaykgeworCQllbnVt IHBpcGUgcGlwZTsKKwogCQlyZXQgPSBkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2Rj bGsoc3RhdGUpOwogCQlpZiAocmV0IDwgMCkKIAkJCXJldHVybiByZXQ7CkBAIC0xMzAxNywxMiAr MTMwMjAsMzYgQEAgc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0X2NoZWNrcyhzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGUpCiAJCQkJcmV0dXJuIHJldDsKIAkJfQogCisJCWlmIChpc19wb3dl cl9vZl8yKGludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MpKSB7CisJCQlzdHJ1Y3QgZHJtX2NydGMg KmNydGM7CisJCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CisKKwkJCXBpcGUg PSBpbG9nMihpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzKTsKKwkJCWNydGMgPSAmaW50ZWxfZ2V0 X2NydGNfZm9yX3BpcGUoZGV2X3ByaXYsIHBpcGUpLT5iYXNlOworCQkJY3J0Y19zdGF0ZSA9IGRy bV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKKwkJCWlmIChjcnRjX3N0 YXRlICYmIG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpCisJCQkJcGlwZSA9IElOVkFMSURfUElQ RTsKKwkJfSBlbHNlIHsKKwkJCXBpcGUgPSBJTlZBTElEX1BJUEU7CisJCX0KKwogCQkvKiBBbGwg cGlwZXMgbXVzdCBiZSBzd2l0Y2hlZCBvZmYgd2hpbGUgd2UgY2hhbmdlIHRoZSBjZGNsay4gKi8K LQkJaWYgKGludGVsX2NkY2xrX25lZWRzX21vZGVzZXQoJmRldl9wcml2LT5jZGNsay5hY3R1YWws Ci0JCQkJCSAgICAgICZpbnRlbF9zdGF0ZS0+Y2RjbGsuYWN0dWFsKSkgeworCQlpZiAocGlwZSAh PSBJTlZBTElEX1BJUEUgJiYKKwkJICAgIGludGVsX2NkY2xrX25lZWRzX2NkMnhfdXBkYXRlKGRl dl9wcml2LAorCQkJCQkJICAmZGV2X3ByaXYtPmNkY2xrLmFjdHVhbCwKKwkJCQkJCSAgJmludGVs X3N0YXRlLT5jZGNsay5hY3R1YWwpKSB7CisJCQlyZXQgPSBpbnRlbF9sb2NrX2FsbF9waXBlcyhz dGF0ZSk7CisJCQlpZiAocmV0IDwgMCkKKwkJCQlyZXR1cm4gcmV0OworCisJCQlpbnRlbF9zdGF0 ZS0+Y2RjbGsucGlwZSA9IHBpcGU7CisJCX0gZWxzZSBpZiAoaW50ZWxfY2RjbGtfbmVlZHNfbW9k ZXNldCgmZGV2X3ByaXYtPmNkY2xrLmFjdHVhbCwKKwkJCQkJCSAgICAgJmludGVsX3N0YXRlLT5j ZGNsay5hY3R1YWwpKSB7CiAJCQlyZXQgPSBpbnRlbF9tb2Rlc2V0X2FsbF9waXBlcyhzdGF0ZSk7 CiAJCQlpZiAocmV0IDwgMCkKIAkJCQlyZXR1cm4gcmV0OworCisJCQlpbnRlbF9zdGF0ZS0+Y2Rj bGsucGlwZSA9IElOVkFMSURfUElQRTsKIAkJfQogCiAJCURSTV9ERUJVR19LTVMoIk5ldyBjZGNs ayBjYWxjdWxhdGVkIHRvIGJlIGxvZ2ljYWwgJXUga0h6LCBhY3R1YWwgJXUga0h6XG4iLApAQCAt MTM0MzMsNyArMTM0NjAsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0X3RhaWwo c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCWlmIChpbnRlbF9zdGF0ZS0+bW9kZXNl dCkgewogCQlkcm1fYXRvbWljX2hlbHBlcl91cGRhdGVfbGVnYWN5X21vZGVzZXRfc3RhdGUoc3Rh dGUtPmRldiwgc3RhdGUpOwogCi0JCWludGVsX3NldF9jZGNsayhkZXZfcHJpdiwgJmRldl9wcml2 LT5jZGNsay5hY3R1YWwpOworCQlpbnRlbF9zZXRfY2RjbGtfcHJlX3BsYW5lX3VwZGF0ZShkZXZf cHJpdiwKKwkJCQkJCSAmZGV2X3ByaXYtPmNkY2xrLmFjdHVhbCwKKwkJCQkJCSBpbnRlbF9zdGF0 ZS0+Y2RjbGsucGlwZSk7CiAKIAkJLyoKIAkJICogU0tMIHdvcmthcm91bmQ6IGJzcGVjIHJlY29t bWVuZHMgd2UgZGlzYWJsZSB0aGUgU0FHViB3aGVuIHdlCkBAIC0xMzQ2Miw2ICsxMzQ5MSwxMCBA QCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlKQogCS8qIE5vdyBlbmFibGUgdGhlIGNsb2NrcywgcGxhbmUsIHBpcGUsIGFu ZCBjb25uZWN0b3JzIHRoYXQgd2Ugc2V0IHVwLiAqLwogCWRldl9wcml2LT5kaXNwbGF5LnVwZGF0 ZV9jcnRjcyhzdGF0ZSk7CiAKKwlpbnRlbF9zZXRfY2RjbGtfcG9zdF9wbGFuZV91cGRhdGUoZGV2 X3ByaXYsCisJCQkJCSAgJmRldl9wcml2LT5jZGNsay5hY3R1YWwsCisJCQkJCSAgaW50ZWxfc3Rh dGUtPmNkY2xrLnBpcGUpOworCiAJLyogRklYTUU6IFdlIHNob3VsZCBjYWxsIGRybV9hdG9taWNf aGVscGVyX2NvbW1pdF9od19kb25lKCkgaGVyZQogCSAqIGFscmVhZHksIGJ1dCBzdGlsbCBuZWVk IHRoZSBzdGF0ZSBmb3IgdGhlIGRlbGF5ZWQgb3B0aW1pemF0aW9uLiBUbwogCSAqIGZpeCB0aGlz OgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCAwYjg0ZTU1N2MyNjcuLmU1YTFlMjQ1ZWU2 NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTU1OSw2ICs1NTksOCBAQCBzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlIHsKIAogCQlpbnQgZm9yY2VfbWluX2NkY2xrOwogCQlib29sIGZv cmNlX21pbl9jZGNsa19jaGFuZ2VkOworCQkvKiBwaXBlIHRvIHdoaWNoIGNkMnggdXBkYXRlIGlz IHN5bmNocm9uaXplZCAqLworCQllbnVtIHBpcGUgcGlwZTsKIAl9IGNkY2xrOwogCiAJYm9vbCBk cGxsX3NldCwgbW9kZXNldDsKQEAgLTE2OTQsMTIgKzE2OTYsMjEgQEAgdm9pZCBpbnRlbF9pbml0 X2NkY2xrX2hvb2tzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB2b2lkIGlu dGVsX3VwZGF0ZV9tYXhfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsK IHZvaWQgaW50ZWxfdXBkYXRlX2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp dik7CiB2b2lkIGludGVsX3VwZGF0ZV9yYXdjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2KTsKK2Jvb2wgaW50ZWxfY2RjbGtfbmVlZHNfY2QyeF91cGRhdGUoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19z dGF0ZSAqYSwKKwkJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmIpOwogYm9v bCBpbnRlbF9jZGNsa19uZWVkc19tb2Rlc2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0 ZSAqYSwKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmIpOwogYm9v bCBpbnRlbF9jZGNsa19jaGFuZ2VkKGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqYSwK IAkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmIpOwotdm9pZCBpbnRlbF9zZXRf Y2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkgICAgIGNvbnN0IHN0 cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpOwordm9pZAoraW50ZWxfc2V0X2Nk Y2xrX3ByZV9wbGFuZV91cGRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAor CQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlLAorCQkJCSBl bnVtIHBpcGUgcGlwZSk7Cit2b2lkCitpbnRlbF9zZXRfY2RjbGtfcG9zdF9wbGFuZV91cGRhdGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCSAgY29uc3Qgc3RydWN0IGlu dGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSwKKwkJCQkgIGVudW0gcGlwZSBwaXBlKTsKIHZv aWQgaW50ZWxfZHVtcF9jZGNsa19zdGF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUg KmNkY2xrX3N0YXRlLAogCQkJICAgIGNvbnN0IGNoYXIgKmNvbnRleHQpOwogCi0tIAoyLjEzLjIK Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdm eCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xp c3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==