From mboxrd@z Thu Jan 1 00:00:00 1970 From: Imre Deak Subject: [PATCH v7 4/4] drm/i915: Skip modeset for cdclk changes if possible Date: Tue, 19 Mar 2019 20:36:18 +0200 Message-ID: <20190319183618.22162-5-imre.deak@intel.com> References: <20190319183618.22162-1-imre.deak@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 82B5889B3B for ; Tue, 19 Mar 2019 18:36:34 +0000 (UTC) In-Reply-To: <20190319183618.22162-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 c3QgcGxhbmUgdXBkYXRlIHN0ZXAuCnYzOgotIFVzZSBjb3JyZWN0IHZlcnNpb24gb2YgQ0RDTEsg c3RhdGUgYXMgb2xkIHN0YXRlLiAoVmlsbGUpCi0gUmVtb3ZlIHVudXNlZCBpbnRlbF9jZGNsa19j YW5fc2tpcF9tb2Rlc2V0KCkKClNpZ25lZC1vZmYtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUu c3lyamFsYUBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IEFiaGF5IEt1bWFyIDxhYmhh eS5rdW1hckBpbnRlbC5jb20+ClRlc3RlZC1ieTogQWJoYXkgS3VtYXIgPGFiaGF5Lmt1bWFyQGlu dGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogSW1yZSBEZWFrIDxpbXJlLmRlYWtAaW50ZWwuY29tPgot LS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICB8ICAgMyArLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaCAgICAgIHwgICAzICstCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9jZGNsay5jICAgfCAxNDIgKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyB8ICA0MSArKysrKysr KystCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgMTcgKysrKy0KIDUg ZmlsZXMgY2hhbmdlZCwgMTY5IGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCmluZGV4IDZiMTBjZWU0ZTc3Zi4uZDhmOTE1MjVjOTRjIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKQEAgLTI3Nyw3ICsyNzcsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfZGlz cGxheV9mdW5jcyB7CiAJdm9pZCAoKmdldF9jZGNsaykoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCQkJICBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKTsK IAl2b2lkICgqc2V0X2NkY2xrKShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0J CQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUpOworCQkJICBj b25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlLAorCQkJICBlbnVtIHBp cGUgcGlwZSk7CiAJaW50ICgqZ2V0X2ZpZm9fc2l6ZSkoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAogCQkJICAgICBlbnVtIGk5eHhfcGxhbmVfaWQgaTl4eF9wbGFuZSk7CiAJaW50 ICgqY29tcHV0ZV9waXBlX3dtKShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3N0YXRlKTsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X3JlZy5oCmluZGV4IDliNjljZWMyMWY3Yi4uMTJiODE3MGNlZDk2IDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfcmVnLmgKQEAgLTk1MjEsNyArOTUyMSw4IEBAIGVudW0gc2tsX3Bvd2Vy X2dhdGUgewogI2RlZmluZSAgQlhUX0NEQ0xLX0NEMlhfUElQRShwaXBlKQkoKHBpcGUpIDw8IDIw KQogI2RlZmluZSAgQ0RDTEtfRElWTVVYX0NEX09WRVJSSURFCSgxIDw8IDE5KQogI2RlZmluZSAg QlhUX0NEQ0xLX0NEMlhfUElQRV9OT05FCUJYVF9DRENMS19DRDJYX1BJUEUoMykKLSNkZWZpbmUg IElDTF9DRENMS19DRDJYX1BJUEVfTk9ORQkoNyA8PCAxOSkKKyNkZWZpbmUgIElDTF9DRENMS19D RDJYX1BJUEUocGlwZSkJKChwaXBlKSA8PCAxOSkKKyNkZWZpbmUgIElDTF9DRENMS19DRDJYX1BJ UEVfTk9ORQlJQ0xfQ0RDTEtfQ0QyWF9QSVBFKDcpCiAjZGVmaW5lICBCWFRfQ0RDTEtfU1NBX1BS RUNIQVJHRV9FTkFCTEUJKDEgPDwgMTYpCiAjZGVmaW5lICBDRENMS19GUkVRX0RFQ0lNQUxfTUFT SwkoMHg3ZmYpCiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xr LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jZGNsay5jCmluZGV4IDk3MDA3ZDc2Zjlh Ny4uMDY4ZGUyZDQzMWE4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9j ZGNsay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2NkY2xrLmMKQEAgLTUxNiw3 ICs1MTYsOCBAQCBzdGF0aWMgdm9pZCB2bHZfcHJvZ3JhbV9wZmlfY3JlZGl0cyhzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB9CiAKIHN0YXRpYyB2b2lkIHZsdl9zZXRfY2RjbGso c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJICBjb25zdCBzdHJ1Y3QgaW50 ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKQorCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2Rj bGtfc3RhdGUgKmNkY2xrX3N0YXRlLAorCQkJICBlbnVtIHBpcGUgcGlwZSkKIHsKIAlpbnQgY2Rj bGsgPSBjZGNsa19zdGF0ZS0+Y2RjbGs7CiAJdTMyIHZhbCwgY21kID0gY2RjbGtfc3RhdGUtPnZv bHRhZ2VfbGV2ZWw7CkBAIC01OTgsNyArNTk5LDggQEAgc3RhdGljIHZvaWQgdmx2X3NldF9jZGNs ayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiB9CiAKIHN0YXRpYyB2b2lkIGNo dl9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJICBjb25z dCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKQorCQkJICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlLAorCQkJICBlbnVtIHBpcGUgcGlwZSkK IHsKIAlpbnQgY2RjbGsgPSBjZGNsa19zdGF0ZS0+Y2RjbGs7CiAJdTMyIHZhbCwgY21kID0gY2Rj bGtfc3RhdGUtPnZvbHRhZ2VfbGV2ZWw7CkBAIC02OTcsNyArNjk5LDggQEAgc3RhdGljIHZvaWQg YmR3X2dldF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiB9CiAKIHN0 YXRpYyB2b2lkIGJkd19zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAotCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKQorCQkJ ICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlLAorCQkJICBlbnVt IHBpcGUgcGlwZSkKIHsKIAlpbnQgY2RjbGsgPSBjZGNsa19zdGF0ZS0+Y2RjbGs7CiAJdTMyIHZh bDsKQEAgLTk4Nyw3ICs5OTAsOCBAQCBzdGF0aWMgdm9pZCBza2xfZHBsbDBfZGlzYWJsZShzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB9CiAKIHN0YXRpYyB2b2lkIHNrbF9zZXRf Y2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJICBjb25zdCBzdHJ1 Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKQorCQkJICBjb25zdCBzdHJ1Y3QgaW50 ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlLAorCQkJICBlbnVtIHBpcGUgcGlwZSkKIHsKIAlp bnQgY2RjbGsgPSBjZGNsa19zdGF0ZS0+Y2RjbGs7CiAJaW50IHZjbyA9IGNkY2xrX3N0YXRlLT52 Y287CkBAIC0xMTU4LDcgKzExNjIsNyBAQCB2b2lkIHNrbF9pbml0X2NkY2xrKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAljZGNsa19zdGF0ZS5jZGNsayA9IHNrbF9jYWxjX2Nk Y2xrKDAsIGNkY2xrX3N0YXRlLnZjbyk7CiAJY2RjbGtfc3RhdGUudm9sdGFnZV9sZXZlbCA9IHNr bF9jYWxjX3ZvbHRhZ2VfbGV2ZWwoY2RjbGtfc3RhdGUuY2RjbGspOwogCi0Jc2tsX3NldF9jZGNs ayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRlKTsKKwlza2xfc2V0X2NkY2xrKGRldl9wcml2LCAmY2Rj bGtfc3RhdGUsIElOVkFMSURfUElQRSk7CiB9CiAKIC8qKgpAQCAtMTE3Niw3ICsxMTgwLDcgQEAg dm9pZCBza2xfdW5pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAljZGNsa19zdGF0ZS52Y28gPSAwOwogCWNkY2xrX3N0YXRlLnZvbHRhZ2VfbGV2ZWwgPSBza2xf Y2FsY192b2x0YWdlX2xldmVsKGNkY2xrX3N0YXRlLmNkY2xrKTsKIAotCXNrbF9zZXRfY2RjbGso ZGV2X3ByaXYsICZjZGNsa19zdGF0ZSk7CisJc2tsX3NldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xr X3N0YXRlLCBJTlZBTElEX1BJUEUpOwogfQogCiBzdGF0aWMgaW50IGJ4dF9jYWxjX2NkY2xrKGlu dCBtaW5fY2RjbGspCkBAIC0xMzU1LDcgKzEzNTksOCBAQCBzdGF0aWMgdm9pZCBieHRfZGVfcGxs X2VuYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2Y28pCiB9CiAK IHN0YXRpYyB2b2lkIGJ4dF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LAotCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKQor CQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlLAorCQkJICBl bnVtIHBpcGUgcGlwZSkKIHsKIAlpbnQgY2RjbGsgPSBjZGNsa19zdGF0ZS0+Y2RjbGs7CiAJaW50 IHZjbyA9IGNkY2xrX3N0YXRlLT52Y287CkBAIC0xNDA4LDExICsxNDEzLDEwIEBAIHN0YXRpYyB2 b2lkIGJ4dF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQli eHRfZGVfcGxsX2VuYWJsZShkZXZfcHJpdiwgdmNvKTsKIAogCXZhbCA9IGRpdmlkZXIgfCBza2xf Y2RjbGtfZGVjaW1hbChjZGNsayk7Ci0JLyoKLQkgKiBGSVhNRSBpZiBvbmx5IHRoZSBjZDJ4IGRp dmlkZXIgbmVlZHMgY2hhbmdpbmcsIGl0IGNvdWxkIGJlIGRvbmUKLQkgKiB3aXRob3V0IHNodXR0 aW5nIG9mZiB0aGUgcGlwZSAoaWYgb25seSBvbmUgcGlwZSBpcyBhY3RpdmUpLgotCSAqLwotCXZh bCB8PSBCWFRfQ0RDTEtfQ0QyWF9QSVBFX05PTkU7CisJaWYgKHBpcGUgPT0gSU5WQUxJRF9QSVBF KQorCQl2YWwgfD0gQlhUX0NEQ0xLX0NEMlhfUElQRV9OT05FOworCWVsc2UKKwkJdmFsIHw9IEJY VF9DRENMS19DRDJYX1BJUEUocGlwZSk7CiAJLyoKIAkgKiBEaXNhYmxlIFNTQSBQcmVjaGFyZ2Ug d2hlbiBDRCBjbG9jayBmcmVxdWVuY3kgPCA1MDAgTUh6LAogCSAqIGVuYWJsZSBvdGhlcndpc2Uu CkBAIC0xNDIxLDYgKzE0MjUsOSBAQCBzdGF0aWMgdm9pZCBieHRfc2V0X2NkY2xrKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJdmFsIHw9IEJYVF9DRENMS19TU0FfUFJFQ0hB UkdFX0VOQUJMRTsKIAlJOTE1X1dSSVRFKENEQ0xLX0NUTCwgdmFsKTsKIAorCWlmIChwaXBlICE9 IElOVkFMSURfUElQRSkKKwkJaW50ZWxfd2FpdF9mb3JfdmJsYW5rKGRldl9wcml2LCBwaXBlKTsK KwogCW11dGV4X2xvY2soJmRldl9wcml2LT5wY3VfbG9jayk7CiAJLyoKIAkgKiBUaGUgdGltZW91 dCBpc24ndCBzcGVjaWZpZWQsIHRoZSAybXMgdXNlZCBoZXJlIGlzIGJhc2VkIG9uCkBAIC0xNTI1 LDcgKzE1MzIsNyBAQCB2b2lkIGJ4dF9pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdikKIAl9CiAJY2RjbGtfc3RhdGUudm9sdGFnZV9sZXZlbCA9IGJ4dF9jYWxjX3Zv bHRhZ2VfbGV2ZWwoY2RjbGtfc3RhdGUuY2RjbGspOwogCi0JYnh0X3NldF9jZGNsayhkZXZfcHJp diwgJmNkY2xrX3N0YXRlKTsKKwlieHRfc2V0X2NkY2xrKGRldl9wcml2LCAmY2RjbGtfc3RhdGUs IElOVkFMSURfUElQRSk7CiB9CiAKIC8qKgpAQCAtMTU0Myw3ICsxNTUwLDcgQEAgdm9pZCBieHRf dW5pbml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAljZGNsa19z dGF0ZS52Y28gPSAwOwogCWNkY2xrX3N0YXRlLnZvbHRhZ2VfbGV2ZWwgPSBieHRfY2FsY192b2x0 YWdlX2xldmVsKGNkY2xrX3N0YXRlLmNkY2xrKTsKIAotCWJ4dF9zZXRfY2RjbGsoZGV2X3ByaXYs ICZjZGNsa19zdGF0ZSk7CisJYnh0X3NldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRlLCBJ TlZBTElEX1BJUEUpOwogfQogCiBzdGF0aWMgaW50IGNubF9jYWxjX2NkY2xrKGludCBtaW5fY2Rj bGspCkBAIC0xNjYzLDcgKzE2NzAsOCBAQCBzdGF0aWMgdm9pZCBjbmxfY2RjbGtfcGxsX2VuYWJs ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGludCB2Y28pCiB9CiAKIHN0YXRp YyB2b2lkIGNubF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAot CQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKQorCQkJICBj b25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlLAorCQkJICBlbnVtIHBp cGUgcGlwZSkKIHsKIAlpbnQgY2RjbGsgPSBjZGNsa19zdGF0ZS0+Y2RjbGs7CiAJaW50IHZjbyA9 IGNkY2xrX3N0YXRlLT52Y287CkBAIC0xNzA0LDEzICsxNzEyLDE1IEBAIHN0YXRpYyB2b2lkIGNu bF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQljbmxfY2Rj bGtfcGxsX2VuYWJsZShkZXZfcHJpdiwgdmNvKTsKIAogCXZhbCA9IGRpdmlkZXIgfCBza2xfY2Rj bGtfZGVjaW1hbChjZGNsayk7Ci0JLyoKLQkgKiBGSVhNRSBpZiBvbmx5IHRoZSBjZDJ4IGRpdmlk ZXIgbmVlZHMgY2hhbmdpbmcsIGl0IGNvdWxkIGJlIGRvbmUKLQkgKiB3aXRob3V0IHNodXR0aW5n IG9mZiB0aGUgcGlwZSAoaWYgb25seSBvbmUgcGlwZSBpcyBhY3RpdmUpLgotCSAqLwotCXZhbCB8 PSBCWFRfQ0RDTEtfQ0QyWF9QSVBFX05PTkU7CisJaWYgKHBpcGUgPT0gSU5WQUxJRF9QSVBFKQor CQl2YWwgfD0gQlhUX0NEQ0xLX0NEMlhfUElQRV9OT05FOworCWVsc2UKKwkJdmFsIHw9IEJYVF9D RENMS19DRDJYX1BJUEUocGlwZSk7CiAJSTkxNV9XUklURShDRENMS19DVEwsIHZhbCk7CiAKKwlp ZiAocGlwZSAhPSBJTlZBTElEX1BJUEUpCisJCWludGVsX3dhaXRfZm9yX3ZibGFuayhkZXZfcHJp diwgcGlwZSk7CisKIAkvKiBpbmZvcm0gUENVIG9mIHRoZSBjaGFuZ2UgKi8KIAltdXRleF9sb2Nr KCZkZXZfcHJpdi0+cGN1X2xvY2spOwogCXNhbmR5YnJpZGdlX3Bjb2RlX3dyaXRlKGRldl9wcml2 LCBTS0xfUENPREVfQ0RDTEtfQ09OVFJPTCwKQEAgLTE4NDcsMTAgKzE4NTcsMTIgQEAgc3RhdGlj IGludCBpY2xfY2FsY19jZGNsa19wbGxfdmNvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwgaW50IGNkY2xrKQogfQogCiBzdGF0aWMgdm9pZCBpY2xfc2V0X2NkY2xrKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NkY2xr X3N0YXRlICpjZGNsa19zdGF0ZSkKKwkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRl ICpjZGNsa19zdGF0ZSwKKwkJCSAgZW51bSBwaXBlIHBpcGUpCiB7CiAJdW5zaWduZWQgaW50IGNk Y2xrID0gY2RjbGtfc3RhdGUtPmNkY2xrOwogCXVuc2lnbmVkIGludCB2Y28gPSBjZGNsa19zdGF0 ZS0+dmNvOworCXUzMiB2YWw7CiAJaW50IHJldDsKIAogCW11dGV4X2xvY2soJmRldl9wcml2LT5w Y3VfbG9jayk7CkBAIC0xODcyLDggKzE4ODQsMTUgQEAgc3RhdGljIHZvaWQgaWNsX3NldF9jZGNs ayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJaWYgKGRldl9wcml2LT5jZGNs ay5ody52Y28gIT0gdmNvKQogCQljbmxfY2RjbGtfcGxsX2VuYWJsZShkZXZfcHJpdiwgdmNvKTsK IAotCUk5MTVfV1JJVEUoQ0RDTEtfQ1RMLCBJQ0xfQ0RDTEtfQ0QyWF9QSVBFX05PTkUgfAotCQkJ ICAgICAgc2tsX2NkY2xrX2RlY2ltYWwoY2RjbGspKTsKKwl2YWwgPSBza2xfY2RjbGtfZGVjaW1h bChjZGNsayk7CisJaWYgKHBpcGUgPT0gSU5WQUxJRF9QSVBFKQorCQl2YWwgfD0gSUNMX0NEQ0xL X0NEMlhfUElQRV9OT05FOworCWVsc2UKKwkJdmFsIHw9IElDTF9DRENMS19DRDJYX1BJUEUocGlw ZSk7CisJSTkxNV9XUklURShDRENMS19DVEwsIHZhbCk7CisKKwlpZiAocGlwZSAhPSBJTlZBTElE X1BJUEUpCisJCWludGVsX3dhaXRfZm9yX3ZibGFuayhkZXZfcHJpdiwgcGlwZSk7CiAKIAltdXRl eF9sb2NrKCZkZXZfcHJpdi0+cGN1X2xvY2spOwogCXNhbmR5YnJpZGdlX3Bjb2RlX3dyaXRlKGRl dl9wcml2LCBTS0xfUENPREVfQ0RDTEtfQ09OVFJPTCwKQEAgLTIwMDIsNyArMjAyMSw3IEBAIHZv aWQgaWNsX2luaXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCXNh bml0aXplZF9zdGF0ZS52b2x0YWdlX2xldmVsID0KIAkJCQlpY2xfY2FsY192b2x0YWdlX2xldmVs KHNhbml0aXplZF9zdGF0ZS5jZGNsayk7CiAKLQlpY2xfc2V0X2NkY2xrKGRldl9wcml2LCAmc2Fu aXRpemVkX3N0YXRlKTsKKwlpY2xfc2V0X2NkY2xrKGRldl9wcml2LCAmc2FuaXRpemVkX3N0YXRl LCBJTlZBTElEX1BJUEUpOwogfQogCiAvKioKQEAgLTIwMjAsNyArMjAzOSw3IEBAIHZvaWQgaWNs X3VuaW5pdF9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJY2RjbGtf c3RhdGUudmNvID0gMDsKIAljZGNsa19zdGF0ZS52b2x0YWdlX2xldmVsID0gaWNsX2NhbGNfdm9s dGFnZV9sZXZlbChjZGNsa19zdGF0ZS5jZGNsayk7CiAKLQlpY2xfc2V0X2NkY2xrKGRldl9wcml2 LCAmY2RjbGtfc3RhdGUpOworCWljbF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSwg SU5WQUxJRF9QSVBFKTsKIH0KIAogLyoqCkBAIC0yMDQ4LDcgKzIwNjcsNyBAQCB2b2lkIGNubF9p bml0X2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAljZGNsa19zdGF0 ZS52Y28gPSBjbmxfY2RjbGtfcGxsX3ZjbyhkZXZfcHJpdiwgY2RjbGtfc3RhdGUuY2RjbGspOwog CWNkY2xrX3N0YXRlLnZvbHRhZ2VfbGV2ZWwgPSBjbmxfY2FsY192b2x0YWdlX2xldmVsKGNkY2xr X3N0YXRlLmNkY2xrKTsKIAotCWNubF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSk7 CisJY25sX3NldF9jZGNsayhkZXZfcHJpdiwgJmNkY2xrX3N0YXRlLCBJTlZBTElEX1BJUEUpOwog fQogCiAvKioKQEAgLTIwNjYsNyArMjA4NSw3IEBAIHZvaWQgY25sX3VuaW5pdF9jZGNsayhzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJY2RjbGtfc3RhdGUudmNvID0gMDsKIAlj ZGNsa19zdGF0ZS52b2x0YWdlX2xldmVsID0gY25sX2NhbGNfdm9sdGFnZV9sZXZlbChjZGNsa19z dGF0ZS5jZGNsayk7CiAKLQljbmxfc2V0X2NkY2xrKGRldl9wcml2LCAmY2RjbGtfc3RhdGUpOwor CWNubF9zZXRfY2RjbGsoZGV2X3ByaXYsICZjZGNsa19zdGF0ZSwgSU5WQUxJRF9QSVBFKTsKIH0K IAogLyoqCkBAIC0yMDg2LDYgKzIxMDUsMjcgQEAgYm9vbCBpbnRlbF9jZGNsa19uZWVkc19tb2Rl c2V0KGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqYSwKIH0KIAogLyoqCisgKiBpbnRl bF9jZGNsa19uZWVkc19jZDJ4X3VwZGF0ZSAtIERldGVybWluZSBpZiB0d28gQ0RDTEsgc3RhdGVz IHJlcXVpcmUgYSBjZDJ4IGRpdmlkZXIgdXBkYXRlCisgKiBAYTogZmlyc3QgQ0RDTEsgc3RhdGUK KyAqIEBiOiBzZWNvbmQgQ0RDTEsgc3RhdGUKKyAqCisgKiBSZXR1cm5zOgorICogVHJ1ZSBpZiB0 aGUgQ0RDTEsgc3RhdGVzIHJlcXVpcmUganVzdCBhIGNkMnggZGl2aWRlciB1cGRhdGUsIGZhbHNl IGlmIG5vdC4KKyAqLworYm9vbCBpbnRlbF9jZGNsa19uZWVkc19jZDJ4X3VwZGF0ZShzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2Nk Y2xrX3N0YXRlICphLAorCQkJCSAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqYikK K3sKKwkvKiBPbGRlciBodyBkb2Vzbid0IGhhdmUgdGhlIGNhcGFiaWxpdHkgKi8KKwlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA8IDEwICYmICFJU19HRU45X0xQKGRldl9wcml2KSkKKwkJcmV0dXJu IGZhbHNlOworCisJcmV0dXJuIGEtPmNkY2xrICE9IGItPmNkY2xrICYmCisJCWEtPnZjbyA9PSBi LT52Y28gJiYKKwkJYS0+cmVmID09IGItPnJlZjsKK30KKworLyoqCiAgKiBpbnRlbF9jZGNsa19j aGFuZ2VkIC0gRGV0ZXJtaW5lIGlmIHR3byBDRENMSyBzdGF0ZXMgYXJlIGRpZmZlcmVudAogICog QGE6IGZpcnN0IENEQ0xLIHN0YXRlCiAgKiBAYjogc2Vjb25kIENEQ0xLIHN0YXRlCkBAIC0yMTM5 LDEyICsyMTc5LDE0IEBAIHZvaWQgaW50ZWxfZHVtcF9jZGNsa19zdGF0ZShjb25zdCBzdHJ1Y3Qg aW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlLAogICogaW50ZWxfc2V0X2NkY2xrIC0gUHVz aCB0aGUgQ0RDTEsgc3RhdGUgdG8gdGhlIGhhcmR3YXJlCiAgKiBAZGV2X3ByaXY6IGk5MTUgZGV2 aWNlCiAgKiBAY2RjbGtfc3RhdGU6IG5ldyBDRENMSyBzdGF0ZQorICogQHBpcGU6IHBpcGUgd2l0 aCB3aGljaCB0byBzeW5jaHJvbml6ZSB0aGUgdXBkYXRlCiAgKgogICogUHJvZ3JhbSB0aGUgaGFy ZHdhcmUgYmFzZWQgb24gdGhlIHBhc3NlZCBpbiBDRENMSyBzdGF0ZSwKICAqIGlmIG5lY2Vzc2Fy eS4KICAqLwotdm9pZCBpbnRlbF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAotCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3Rh dGUpCitzdGF0aWMgdm9pZCBpbnRlbF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2LAorCQkJICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtf c3RhdGUsCisJCQkgICAgZW51bSBwaXBlIHBpcGUpCiB7CiAJaWYgKCFpbnRlbF9jZGNsa19jaGFu Z2VkKCZkZXZfcHJpdi0+Y2RjbGsuaHcsIGNkY2xrX3N0YXRlKSkKIAkJcmV0dXJuOwpAQCAtMjE1 NCw3ICsyMTk2LDcgQEAgdm9pZCBpbnRlbF9zZXRfY2RjbGsoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAogCiAJaW50ZWxfZHVtcF9jZGNsa19zdGF0ZShjZGNsa19zdGF0ZSwgIkNo YW5naW5nIENEQ0xLIHRvIik7CiAKLQlkZXZfcHJpdi0+ZGlzcGxheS5zZXRfY2RjbGsoZGV2X3By aXYsIGNkY2xrX3N0YXRlKTsKKwlkZXZfcHJpdi0+ZGlzcGxheS5zZXRfY2RjbGsoZGV2X3ByaXYs IGNkY2xrX3N0YXRlLCBwaXBlKTsKIAogCWlmIChXQVJOKGludGVsX2NkY2xrX2NoYW5nZWQoJmRl dl9wcml2LT5jZGNsay5odywgY2RjbGtfc3RhdGUpLAogCQkgImNkY2xrIHN0YXRlIGRvZXNuJ3Qg bWF0Y2ghXG4iKSkgewpAQCAtMjE2Myw2ICsyMjA1LDQ2IEBAIHZvaWQgaW50ZWxfc2V0X2NkY2xr KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAl9CiB9CiAKKy8qKgorICogaW50 ZWxfc2V0X2NkY2xrX3ByZV9wbGFuZV91cGRhdGUgLSBQdXNoIHRoZSBDRENMSyBzdGF0ZSB0byB0 aGUgaGFyZHdhcmUKKyAqIEBkZXZfcHJpdjogaTkxNSBkZXZpY2UKKyAqIEBvbGRfc3RhdGU6IG9s ZCBDRENMSyBzdGF0ZQorICogQG5ld19zdGF0ZTogbmV3IENEQ0xLIHN0YXRlCisgKiBAcGlwZTog cGlwZSB3aXRoIHdoaWNoIHRvIHN5bmNocm9uaXplIHRoZSB1cGRhdGUKKyAqCisgKiBQcm9ncmFt IHRoZSBoYXJkd2FyZSBiZWZvcmUgdXBkYXRpbmcgdGhlIEhXIHBsYW5lIHN0YXRlIGJhc2VkIG9u IHRoZSBwYXNzZWQKKyAqIGluIENEQ0xLIHN0YXRlLCBpZiBuZWNlc3NhcnkuCisgKi8KK3ZvaWQK K2ludGVsX3NldF9jZGNsa19wcmVfcGxhbmVfdXBkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKKwkJCQkgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpvbGRfc3Rh dGUsCisJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqbmV3X3N0YXRlLAorCQkJ CSBlbnVtIHBpcGUgcGlwZSkKK3sKKwlpZiAocGlwZSA9PSBJTlZBTElEX1BJUEUgfHwgb2xkX3N0 YXRlLT5jZGNsayA8PSBuZXdfc3RhdGUtPmNkY2xrKQorCQlpbnRlbF9zZXRfY2RjbGsoZGV2X3By aXYsIG5ld19zdGF0ZSwgcGlwZSk7Cit9CisKKy8qKgorICogaW50ZWxfc2V0X2NkY2xrX3Bvc3Rf cGxhbmVfdXBkYXRlIC0gUHVzaCB0aGUgQ0RDTEsgc3RhdGUgdG8gdGhlIGhhcmR3YXJlCisgKiBA ZGV2X3ByaXY6IGk5MTUgZGV2aWNlCisgKiBAb2xkX3N0YXRlOiBvbGQgQ0RDTEsgc3RhdGUKKyAq IEBuZXdfc3RhdGU6IG5ldyBDRENMSyBzdGF0ZQorICogQHBpcGU6IHBpcGUgd2l0aCB3aGljaCB0 byBzeW5jaHJvbml6ZSB0aGUgdXBkYXRlCisgKgorICogUHJvZ3JhbSB0aGUgaGFyZHdhcmUgYWZ0 ZXIgdXBkYXRpbmcgdGhlIEhXIHBsYW5lIHN0YXRlIGJhc2VkIG9uIHRoZSBwYXNzZWQKKyAqIGlu IENEQ0xLIHN0YXRlLCBpZiBuZWNlc3NhcnkuCisgKi8KK3ZvaWQKK2ludGVsX3NldF9jZGNsa19w b3N0X3BsYW5lX3VwZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJ ICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKm9sZF9zdGF0ZSwKKwkJCQkgIGNvbnN0 IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqbmV3X3N0YXRlLAorCQkJCSAgZW51bSBwaXBlIHBp cGUpCit7CisJaWYgKHBpcGUgIT0gSU5WQUxJRF9QSVBFICYmIG9sZF9zdGF0ZS0+Y2RjbGsgPiBu ZXdfc3RhdGUtPmNkY2xrKQorCQlpbnRlbF9zZXRfY2RjbGsoZGV2X3ByaXYsIG5ld19zdGF0ZSwg cGlwZSk7Cit9CisKIHN0YXRpYyBpbnQgaW50ZWxfcGl4ZWxfcmF0ZV90b19jZGNsayhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICAgICBpbnQgcGl4ZWxfcmF0ZSkKIHsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwppbmRleCBmN2I0NDc3M2UxZTcuLmQyNDk1 OWQ3NjMxNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTI5ODIsNiAr MTI5ODIsNyBAQCBzdGF0aWMgaW50IGludGVsX21vZGVzZXRfY2hlY2tzKHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpzdGF0ZSkKIAlpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzID0gZGV2X3ByaXYt PmFjdGl2ZV9jcnRjczsKIAlpbnRlbF9zdGF0ZS0+Y2RjbGsubG9naWNhbCA9IGRldl9wcml2LT5j ZGNsay5sb2dpY2FsOwogCWludGVsX3N0YXRlLT5jZGNsay5hY3R1YWwgPSBkZXZfcHJpdi0+Y2Rj bGsuYWN0dWFsOworCWludGVsX3N0YXRlLT5jZGNsay5waXBlID0gSU5WQUxJRF9QSVBFOwogCiAJ Zm9yX2VhY2hfb2xkbmV3X2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG9sZF9jcnRjX3N0YXRl LCBuZXdfY3J0Y19zdGF0ZSwgaSkgewogCQlpZiAobmV3X2NydGNfc3RhdGUtPmFjdGl2ZSkKQEAg LTEzMDAxLDYgKzEzMDAyLDggQEAgc3RhdGljIGludCBpbnRlbF9tb2Rlc2V0X2NoZWNrcyhzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJICogYWRqdXN0ZWRfbW9kZSBiaXRzIGluIHRo ZSBjcnRjIGRpcmVjdGx5LgogCSAqLwogCWlmIChkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2Nh bGNfY2RjbGspIHsKKwkJZW51bSBwaXBlIHBpcGU7CisKIAkJcmV0ID0gZGV2X3ByaXYtPmRpc3Bs YXkubW9kZXNldF9jYWxjX2NkY2xrKHN0YXRlKTsKIAkJaWYgKHJldCA8IDApCiAJCQlyZXR1cm4g cmV0OwpAQCAtMTMwMTcsMTIgKzEzMDIwLDM2IEBAIHN0YXRpYyBpbnQgaW50ZWxfbW9kZXNldF9j aGVja3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQkJCXJldHVybiByZXQ7CiAJ CX0KIAorCQlpZiAoaXNfcG93ZXJfb2ZfMihpbnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzKSkgewor CQkJc3RydWN0IGRybV9jcnRjICpjcnRjOworCQkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRj X3N0YXRlOworCisJCQlwaXBlID0gaWxvZzIoaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjcyk7CisJ CQljcnRjID0gJmludGVsX2dldF9jcnRjX2Zvcl9waXBlKGRldl9wcml2LCBwaXBlKS0+YmFzZTsK KwkJCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0 Yyk7CisJCQlpZiAoY3J0Y19zdGF0ZSAmJiBuZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUpKQorCQkJ CXBpcGUgPSBJTlZBTElEX1BJUEU7CisJCX0gZWxzZSB7CisJCQlwaXBlID0gSU5WQUxJRF9QSVBF OworCQl9CisKIAkJLyogQWxsIHBpcGVzIG11c3QgYmUgc3dpdGNoZWQgb2ZmIHdoaWxlIHdlIGNo YW5nZSB0aGUgY2RjbGsuICovCi0JCWlmIChpbnRlbF9jZGNsa19uZWVkc19tb2Rlc2V0KCZkZXZf cHJpdi0+Y2RjbGsuYWN0dWFsLAotCQkJCQkgICAgICAmaW50ZWxfc3RhdGUtPmNkY2xrLmFjdHVh bCkpIHsKKwkJaWYgKHBpcGUgIT0gSU5WQUxJRF9QSVBFICYmCisJCSAgICBpbnRlbF9jZGNsa19u ZWVkc19jZDJ4X3VwZGF0ZShkZXZfcHJpdiwKKwkJCQkJCSAgJmRldl9wcml2LT5jZGNsay5hY3R1 YWwsCisJCQkJCQkgICZpbnRlbF9zdGF0ZS0+Y2RjbGsuYWN0dWFsKSkgeworCQkJcmV0ID0gaW50 ZWxfbG9ja19hbGxfcGlwZXMoc3RhdGUpOworCQkJaWYgKHJldCA8IDApCisJCQkJcmV0dXJuIHJl dDsKKworCQkJaW50ZWxfc3RhdGUtPmNkY2xrLnBpcGUgPSBwaXBlOworCQl9IGVsc2UgaWYgKGlu dGVsX2NkY2xrX25lZWRzX21vZGVzZXQoJmRldl9wcml2LT5jZGNsay5hY3R1YWwsCisJCQkJCQkg ICAgICZpbnRlbF9zdGF0ZS0+Y2RjbGsuYWN0dWFsKSkgewogCQkJcmV0ID0gaW50ZWxfbW9kZXNl dF9hbGxfcGlwZXMoc3RhdGUpOwogCQkJaWYgKHJldCA8IDApCiAJCQkJcmV0dXJuIHJldDsKKwor CQkJaW50ZWxfc3RhdGUtPmNkY2xrLnBpcGUgPSBJTlZBTElEX1BJUEU7CiAJCX0KIAogCQlEUk1f REVCVUdfS01TKCJOZXcgY2RjbGsgY2FsY3VsYXRlZCB0byBiZSBsb2dpY2FsICV1IGtIeiwgYWN0 dWFsICV1IGtIelxuIiwKQEAgLTEzNDMxLDcgKzEzNDU4LDEwIEBAIHN0YXRpYyB2b2lkIGludGVs X2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJaWYg KGludGVsX3N0YXRlLT5tb2Rlc2V0KSB7CiAJCWRybV9hdG9taWNfaGVscGVyX3VwZGF0ZV9sZWdh Y3lfbW9kZXNldF9zdGF0ZShzdGF0ZS0+ZGV2LCBzdGF0ZSk7CiAKLQkJaW50ZWxfc2V0X2NkY2xr KGRldl9wcml2LCAmZGV2X3ByaXYtPmNkY2xrLmFjdHVhbCk7CisJCWludGVsX3NldF9jZGNsa19w cmVfcGxhbmVfdXBkYXRlKGRldl9wcml2LAorCQkJCQkJICZpbnRlbF9zdGF0ZS0+Y2RjbGsuYWN0 dWFsLAorCQkJCQkJICZkZXZfcHJpdi0+Y2RjbGsuYWN0dWFsLAorCQkJCQkJIGludGVsX3N0YXRl LT5jZGNsay5waXBlKTsKIAogCQkvKgogCQkgKiBTS0wgd29ya2Fyb3VuZDogYnNwZWMgcmVjb21t ZW5kcyB3ZSBkaXNhYmxlIHRoZSBTQUdWIHdoZW4gd2UKQEAgLTEzNDYwLDYgKzEzNDkwLDExIEBA IHN0YXRpYyB2b2lkIGludGVsX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgZHJtX2F0b21pY19z dGF0ZSAqc3RhdGUpCiAJLyogTm93IGVuYWJsZSB0aGUgY2xvY2tzLCBwbGFuZSwgcGlwZSwgYW5k IGNvbm5lY3RvcnMgdGhhdCB3ZSBzZXQgdXAuICovCiAJZGV2X3ByaXYtPmRpc3BsYXkudXBkYXRl X2NydGNzKHN0YXRlKTsKIAorCWludGVsX3NldF9jZGNsa19wb3N0X3BsYW5lX3VwZGF0ZShkZXZf cHJpdiwKKwkJCQkJICAmaW50ZWxfc3RhdGUtPmNkY2xrLmFjdHVhbCwKKwkJCQkJICAmZGV2X3By aXYtPmNkY2xrLmFjdHVhbCwKKwkJCQkJICBpbnRlbF9zdGF0ZS0+Y2RjbGsucGlwZSk7CisKIAkv KiBGSVhNRTogV2Ugc2hvdWxkIGNhbGwgZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2h3X2RvbmUo KSBoZXJlCiAJICogYWxyZWFkeSwgYnV0IHN0aWxsIG5lZWQgdGhlIHN0YXRlIGZvciB0aGUgZGVs YXllZCBvcHRpbWl6YXRpb24uIFRvCiAJICogZml4IHRoaXM6CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Ry di5oCmluZGV4IDg1ZGQ2YTlkMWU0Mi4uZDIyYTBlOTJlMGQ0IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kcnYuaApAQCAtNTU5LDYgKzU1OSw4IEBAIHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgewog CiAJCWludCBmb3JjZV9taW5fY2RjbGs7CiAJCWJvb2wgZm9yY2VfbWluX2NkY2xrX2NoYW5nZWQ7 CisJCS8qIHBpcGUgdG8gd2hpY2ggY2QyeCB1cGRhdGUgaXMgc3luY2hyb25pemVkICovCisJCWVu dW0gcGlwZSBwaXBlOwogCX0gY2RjbGs7CiAKIAlib29sIGRwbGxfc2V0LCBtb2Rlc2V0OwpAQCAt MTY5NCwxMyArMTY5NiwyNCBAQCB2b2lkIGludGVsX2luaXRfY2RjbGtfaG9va3Moc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaW50ZWxfdXBkYXRlX21heF9jZGNsayhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBpbnRlbF91cGRhdGVfY2Rj bGsoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaW50ZWxfdXBkYXRl X3Jhd2NsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOworYm9vbCBpbnRlbF9j ZGNsa19uZWVkc19jZDJ4X3VwZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs CisJCQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICphLAorCQkJCSAgIGNvbnN0 IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqYik7CiBib29sIGludGVsX2NkY2xrX25lZWRzX21v ZGVzZXQoY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICphLAogCQkJICAgICAgIGNvbnN0 IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqYik7CiBib29sIGludGVsX2NkY2xrX2NoYW5nZWQo Y29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICphLAogCQkJIGNvbnN0IHN0cnVjdCBpbnRl bF9jZGNsa19zdGF0ZSAqYik7CiB2b2lkIGludGVsX2NkY2xrX3N3YXBfc3RhdGUoc3RydWN0IGlu dGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpOwotdm9pZCBpbnRlbF9zZXRfY2RjbGsoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNs a19zdGF0ZSAqY2RjbGtfc3RhdGUpOwordm9pZAoraW50ZWxfc2V0X2NkY2xrX3ByZV9wbGFuZV91 cGRhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCSBjb25zdCBzdHJ1 Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKm9sZF9zdGF0ZSwKKwkJCQkgY29uc3Qgc3RydWN0IGludGVs X2NkY2xrX3N0YXRlICpuZXdfc3RhdGUsCisJCQkJIGVudW0gcGlwZSBwaXBlKTsKK3ZvaWQKK2lu dGVsX3NldF9jZGNsa19wb3N0X3BsYW5lX3VwZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCisJCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKm9sZF9zdGF0 ZSwKKwkJCQkgIGNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqbmV3X3N0YXRlLAorCQkJ CSAgZW51bSBwaXBlIHBpcGUpOwogdm9pZCBpbnRlbF9kdW1wX2NkY2xrX3N0YXRlKGNvbnN0IHN0 cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUsCiAJCQkgICAgY29uc3QgY2hhciAq Y29udGV4dCk7CiAKLS0gCjIuMTMuMgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGlu Zm8vaW50ZWwtZ2Z4