From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v8 4/4] drm/i915: Skip modeset for cdclk changes if possible Date: Wed, 20 Mar 2019 11:18:44 +0200 Message-ID: <20190320091844.7502-2-imre.deak@intel.com> References: <20190320091844.7502-1-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTPS id F04D489B57 for ; Wed, 20 Mar 2019 09:18:55 +0000 (UTC) In-Reply-To: <20190320091844.7502-1-imre.deak@intel.com> In-Reply-To: <20190319183618.22162-5-imre.deak@intel.com> References: <20190319183618.22162-5-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 c3QgcGxhbmUgdXBkYXRlIHN0ZXAuCnYzOgotIFVzZSBjb3JyZWN0IHZlcnNpb24gb2YgQ0RDTEsg c3RhdGUgYXMgb2xkIHN0YXRlLiAoVmlsbGUpCi0gUmVtb3ZlIHVudXNlZCBpbnRlbF9jZGNsa19j YW5fc2tpcF9tb2Rlc2V0KCkKdjQ6Ci0gRm9yIGNvbnNpc3RlbmN5IGNhbGwgaW50ZWxfc2V0X2Nk Y2xrX3Bvc3RfcGxhbmVfdXBkYXRlKCkgb25seSBkdXJpbmcKICBtb2Rlc2V0cyAoYW5kIG5vdCBm YXN0c2V0cykuCgpTaWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBBYmhheSBLdW1hciA8YWJoYXkua3VtYXJA aW50ZWwuY29tPgpUZXN0ZWQtYnk6IEFiaGF5IEt1bWFyIDxhYmhheS5rdW1hckBpbnRlbC5jb20+ ClNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAgIDMgKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmggICAgICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfY2RjbGsuYyAgIHwgMTQyICsrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAgNDIgKysrKysrKysrKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAxNyArKysrLQogNSBmaWxlcyBj aGFuZ2VkLCAxNzAgaW5zZXJ0aW9ucygrKSwgMzcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKaW5kZXggNmIxMGNlZTRlNzdmLi5kOGY5MTUyNWM5NGMgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaApAQCAtMjc3LDcgKzI3Nyw4IEBAIHN0cnVjdCBkcm1faTkxNV9kaXNwbGF5X2Z1 bmNzIHsKIAl2b2lkICgqZ2V0X2NkY2xrKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCiAJCQkgIHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpOwogCXZvaWQg KCpzZXRfY2RjbGspKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCSAgY29u c3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSk7CisJCQkgIGNvbnN0IHN0 cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUsCisJCQkgIGVudW0gcGlwZSBwaXBl KTsKIAlpbnQgKCpnZXRfZmlmb19zaXplKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCiAJCQkgICAgIGVudW0gaTl4eF9wbGFuZV9pZCBpOXh4X3BsYW5lKTsKIAlpbnQgKCpjb21w dXRlX3BpcGVfd20pKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjc3RhdGUpOwpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcmVnLmgKaW5kZXggOWI2OWNlYzIxZjdiLi4xMmI4MTcwY2VkOTYgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaApAQCAtOTUyMSw3ICs5NTIxLDggQEAgZW51bSBza2xfcG93ZXJfZ2F0ZSB7 CiAjZGVmaW5lICBCWFRfQ0RDTEtfQ0QyWF9QSVBFKHBpcGUpCSgocGlwZSkgPDwgMjApCiAjZGVm aW5lICBDRENMS19ESVZNVVhfQ0RfT1ZFUlJJREUJKDEgPDwgMTkpCiAjZGVmaW5lICBCWFRfQ0RD TEtfQ0QyWF9QSVBFX05PTkUJQlhUX0NEQ0xLX0NEMlhfUElQRSgzKQotI2RlZmluZSAgSUNMX0NE Q0xLX0NEMlhfUElQRV9OT05FCSg3IDw8IDE5KQorI2RlZmluZSAgSUNMX0NEQ0xLX0NEMlhfUElQ RShwaXBlKQkoKHBpcGUpIDw8IDE5KQorI2RlZmluZSAgSUNMX0NEQ0xLX0NEMlhfUElQRV9OT05F CUlDTF9DRENMS19DRDJYX1BJUEUoNykKICNkZWZpbmUgIEJYVF9DRENMS19TU0FfUFJFQ0hBUkdF X0VOQUJMRQkoMSA8PCAxNikKICNkZWZpbmUgIENEQ0xLX0ZSRVFfREVDSU1BTF9NQVNLCSgweDdm ZikKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMKaW5kZXggNWMyNTYyNmY4Y2YwLi40OGNj NDJhN2VmNGYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY2RjbGsuYwpAQCAtNTE2LDcgKzUxNiw4 IEBAIHN0YXRpYyB2b2lkIHZsdl9wcm9ncmFtX3BmaV9jcmVkaXRzKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIH0KIAogc3RhdGljIHZvaWQgdmx2X3NldF9jZGNsayhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNs a19zdGF0ZSAqY2RjbGtfc3RhdGUpCisJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0 ZSAqY2RjbGtfc3RhdGUsCisJCQkgIGVudW0gcGlwZSBwaXBlKQogewogCWludCBjZGNsayA9IGNk Y2xrX3N0YXRlLT5jZGNsazsKIAl1MzIgdmFsLCBjbWQgPSBjZGNsa19zdGF0ZS0+dm9sdGFnZV9s ZXZlbDsKQEAgLTU5OCw3ICs1OTksOCBAQCBzdGF0aWMgdm9pZCB2bHZfc2V0X2NkY2xrKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIH0KIAogc3RhdGljIHZvaWQgY2h2X3NldF9j ZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkgIGNvbnN0IHN0cnVj dCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpCisJCQkgIGNvbnN0IHN0cnVjdCBpbnRl bF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUsCisJCQkgIGVudW0gcGlwZSBwaXBlKQogewogCWlu dCBjZGNsayA9IGNkY2xrX3N0YXRlLT5jZGNsazsKIAl1MzIgdmFsLCBjbWQgPSBjZGNsa19zdGF0 ZS0+dm9sdGFnZV9sZXZlbDsKQEAgLTY5Nyw3ICs2OTksOCBAQCBzdGF0aWMgdm9pZCBiZHdfZ2V0 X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIH0KIAogc3RhdGljIHZv aWQgYmR3X3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkg IGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpCisJCQkgIGNvbnN0 IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUsCisJCQkgIGVudW0gcGlwZSBw aXBlKQogewogCWludCBjZGNsayA9IGNkY2xrX3N0YXRlLT5jZGNsazsKIAl1MzIgdmFsOwpAQCAt OTg3LDcgKzk5MCw4IEBAIHN0YXRpYyB2b2lkIHNrbF9kcGxsMF9kaXNhYmxlKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIH0KIAogc3RhdGljIHZvaWQgc2tsX3NldF9jZGNsayhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkgIGNvbnN0IHN0cnVjdCBpbnRl bF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpCisJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNs a19zdGF0ZSAqY2RjbGtfc3RhdGUsCisJCQkgIGVudW0gcGlwZSBwaXBlKQogewogCWludCBjZGNs ayA9IGNkY2xrX3N0YXRlLT5jZGNsazsKIAlpbnQgdmNvID0gY2RjbGtfc3RhdGUtPnZjbzsKQEAg LTExNTgsNyArMTE2Miw3IEBAIHZvaWQgc2tsX2luaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogCWNkY2xrX3N0YXRlLmNkY2xrID0gc2tsX2NhbGNfY2RjbGsoMCwg Y2RjbGtfc3RhdGUudmNvKTsKIAljZGNsa19zdGF0ZS52b2x0YWdlX2xldmVsID0gc2tsX2NhbGNf dm9sdGFnZV9sZXZlbChjZGNsa19zdGF0ZS5jZGNsayk7CiAKLQlza2xfc2V0X2NkY2xrKGRldl9w cml2LCAmY2RjbGtfc3RhdGUpOworCXNrbF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0 ZSwgSU5WQUxJRF9QSVBFKTsKIH0KIAogLyoqCkBAIC0xMTc2LDcgKzExODAsNyBAQCB2b2lkIHNr bF91bmluaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWNkY2xr X3N0YXRlLnZjbyA9IDA7CiAJY2RjbGtfc3RhdGUudm9sdGFnZV9sZXZlbCA9IHNrbF9jYWxjX3Zv bHRhZ2VfbGV2ZWwoY2RjbGtfc3RhdGUuY2RjbGspOwogCi0Jc2tsX3NldF9jZGNsayhkZXZfcHJp diwgJmNkY2xrX3N0YXRlKTsKKwlza2xfc2V0X2NkY2xrKGRldl9wcml2LCAmY2RjbGtfc3RhdGUs IElOVkFMSURfUElQRSk7CiB9CiAKIHN0YXRpYyBpbnQgYnh0X2NhbGNfY2RjbGsoaW50IG1pbl9j ZGNsaykKQEAgLTEzNTUsNyArMTM1OSw4IEBAIHN0YXRpYyB2b2lkIGJ4dF9kZV9wbGxfZW5hYmxl KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHZjbykKIH0KIAogc3RhdGlj IHZvaWQgYnh0X3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0J CQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpCisJCQkgIGNv bnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUsCisJCQkgIGVudW0gcGlw ZSBwaXBlKQogewogCWludCBjZGNsayA9IGNkY2xrX3N0YXRlLT5jZGNsazsKIAlpbnQgdmNvID0g Y2RjbGtfc3RhdGUtPnZjbzsKQEAgLTE0MDgsMTEgKzE0MTMsMTAgQEAgc3RhdGljIHZvaWQgYnh0 X3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCWJ4dF9kZV9w bGxfZW5hYmxlKGRldl9wcml2LCB2Y28pOwogCiAJdmFsID0gZGl2aWRlciB8IHNrbF9jZGNsa19k ZWNpbWFsKGNkY2xrKTsKLQkvKgotCSAqIEZJWE1FIGlmIG9ubHkgdGhlIGNkMnggZGl2aWRlciBu ZWVkcyBjaGFuZ2luZywgaXQgY291bGQgYmUgZG9uZQotCSAqIHdpdGhvdXQgc2h1dHRpbmcgb2Zm IHRoZSBwaXBlIChpZiBvbmx5IG9uZSBwaXBlIGlzIGFjdGl2ZSkuCi0JICovCi0JdmFsIHw9IEJY VF9DRENMS19DRDJYX1BJUEVfTk9ORTsKKwlpZiAocGlwZSA9PSBJTlZBTElEX1BJUEUpCisJCXZh bCB8PSBCWFRfQ0RDTEtfQ0QyWF9QSVBFX05PTkU7CisJZWxzZQorCQl2YWwgfD0gQlhUX0NEQ0xL X0NEMlhfUElQRShwaXBlKTsKIAkvKgogCSAqIERpc2FibGUgU1NBIFByZWNoYXJnZSB3aGVuIENE IGNsb2NrIGZyZXF1ZW5jeSA8IDUwMCBNSHosCiAJICogZW5hYmxlIG90aGVyd2lzZS4KQEAgLTE0 MjEsNiArMTQyNSw5IEBAIHN0YXRpYyB2b2lkIGJ4dF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAogCQl2YWwgfD0gQlhUX0NEQ0xLX1NTQV9QUkVDSEFSR0VfRU5B QkxFOwogCUk5MTVfV1JJVEUoQ0RDTEtfQ1RMLCB2YWwpOwogCisJaWYgKHBpcGUgIT0gSU5WQUxJ RF9QSVBFKQorCQlpbnRlbF93YWl0X2Zvcl92YmxhbmsoZGV2X3ByaXYsIHBpcGUpOworCiAJbXV0 ZXhfbG9jaygmZGV2X3ByaXYtPnBjdV9sb2NrKTsKIAkvKgogCSAqIFRoZSB0aW1lb3V0IGlzbid0 IHNwZWNpZmllZCwgdGhlIDJtcyB1c2VkIGhlcmUgaXMgYmFzZWQgb24KQEAgLTE1MjUsNyArMTUz Miw3IEBAIHZvaWQgYnh0X2luaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQogCX0KIAljZGNsa19zdGF0ZS52b2x0YWdlX2xldmVsID0gYnh0X2NhbGNfdm9sdGFnZV9s ZXZlbChjZGNsa19zdGF0ZS5jZGNsayk7CiAKLQlieHRfc2V0X2NkY2xrKGRldl9wcml2LCAmY2Rj bGtfc3RhdGUpOworCWJ4dF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSwgSU5WQUxJ RF9QSVBFKTsKIH0KIAogLyoqCkBAIC0xNTQzLDcgKzE1NTAsNyBAQCB2b2lkIGJ4dF91bmluaXRf Y2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWNkY2xrX3N0YXRlLnZj byA9IDA7CiAJY2RjbGtfc3RhdGUudm9sdGFnZV9sZXZlbCA9IGJ4dF9jYWxjX3ZvbHRhZ2VfbGV2 ZWwoY2RjbGtfc3RhdGUuY2RjbGspOwogCi0JYnh0X3NldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xr X3N0YXRlKTsKKwlieHRfc2V0X2NkY2xrKGRldl9wcml2LCAmY2RjbGtfc3RhdGUsIElOVkFMSURf UElQRSk7CiB9CiAKIHN0YXRpYyBpbnQgY25sX2NhbGNfY2RjbGsoaW50IG1pbl9jZGNsaykKQEAg LTE2NjMsNyArMTY3MCw4IEBAIHN0YXRpYyB2b2lkIGNubF9jZGNsa19wbGxfZW5hYmxlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgaW50IHZjbykKIH0KIAogc3RhdGljIHZvaWQg Y25sX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkgIGNv bnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpCisJCQkgIGNvbnN0IHN0 cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUsCisJCQkgIGVudW0gcGlwZSBwaXBl KQogewogCWludCBjZGNsayA9IGNkY2xrX3N0YXRlLT5jZGNsazsKIAlpbnQgdmNvID0gY2RjbGtf c3RhdGUtPnZjbzsKQEAgLTE3MDQsMTMgKzE3MTIsMTUgQEAgc3RhdGljIHZvaWQgY25sX3NldF9j ZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCWNubF9jZGNsa19wbGxf ZW5hYmxlKGRldl9wcml2LCB2Y28pOwogCiAJdmFsID0gZGl2aWRlciB8IHNrbF9jZGNsa19kZWNp bWFsKGNkY2xrKTsKLQkvKgotCSAqIEZJWE1FIGlmIG9ubHkgdGhlIGNkMnggZGl2aWRlciBuZWVk cyBjaGFuZ2luZywgaXQgY291bGQgYmUgZG9uZQotCSAqIHdpdGhvdXQgc2h1dHRpbmcgb2ZmIHRo ZSBwaXBlIChpZiBvbmx5IG9uZSBwaXBlIGlzIGFjdGl2ZSkuCi0JICovCi0JdmFsIHw9IEJYVF9D RENMS19DRDJYX1BJUEVfTk9ORTsKKwlpZiAocGlwZSA9PSBJTlZBTElEX1BJUEUpCisJCXZhbCB8 PSBCWFRfQ0RDTEtfQ0QyWF9QSVBFX05PTkU7CisJZWxzZQorCQl2YWwgfD0gQlhUX0NEQ0xLX0NE MlhfUElQRShwaXBlKTsKIAlJOTE1X1dSSVRFKENEQ0xLX0NUTCwgdmFsKTsKIAorCWlmIChwaXBl ICE9IElOVkFMSURfUElQRSkKKwkJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldl9wcml2LCBwaXBl KTsKKwogCS8qIGluZm9ybSBQQ1Ugb2YgdGhlIGNoYW5nZSAqLwogCW11dGV4X2xvY2soJmRldl9w cml2LT5wY3VfbG9jayk7CiAJc2FuZHlicmlkZ2VfcGNvZGVfd3JpdGUoZGV2X3ByaXYsIFNLTF9Q Q09ERV9DRENMS19DT05UUk9MLApAQCAtMTg0NywxMCArMTg1NywxMiBAQCBzdGF0aWMgaW50IGlj bF9jYWxjX2NkY2xrX3BsbF92Y28oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBp bnQgY2RjbGspCiB9CiAKIHN0YXRpYyB2b2lkIGljbF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAotCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUg KmNkY2xrX3N0YXRlKQorCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xr X3N0YXRlLAorCQkJICBlbnVtIHBpcGUgcGlwZSkKIHsKIAl1bnNpZ25lZCBpbnQgY2RjbGsgPSBj ZGNsa19zdGF0ZS0+Y2RjbGs7CiAJdW5zaWduZWQgaW50IHZjbyA9IGNkY2xrX3N0YXRlLT52Y287 CisJdTMyIHZhbDsKIAlpbnQgcmV0OwogCiAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPnBjdV9sb2Nr KTsKQEAgLTE4NzIsOCArMTg4NCwxNSBAQCBzdGF0aWMgdm9pZCBpY2xfc2V0X2NkY2xrKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlpZiAoZGV2X3ByaXYtPmNkY2xrLmh3LnZj byAhPSB2Y28pCiAJCWNubF9jZGNsa19wbGxfZW5hYmxlKGRldl9wcml2LCB2Y28pOwogCi0JSTkx NV9XUklURShDRENMS19DVEwsIElDTF9DRENMS19DRDJYX1BJUEVfTk9ORSB8Ci0JCQkgICAgICBz a2xfY2RjbGtfZGVjaW1hbChjZGNsaykpOworCXZhbCA9IHNrbF9jZGNsa19kZWNpbWFsKGNkY2xr KTsKKwlpZiAocGlwZSA9PSBJTlZBTElEX1BJUEUpCisJCXZhbCB8PSBJQ0xfQ0RDTEtfQ0QyWF9Q SVBFX05PTkU7CisJZWxzZQorCQl2YWwgfD0gSUNMX0NEQ0xLX0NEMlhfUElQRShwaXBlKTsKKwlJ OTE1X1dSSVRFKENEQ0xLX0NUTCwgdmFsKTsKKworCWlmIChwaXBlICE9IElOVkFMSURfUElQRSkK KwkJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldl9wcml2LCBwaXBlKTsKIAogCW11dGV4X2xvY2so JmRldl9wcml2LT5wY3VfbG9jayk7CiAJc2FuZHlicmlkZ2VfcGNvZGVfd3JpdGUoZGV2X3ByaXYs IFNLTF9QQ09ERV9DRENMS19DT05UUk9MLApAQCAtMjAwMiw3ICsyMDIxLDcgQEAgdm9pZCBpY2xf aW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJc2FuaXRpemVk X3N0YXRlLnZvbHRhZ2VfbGV2ZWwgPQogCQkJCWljbF9jYWxjX3ZvbHRhZ2VfbGV2ZWwoc2FuaXRp emVkX3N0YXRlLmNkY2xrKTsKIAotCWljbF9zZXRfY2RjbGsoZGV2X3ByaXYsICZzYW5pdGl6ZWRf c3RhdGUpOworCWljbF9zZXRfY2RjbGsoZGV2X3ByaXYsICZzYW5pdGl6ZWRfc3RhdGUsIElOVkFM SURfUElQRSk7CiB9CiAKIC8qKgpAQCAtMjAyMCw3ICsyMDM5LDcgQEAgdm9pZCBpY2xfdW5pbml0 X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAljZGNsa19zdGF0ZS52 Y28gPSAwOwogCWNkY2xrX3N0YXRlLnZvbHRhZ2VfbGV2ZWwgPSBpY2xfY2FsY192b2x0YWdlX2xl dmVsKGNkY2xrX3N0YXRlLmNkY2xrKTsKIAotCWljbF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNs a19zdGF0ZSk7CisJaWNsX3NldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRlLCBJTlZBTElE X1BJUEUpOwogfQogCiAvKioKQEAgLTIwNDgsNyArMjA2Nyw3IEBAIHZvaWQgY25sX2luaXRfY2Rj bGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCWNkY2xrX3N0YXRlLnZjbyA9 IGNubF9jZGNsa19wbGxfdmNvKGRldl9wcml2LCBjZGNsa19zdGF0ZS5jZGNsayk7CiAJY2RjbGtf c3RhdGUudm9sdGFnZV9sZXZlbCA9IGNubF9jYWxjX3ZvbHRhZ2VfbGV2ZWwoY2RjbGtfc3RhdGUu Y2RjbGspOwogCi0JY25sX3NldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRlKTsKKwljbmxf c2V0X2NkY2xrKGRldl9wcml2LCAmY2RjbGtfc3RhdGUsIElOVkFMSURfUElQRSk7CiB9CiAKIC8q KgpAQCAtMjA2Niw3ICsyMDg1LDcgQEAgdm9pZCBjbmxfdW5pbml0X2NkY2xrKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAljZGNsa19zdGF0ZS52Y28gPSAwOwogCWNkY2xrX3N0 YXRlLnZvbHRhZ2VfbGV2ZWwgPSBjbmxfY2FsY192b2x0YWdlX2xldmVsKGNkY2xrX3N0YXRlLmNk Y2xrKTsKIAotCWNubF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSk7CisJY25sX3Nl dF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRlLCBJTlZBTElEX1BJUEUpOwogfQogCiAvKioK QEAgLTIwODYsNiArMjEwNSwyNyBAQCBib29sIGludGVsX2NkY2xrX25lZWRzX21vZGVzZXQoY29u c3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICphLAogfQogCiAvKioKKyAqIGludGVsX2NkY2xr X25lZWRzX2NkMnhfdXBkYXRlIC0gRGV0ZXJtaW5lIGlmIHR3byBDRENMSyBzdGF0ZXMgcmVxdWly ZSBhIGNkMnggZGl2aWRlciB1cGRhdGUKKyAqIEBhOiBmaXJzdCBDRENMSyBzdGF0ZQorICogQGI6 IHNlY29uZCBDRENMSyBzdGF0ZQorICoKKyAqIFJldHVybnM6CisgKiBUcnVlIGlmIHRoZSBDRENM SyBzdGF0ZXMgcmVxdWlyZSBqdXN0IGEgY2QyeCBkaXZpZGVyIHVwZGF0ZSwgZmFsc2UgaWYgbm90 LgorICovCitib29sIGludGVsX2NkY2xrX25lZWRzX2NkMnhfdXBkYXRlKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3Rh dGUgKmEsCisJCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpiKQoreworCS8q IE9sZGVyIGh3IGRvZXNuJ3QgaGF2ZSB0aGUgY2FwYWJpbGl0eSAqLworCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpIDwgMTAgJiYgIUlTX0dFTjlfTFAoZGV2X3ByaXYpKQorCQlyZXR1cm4gZmFsc2U7 CisKKwlyZXR1cm4gYS0+Y2RjbGsgIT0gYi0+Y2RjbGsgJiYKKwkJYS0+dmNvID09IGItPnZjbyAm JgorCQlhLT5yZWYgPT0gYi0+cmVmOworfQorCisvKioKICAqIGludGVsX2NkY2xrX2NoYW5nZWQg LSBEZXRlcm1pbmUgaWYgdHdvIENEQ0xLIHN0YXRlcyBhcmUgZGlmZmVyZW50CiAgKiBAYTogZmly c3QgQ0RDTEsgc3RhdGUKICAqIEBiOiBzZWNvbmQgQ0RDTEsgc3RhdGUKQEAgLTIxMzMsMTIgKzIx NzMsMTQgQEAgdm9pZCBpbnRlbF9kdW1wX2NkY2xrX3N0YXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9j ZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUsCiAgKiBpbnRlbF9zZXRfY2RjbGsgLSBQdXNoIHRoZSBD RENMSyBzdGF0ZSB0byB0aGUgaGFyZHdhcmUKICAqIEBkZXZfcHJpdjogaTkxNSBkZXZpY2UKICAq IEBjZGNsa19zdGF0ZTogbmV3IENEQ0xLIHN0YXRlCisgKiBAcGlwZTogcGlwZSB3aXRoIHdoaWNo IHRvIHN5bmNocm9uaXplIHRoZSB1cGRhdGUKICAqCiAgKiBQcm9ncmFtIHRoZSBoYXJkd2FyZSBi YXNlZCBvbiB0aGUgcGFzc2VkIGluIENEQ0xLIHN0YXRlLAogICogaWYgbmVjZXNzYXJ5LgogICov Ci12b2lkIGludGVsX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Ci0JCSAgICAgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSkKK3N0 YXRpYyB2b2lkIGludGVsX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCisJCQkgICAgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSwK KwkJCSAgICBlbnVtIHBpcGUgcGlwZSkKIHsKIAlpZiAoIWludGVsX2NkY2xrX2NoYW5nZWQoJmRl dl9wcml2LT5jZGNsay5odywgY2RjbGtfc3RhdGUpKQogCQlyZXR1cm47CkBAIC0yMTQ4LDcgKzIx OTAsNyBAQCB2b2lkIGludGVsX3NldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCiAKIAlpbnRlbF9kdW1wX2NkY2xrX3N0YXRlKGNkY2xrX3N0YXRlLCAiQ2hhbmdpbmcg Q0RDTEsgdG8iKTsKIAotCWRldl9wcml2LT5kaXNwbGF5LnNldF9jZGNsayhkZXZfcHJpdiwgY2Rj bGtfc3RhdGUpOworCWRldl9wcml2LT5kaXNwbGF5LnNldF9jZGNsayhkZXZfcHJpdiwgY2RjbGtf c3RhdGUsIHBpcGUpOwogCiAJaWYgKFdBUk4oaW50ZWxfY2RjbGtfY2hhbmdlZCgmZGV2X3ByaXYt PmNkY2xrLmh3LCBjZGNsa19zdGF0ZSksCiAJCSAiY2RjbGsgc3RhdGUgZG9lc24ndCBtYXRjaCFc biIpKSB7CkBAIC0yMTU3LDYgKzIxOTksNDYgQEAgdm9pZCBpbnRlbF9zZXRfY2RjbGsoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCX0KIH0KIAorLyoqCisgKiBpbnRlbF9zZXRf Y2RjbGtfcHJlX3BsYW5lX3VwZGF0ZSAtIFB1c2ggdGhlIENEQ0xLIHN0YXRlIHRvIHRoZSBoYXJk d2FyZQorICogQGRldl9wcml2OiBpOTE1IGRldmljZQorICogQG9sZF9zdGF0ZTogb2xkIENEQ0xL IHN0YXRlCisgKiBAbmV3X3N0YXRlOiBuZXcgQ0RDTEsgc3RhdGUKKyAqIEBwaXBlOiBwaXBlIHdp dGggd2hpY2ggdG8gc3luY2hyb25pemUgdGhlIHVwZGF0ZQorICoKKyAqIFByb2dyYW0gdGhlIGhh cmR3YXJlIGJlZm9yZSB1cGRhdGluZyB0aGUgSFcgcGxhbmUgc3RhdGUgYmFzZWQgb24gdGhlIHBh c3NlZAorICogaW4gQ0RDTEsgc3RhdGUsIGlmIG5lY2Vzc2FyeS4KKyAqLwordm9pZAoraW50ZWxf c2V0X2NkY2xrX3ByZV9wbGFuZV91cGRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAorCQkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKm9sZF9zdGF0ZSwKKwkJ CQkgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpuZXdfc3RhdGUsCisJCQkJIGVudW0g cGlwZSBwaXBlKQoreworCWlmIChwaXBlID09IElOVkFMSURfUElQRSB8fCBvbGRfc3RhdGUtPmNk Y2xrIDw9IG5ld19zdGF0ZS0+Y2RjbGspCisJCWludGVsX3NldF9jZGNsayhkZXZfcHJpdiwgbmV3 X3N0YXRlLCBwaXBlKTsKK30KKworLyoqCisgKiBpbnRlbF9zZXRfY2RjbGtfcG9zdF9wbGFuZV91 cGRhdGUgLSBQdXNoIHRoZSBDRENMSyBzdGF0ZSB0byB0aGUgaGFyZHdhcmUKKyAqIEBkZXZfcHJp djogaTkxNSBkZXZpY2UKKyAqIEBvbGRfc3RhdGU6IG9sZCBDRENMSyBzdGF0ZQorICogQG5ld19z dGF0ZTogbmV3IENEQ0xLIHN0YXRlCisgKiBAcGlwZTogcGlwZSB3aXRoIHdoaWNoIHRvIHN5bmNo cm9uaXplIHRoZSB1cGRhdGUKKyAqCisgKiBQcm9ncmFtIHRoZSBoYXJkd2FyZSBhZnRlciB1cGRh dGluZyB0aGUgSFcgcGxhbmUgc3RhdGUgYmFzZWQgb24gdGhlIHBhc3NlZAorICogaW4gQ0RDTEsg c3RhdGUsIGlmIG5lY2Vzc2FyeS4KKyAqLwordm9pZAoraW50ZWxfc2V0X2NkY2xrX3Bvc3RfcGxh bmVfdXBkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkgIGNvbnN0 IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqb2xkX3N0YXRlLAorCQkJCSAgY29uc3Qgc3RydWN0 IGludGVsX2NkY2xrX3N0YXRlICpuZXdfc3RhdGUsCisJCQkJICBlbnVtIHBpcGUgcGlwZSkKK3sK KwlpZiAocGlwZSAhPSBJTlZBTElEX1BJUEUgJiYgb2xkX3N0YXRlLT5jZGNsayA+IG5ld19zdGF0 ZS0+Y2RjbGspCisJCWludGVsX3NldF9jZGNsayhkZXZfcHJpdiwgbmV3X3N0YXRlLCBwaXBlKTsK K30KKwogc3RhdGljIGludCBpbnRlbF9waXhlbF9yYXRlX3RvX2NkY2xrKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkgICAgIGludCBwaXhlbF9yYXRlKQogewpkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCmluZGV4IGY3YjQ0NzczZTFlNy4uYmNlYzAzZjQzZDNh IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC0xMjk4Miw2ICsxMjk4Miw3 IEBAIHN0YXRpYyBpbnQgaW50ZWxfbW9kZXNldF9jaGVja3Moc3RydWN0IGRybV9hdG9taWNfc3Rh dGUgKnN0YXRlKQogCWludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MgPSBkZXZfcHJpdi0+YWN0aXZl X2NydGNzOwogCWludGVsX3N0YXRlLT5jZGNsay5sb2dpY2FsID0gZGV2X3ByaXYtPmNkY2xrLmxv Z2ljYWw7CiAJaW50ZWxfc3RhdGUtPmNkY2xrLmFjdHVhbCA9IGRldl9wcml2LT5jZGNsay5hY3R1 YWw7CisJaW50ZWxfc3RhdGUtPmNkY2xrLnBpcGUgPSBJTlZBTElEX1BJUEU7CiAKIAlmb3JfZWFj aF9vbGRuZXdfY3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0Yywgb2xkX2NydGNfc3RhdGUsIG5ld19j cnRjX3N0YXRlLCBpKSB7CiAJCWlmIChuZXdfY3J0Y19zdGF0ZS0+YWN0aXZlKQpAQCAtMTMwMDEs NiArMTMwMDIsOCBAQCBzdGF0aWMgaW50IGludGVsX21vZGVzZXRfY2hlY2tzKHN0cnVjdCBkcm1f YXRvbWljX3N0YXRlICpzdGF0ZSkKIAkgKiBhZGp1c3RlZF9tb2RlIGJpdHMgaW4gdGhlIGNydGMg ZGlyZWN0bHkuCiAJICovCiAJaWYgKGRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY2FsY19jZGNs aykgeworCQllbnVtIHBpcGUgcGlwZTsKKwogCQlyZXQgPSBkZXZfcHJpdi0+ZGlzcGxheS5tb2Rl c2V0X2NhbGNfY2RjbGsoc3RhdGUpOwogCQlpZiAocmV0IDwgMCkKIAkJCXJldHVybiByZXQ7CkBA IC0xMzAxNywxMiArMTMwMjAsMzYgQEAgc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0X2NoZWNrcyhz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCQkJcmV0dXJuIHJldDsKIAkJfQogCisJ CWlmIChpc19wb3dlcl9vZl8yKGludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MpKSB7CisJCQlzdHJ1 Y3QgZHJtX2NydGMgKmNydGM7CisJCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7 CisKKwkJCXBpcGUgPSBpbG9nMihpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzKTsKKwkJCWNydGMg PSAmaW50ZWxfZ2V0X2NydGNfZm9yX3BpcGUoZGV2X3ByaXYsIHBpcGUpLT5iYXNlOworCQkJY3J0 Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKKwkJ CWlmIChjcnRjX3N0YXRlICYmIG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpCisJCQkJcGlwZSA9 IElOVkFMSURfUElQRTsKKwkJfSBlbHNlIHsKKwkJCXBpcGUgPSBJTlZBTElEX1BJUEU7CisJCX0K KwogCQkvKiBBbGwgcGlwZXMgbXVzdCBiZSBzd2l0Y2hlZCBvZmYgd2hpbGUgd2UgY2hhbmdlIHRo ZSBjZGNsay4gKi8KLQkJaWYgKGludGVsX2NkY2xrX25lZWRzX21vZGVzZXQoJmRldl9wcml2LT5j ZGNsay5hY3R1YWwsCi0JCQkJCSAgICAgICZpbnRlbF9zdGF0ZS0+Y2RjbGsuYWN0dWFsKSkgewor CQlpZiAocGlwZSAhPSBJTlZBTElEX1BJUEUgJiYKKwkJICAgIGludGVsX2NkY2xrX25lZWRzX2Nk MnhfdXBkYXRlKGRldl9wcml2LAorCQkJCQkJICAmZGV2X3ByaXYtPmNkY2xrLmFjdHVhbCwKKwkJ CQkJCSAgJmludGVsX3N0YXRlLT5jZGNsay5hY3R1YWwpKSB7CisJCQlyZXQgPSBpbnRlbF9sb2Nr X2FsbF9waXBlcyhzdGF0ZSk7CisJCQlpZiAocmV0IDwgMCkKKwkJCQlyZXR1cm4gcmV0OworCisJ CQlpbnRlbF9zdGF0ZS0+Y2RjbGsucGlwZSA9IHBpcGU7CisJCX0gZWxzZSBpZiAoaW50ZWxfY2Rj bGtfbmVlZHNfbW9kZXNldCgmZGV2X3ByaXYtPmNkY2xrLmFjdHVhbCwKKwkJCQkJCSAgICAgJmlu dGVsX3N0YXRlLT5jZGNsay5hY3R1YWwpKSB7CiAJCQlyZXQgPSBpbnRlbF9tb2Rlc2V0X2FsbF9w aXBlcyhzdGF0ZSk7CiAJCQlpZiAocmV0IDwgMCkKIAkJCQlyZXR1cm4gcmV0OworCisJCQlpbnRl bF9zdGF0ZS0+Y2RjbGsucGlwZSA9IElOVkFMSURfUElQRTsKIAkJfQogCiAJCURSTV9ERUJVR19L TVMoIk5ldyBjZGNsayBjYWxjdWxhdGVkIHRvIGJlIGxvZ2ljYWwgJXUga0h6LCBhY3R1YWwgJXUg a0h6XG4iLApAQCAtMTM0MzEsNyArMTM0NTgsMTAgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWlj X2NvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKIAlpZiAoaW50ZWxf c3RhdGUtPm1vZGVzZXQpIHsKIAkJZHJtX2F0b21pY19oZWxwZXJfdXBkYXRlX2xlZ2FjeV9tb2Rl c2V0X3N0YXRlKHN0YXRlLT5kZXYsIHN0YXRlKTsKIAotCQlpbnRlbF9zZXRfY2RjbGsoZGV2X3By aXYsICZkZXZfcHJpdi0+Y2RjbGsuYWN0dWFsKTsKKwkJaW50ZWxfc2V0X2NkY2xrX3ByZV9wbGFu ZV91cGRhdGUoZGV2X3ByaXYsCisJCQkJCQkgJmludGVsX3N0YXRlLT5jZGNsay5hY3R1YWwsCisJ CQkJCQkgJmRldl9wcml2LT5jZGNsay5hY3R1YWwsCisJCQkJCQkgaW50ZWxfc3RhdGUtPmNkY2xr LnBpcGUpOwogCiAJCS8qCiAJCSAqIFNLTCB3b3JrYXJvdW5kOiBic3BlYyByZWNvbW1lbmRzIHdl IGRpc2FibGUgdGhlIFNBR1Ygd2hlbiB3ZQpAQCAtMTM0NjAsNiArMTM0OTAsMTIgQEAgc3RhdGlj IHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpz dGF0ZSkKIAkvKiBOb3cgZW5hYmxlIHRoZSBjbG9ja3MsIHBsYW5lLCBwaXBlLCBhbmQgY29ubmVj dG9ycyB0aGF0IHdlIHNldCB1cC4gKi8KIAlkZXZfcHJpdi0+ZGlzcGxheS51cGRhdGVfY3J0Y3Mo c3RhdGUpOwogCisJaWYgKGludGVsX3N0YXRlLT5tb2Rlc2V0KQorCQlpbnRlbF9zZXRfY2RjbGtf cG9zdF9wbGFuZV91cGRhdGUoZGV2X3ByaXYsCisJCQkJCQkgICZpbnRlbF9zdGF0ZS0+Y2RjbGsu YWN0dWFsLAorCQkJCQkJICAmZGV2X3ByaXYtPmNkY2xrLmFjdHVhbCwKKwkJCQkJCSAgaW50ZWxf c3RhdGUtPmNkY2xrLnBpcGUpOworCiAJLyogRklYTUU6IFdlIHNob3VsZCBjYWxsIGRybV9hdG9t aWNfaGVscGVyX2NvbW1pdF9od19kb25lKCkgaGVyZQogCSAqIGFscmVhZHksIGJ1dCBzdGlsbCBu ZWVkIHRoZSBzdGF0ZSBmb3IgdGhlIGRlbGF5ZWQgb3B0aW1pemF0aW9uLiBUbwogCSAqIGZpeCB0 aGlzOgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAppbmRleCA4NWRkNmE5ZDFlNDIuLmQyMmEwZTky ZTBkNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTU1OSw2ICs1NTksOCBAQCBzdHJ1 Y3QgaW50ZWxfYXRvbWljX3N0YXRlIHsKIAogCQlpbnQgZm9yY2VfbWluX2NkY2xrOwogCQlib29s IGZvcmNlX21pbl9jZGNsa19jaGFuZ2VkOworCQkvKiBwaXBlIHRvIHdoaWNoIGNkMnggdXBkYXRl IGlzIHN5bmNocm9uaXplZCAqLworCQllbnVtIHBpcGUgcGlwZTsKIAl9IGNkY2xrOwogCiAJYm9v bCBkcGxsX3NldCwgbW9kZXNldDsKQEAgLTE2OTQsMTMgKzE2OTYsMjQgQEAgdm9pZCBpbnRlbF9p bml0X2NkY2xrX2hvb2tzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB2b2lk IGludGVsX3VwZGF0ZV9tYXhfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KTsKIHZvaWQgaW50ZWxfdXBkYXRlX2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdik7CiB2b2lkIGludGVsX3VwZGF0ZV9yYXdjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KTsKK2Jvb2wgaW50ZWxfY2RjbGtfbmVlZHNfY2QyeF91cGRhdGUoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNs a19zdGF0ZSAqYSwKKwkJCQkgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmIpOwog Ym9vbCBpbnRlbF9jZGNsa19uZWVkc19tb2Rlc2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19z dGF0ZSAqYSwKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmIpOwog Ym9vbCBpbnRlbF9jZGNsa19jaGFuZ2VkKGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAq YSwKIAkJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmIpOwogdm9pZCBpbnRlbF9j ZGNsa19zd2FwX3N0YXRlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKTsKLXZvaWQg aW50ZWxfc2V0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJICAg ICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKTsKK3ZvaWQKK2lu dGVsX3NldF9jZGNsa19wcmVfcGxhbmVfdXBkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwKKwkJCQkgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpvbGRfc3RhdGUs CisJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqbmV3X3N0YXRlLAorCQkJCSBl bnVtIHBpcGUgcGlwZSk7Cit2b2lkCitpbnRlbF9zZXRfY2RjbGtfcG9zdF9wbGFuZV91cGRhdGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCSAgY29uc3Qgc3RydWN0IGlu dGVsX2NkY2xrX3N0YXRlICpvbGRfc3RhdGUsCisJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2Rj bGtfc3RhdGUgKm5ld19zdGF0ZSwKKwkJCQkgIGVudW0gcGlwZSBwaXBlKTsKIHZvaWQgaW50ZWxf ZHVtcF9jZGNsa19zdGF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0 YXRlLAogCQkJICAgIGNvbnN0IGNoYXIgKmNvbnRleHQpOwogCi0tIAoyLjEzLjIKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeA==