From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, UNWANTED_LANGUAGE_BODY,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AF52CC2D0CE for ; Tue, 21 Jan 2020 14:04:00 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 8CBA621569 for ; Tue, 21 Jan 2020 14:04:00 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 8CBA621569 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 1ECE66FADC; Tue, 21 Jan 2020 14:04:00 +0000 (UTC) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4452A6FADC for ; Tue, 21 Jan 2020 14:03:58 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga008.jf.intel.com ([10.7.209.65]) by orsmga106.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Jan 2020 06:03:57 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,346,1574150400"; d="scan'208";a="219962390" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by orsmga008.jf.intel.com with SMTP; 21 Jan 2020 06:03:54 -0800 Received: by stinkbox (sSMTP sendmail emulation); Tue, 21 Jan 2020 16:03:53 +0200 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Date: Tue, 21 Jan 2020 16:03:53 +0200 Message-Id: <20200121140353.25997-1-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200120174728.21095-18-ville.syrjala@linux.intel.com> References: <20200120174728.21095-18-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v2 16/17] drm/i915: Convert cdclk to global state X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCkxl dCdzIGNvbnZlcnQgY2RjbGtfc3RhdGUgdG8gYmUgYSBwcm9wZXIgZ2xvYmFsIHN0YXRlLiBUaGF0 IGFsbG93cwp1cyB0byB1c2UgdGhlIHJlZ3VsYXIgYXRvbWljIG9sZCB2cy4gbmV3IHN0YXRlIGFj Y2Vzc29yLCBob3BlZnVsbHkKbWFraW5nIHRoZSBjb2RlIGxlc3MgY29uZnVzaW5nLgoKV2UgZG8g aGF2ZSB0byBkZWFsIHdpdGggYSBmZXcgbW9yZSBlcnJvciBjYXNlcyBpbiBjYXNlIHRoZSBjZGNs awpzdGF0ZSBkdXBsaWNhdGlvbiBmYWlscy4gQnV0IHNvIGJlIGl0LgoKdjI6IEZpeCBuZXcgcGxh bmUgbWluX2NkY2xrIHZzLiBvbGQgY3J0YyBtaW5fY2RjbGsgY2hlY2sKClNpZ25lZC1vZmYtYnk6 IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuYyAgIHwgICAxIC0KIC4uLi9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxhbmUuYyB8ICA2OCArKysrLS0tCiAu Li4vZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5lLmggfCAgIDUgKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXVkaW8uYyAgICB8ICAzOSArKystCiBk cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmMgICAgfCAxOTIgKysrKysr KysrKy0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmgg ICAgfCAgNDUgKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5 LmMgIHwgMTIyICsrKysrKystLS0tCiAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5 X3R5cGVzLmggICAgfCAgIDMgLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAg ICAgICAgICAgIHwgIDQ1ICstLS0KIDkgZmlsZXMgY2hhbmdlZCwgMzE2IGluc2VydGlvbnMoKyks IDIwNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9h dG9taWMuYwppbmRleCA0NTg0MmViY2RlYmQuLmI1MWRkZjlhMjUwZiAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pYy5jCkBAIC01MTgsNyArNTE4LDYgQEAgdm9p ZCBpbnRlbF9hdG9taWNfc3RhdGVfY2xlYXIoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnMpCiAJ c3RhdGUtPmRwbGxfc2V0ID0gc3RhdGUtPm1vZGVzZXQgPSBmYWxzZTsKIAlzdGF0ZS0+Z2xvYmFs X3N0YXRlX2NoYW5nZWQgPSBmYWxzZTsKIAlzdGF0ZS0+YWN0aXZlX3BpcGVzID0gMDsKLQlpbnRl bF9jZGNsa19jbGVhcl9zdGF0ZShzdGF0ZSk7CiB9CiAKIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWlj X3BsYW5lLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFu ZS5jCmluZGV4IDU2M2NhZWMxZDIwMS4uMjMwZDBlNGY2MTY5IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljX3BsYW5lLmMKQEAgLTM3LDYgKzM3LDcg QEAKIAogI2luY2x1ZGUgImk5MTVfdHJhY2UuaCIKICNpbmNsdWRlICJpbnRlbF9hdG9taWNfcGxh bmUuaCIKKyNpbmNsdWRlICJpbnRlbF9jZGNsay5oIgogI2luY2x1ZGUgImludGVsX2Rpc3BsYXlf dHlwZXMuaCIKICNpbmNsdWRlICJpbnRlbF9wbS5oIgogI2luY2x1ZGUgImludGVsX3Nwcml0ZS5o IgpAQCAtMTU1LDQ0ICsxNTYsNjEgQEAgdW5zaWduZWQgaW50IGludGVsX3BsYW5lX2RhdGFfcmF0 ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAlyZXR1cm4gY3Bw ICogY3J0Y19zdGF0ZS0+cGl4ZWxfcmF0ZTsKIH0KIAotYm9vbCBpbnRlbF9wbGFuZV9jYWxjX21p bl9jZGNsayhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKLQkJCQlzdHJ1Y3QgaW50 ZWxfcGxhbmUgKnBsYW5lKQoraW50IGludGVsX3BsYW5lX2NhbGNfbWluX2NkY2xrKHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlLAorCQkJICAgICAgIHN0cnVjdCBpbnRlbF9wbGFuZSAq cGxhbmUsCisJCQkgICAgICAgYm9vbCAqbmVlZF9jZGNsa19jYWxjKQogewotCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2UuZGV2KTsKLQljb25z dCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlID0KLQkJJmRldl9wcml2LT5j ZGNsa19zdGF0ZTsKIAljb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRl ID0KIAkJaW50ZWxfYXRvbWljX2dldF9uZXdfcGxhbmVfc3RhdGUoc3RhdGUsIHBsYW5lKTsKIAlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMocGxhbmVfc3RhdGUtPmh3LmNy dGMpOwotCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOworCWNvbnN0IHN0cnVj dCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGU7CisJc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKm5ld19jcnRjX3N0YXRlID0KKwkJaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShz dGF0ZSwgY3J0Yyk7CisJY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0 YXRlID0KKwkJaW50ZWxfYXRvbWljX2dldF9vbGRfY3J0Y19zdGF0ZShzdGF0ZSwgY3J0Yyk7CiAK IAlpZiAoIXBsYW5lX3N0YXRlLT51YXBpLnZpc2libGUgfHwgIXBsYW5lLT5taW5fY2RjbGspCi0J CXJldHVybiBmYWxzZTsKKwkJcmV0dXJuIDA7CisKKwluZXdfY3J0Y19zdGF0ZS0+bWluX2NkY2xr W3BsYW5lLT5pZF0gPQorCQlwbGFuZS0+bWluX2NkY2xrKG5ld19jcnRjX3N0YXRlLCBwbGFuZV9z dGF0ZSk7CiAKLQljcnRjX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0ZShz dGF0ZSwgY3J0Yyk7CisJLyoKKwkgKiBObyBuZWVkIHRvIGNoZWNrIGFnYWluc3QgdGhlIGNkY2xr IHN0YXRlIGlmCisJICogdGhlIG1pbiBjZGNsayBmb3IgdGhlIHBsYW5lIGRvZXNuJ3QgaW5jcmVh c2UuCisJICoKKwkgKiBJZS4gd2Ugb25seSBldmVyIGluY3JlYXNlIHRoZSBjZGNsayBkdWUgdG8g cGxhbmUKKwkgKiByZXF1aXJlbWVudHMuIFRoaXMgY2FuIHJlZHVjZSBiYWNrIGFuZCBmb3J0aAor CSAqIGRpc3BsYXkgYmxpbmtpbmcgZHVlIHRvIGNvbnN0YW50IGNkY2xrIGNoYW5nZXMuCisJICov CisJaWYgKG5ld19jcnRjX3N0YXRlLT5taW5fY2RjbGtbcGxhbmUtPmlkXSA8PQorCSAgICBvbGRf Y3J0Y19zdGF0ZS0+bWluX2NkY2xrW3BsYW5lLT5pZF0pCisJCXJldHVybiAwOwogCi0JY3J0Y19z dGF0ZS0+bWluX2NkY2xrW3BsYW5lLT5pZF0gPQotCQlwbGFuZS0+bWluX2NkY2xrKGNydGNfc3Rh dGUsIHBsYW5lX3N0YXRlKTsKKwljZGNsa19zdGF0ZSA9IGludGVsX2F0b21pY19nZXRfY2RjbGtf c3RhdGUoc3RhdGUpOworCWlmIChJU19FUlIoY2RjbGtfc3RhdGUpKQorCQlyZXR1cm4gUFRSX0VS UihjZGNsa19zdGF0ZSk7CiAKIAkvKgotCSAqIERvZXMgdGhlIGNkY2xrIG5lZWQgdG8gYmUgYnVt YmVkIHVwPworCSAqIE5vIG5lZWQgdG8gcmVjYWxjdWxhdGUgdGhlIGNkY2xrIHN0YXRlIGlmCisJ ICogdGhlIG1pbiBjZGNsayBmb3IgdGhlIHBpcGUgZG9lc24ndCBpbmNyZWFzZS4KIAkgKgotCSAq IE5vdGU6IHdlIG9idmlvdXNseSBuZWVkIHRvIGJlIGNhbGxlZCBiZWZvcmUgdGhlIG5ldwotCSAq IGNkY2xrIGZyZXF1ZW5jeSBpcyBjYWxjdWxhdGVkIHNvIHN0YXRlLT5jZGNsay5sb2dpY2FsCi0J ICogaGFzbid0IGJlZW4gcG9wdWxhdGVkIHlldC4gSGVuY2Ugd2UgbG9vayBhdCB0aGUgb2xkCi0J ICogY2RjbGsgc3RhdGUgdW5kZXIgZGV2X3ByaXYtPmNkY2xrLmxvZ2ljYWwuIFRoaXMgaXMKLQkg KiBzYWZlIGFzIGxvbmcgd2UgaG9sZCBhdCBsZWFzdCBvbmUgY3J0YyBtdXRleCAod2hpY2gKLQkg KiBtdXN0IGJlIHRydWUgc2luY2Ugd2UgaGF2ZSBjcnRjX3N0YXRlKS4KKwkgKiBJZS4gd2Ugb25s eSBldmVyIGluY3JlYXNlIHRoZSBjZGNsayBkdWUgdG8gcGxhbmUKKwkgKiByZXF1aXJlbWVudHMu IFRoaXMgY2FuIHJlZHVjZSBiYWNrIGFuZCBmb3J0aAorCSAqIGRpc3BsYXkgYmxpbmtpbmcgZHVl IHRvIGNvbnN0YW50IGNkY2xrIGNoYW5nZXMuCiAJICovCi0JaWYgKGNydGNfc3RhdGUtPm1pbl9j ZGNsa1twbGFuZS0+aWRdID4gY2RjbGtfc3RhdGUtPmxvZ2ljYWwuY2RjbGspIHsKLQkJRFJNX0RF QlVHX0tNUygiW1BMQU5FOiVkOiVzXSBtaW5fY2RjbGsgKCVkIGtIeikgPiBsb2dpY2FsIGNkY2xr ICglZCBrSHopXG4iLAotCQkJICAgICAgcGxhbmUtPmJhc2UuYmFzZS5pZCwgcGxhbmUtPmJhc2Uu bmFtZSwKLQkJCSAgICAgIGNydGNfc3RhdGUtPm1pbl9jZGNsa1twbGFuZS0+aWRdLAotCQkJICAg ICAgY2RjbGtfc3RhdGUtPmxvZ2ljYWwuY2RjbGspOwotCQlyZXR1cm4gdHJ1ZTsKLQl9CisJaWYg KG5ld19jcnRjX3N0YXRlLT5taW5fY2RjbGtbcGxhbmUtPmlkXSA8PQorCSAgICBjZGNsa19zdGF0 ZS0+bWluX2NkY2xrW2NydGMtPnBpcGVdKQorCQlyZXR1cm4gMDsKKworCURSTV9ERUJVR19LTVMo IltQTEFORTolZDolc10gbWluIGNkY2xrICglZCBrSHopID4gW0NSVEM6JWQ6JXNdIG1pbiBjZGNs ayAoJWQga0h6KVxuIiwKKwkJICAgICAgcGxhbmUtPmJhc2UuYmFzZS5pZCwgcGxhbmUtPmJhc2Uu bmFtZSwKKwkJICAgICAgbmV3X2NydGNfc3RhdGUtPm1pbl9jZGNsa1twbGFuZS0+aWRdLAorCQkg ICAgICBjcnRjLT5iYXNlLmJhc2UuaWQsIGNydGMtPmJhc2UubmFtZSwKKwkJICAgICAgY2RjbGtf c3RhdGUtPm1pbl9jZGNsa1tjcnRjLT5waXBlXSk7CisJKm5lZWRfY2RjbGtfY2FsYyA9IHRydWU7 CiAKLQlyZXR1cm4gZmFsc2U7CisJcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX3Bs YW5lX2NsZWFyX2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUp CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19w bGFuZS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxhbmUu aAppbmRleCA1Y2VkYWZkZGRiNTUuLjJiY2YxNWUzNDcyOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWNfcGxhbmUuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pY19wbGFuZS5oCkBAIC00Niw3ICs0Niw4IEBA IGludCBpbnRlbF9wbGFuZV9hdG9taWNfY2FsY19jaGFuZ2VzKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0CiAJCQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpjcnRjX3N0YXRlLAogCQkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKm9s ZF9wbGFuZV9zdGF0ZSwKIAkJCQkgICAgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9z dGF0ZSk7Ci1ib29sIGludGVsX3BsYW5lX2NhbGNfbWluX2NkY2xrKHN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKnN0YXRlLAotCQkJCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUpOworaW50IGlu dGVsX3BsYW5lX2NhbGNfbWluX2NkY2xrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRl LAorCQkJICAgICAgIHN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUsCisJCQkgICAgICAgYm9vbCAq bmVlZF9jZGNsa19jYWxjKTsKIAogI2VuZGlmIC8qIF9fSU5URUxfQVRPTUlDX1BMQU5FX0hfXyAq LwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdWRpby5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdWRpby5jCmluZGV4IDEyNjI2 ZmQ5NGQyOS4uOWRlYmFjNzVlYWVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2F1ZGlvLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9hdWRpby5jCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKICNp bmNsdWRlICJpbnRlbF9hdG9taWMuaCIKICNpbmNsdWRlICJpbnRlbF9hdWRpby5oIgorI2luY2x1 ZGUgImludGVsX2NkY2xrLmgiCiAjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogI2lu Y2x1ZGUgImludGVsX2xwZV9hdWRpby5oIgogCkBAIC04MDAsNiArODAxLDM0IEBAIHZvaWQgaW50 ZWxfaW5pdF9hdWRpb19ob29rcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJ fQogfQogCitzdGF0aWMgaW50IGdsa19mb3JjZV9hdWRpb19jZGNsa19jb21taXQoc3RydWN0IGlu dGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkJCWJvb2wgZW5hYmxlKQoreworCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKKwlz dHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlOworCXN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjOworCWludCByZXQ7CisKKwkvKiBuZWVkIHRvIGhvbGQgYXQgbGVhc3Qgb25lIGNydGMg bG9jayBmb3IgdGhlIGdsb2JhbCBzdGF0ZSAqLworCWNydGMgPSBpbnRlbF9nZXRfY3J0Y19mb3Jf cGlwZShkZXZfcHJpdiwgUElQRV9BKTsKKwlyZXQgPSBkcm1fbW9kZXNldF9sb2NrKCZjcnRjLT5i YXNlLm11dGV4LCBzdGF0ZS0+YmFzZS5hY3F1aXJlX2N0eCk7CisJaWYgKHJldCkKKwkJcmV0dXJu IHJldDsKKworCWNkY2xrX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9jZGNsa19zdGF0ZShzdGF0 ZSk7CisJaWYgKElTX0VSUihjZGNsa19zdGF0ZSkpCisJCXJldHVybiBQVFJfRVJSKGNkY2xrX3N0 YXRlKTsKKworCWNkY2xrX3N0YXRlLT5mb3JjZV9taW5fY2RjbGtfY2hhbmdlZCA9IHRydWU7CisJ Y2RjbGtfc3RhdGUtPmZvcmNlX21pbl9jZGNsayA9IGVuYWJsZSA/IDIgKiA5NjAwMCA6IDA7CisK KwlyZXQgPSBpbnRlbF9hdG9taWNfbG9ja19nbG9iYWxfc3RhdGUoJmNkY2xrX3N0YXRlLT5iYXNl KTsKKwlpZiAocmV0KQorCQlyZXR1cm4gcmV0OworCisJcmV0dXJuIGRybV9hdG9taWNfY29tbWl0 KCZzdGF0ZS0+YmFzZSk7Cit9CisKIHN0YXRpYyB2b2lkIGdsa19mb3JjZV9hdWRpb19jZGNsayhz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkJICBib29sIGVuYWJsZSkKIHsK QEAgLTgxNSwxNSArODQ0LDcgQEAgc3RhdGljIHZvaWQgZ2xrX2ZvcmNlX2F1ZGlvX2NkY2xrKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlzdGF0ZS0+YWNxdWlyZV9jdHggPSAm Y3R4OwogCiByZXRyeToKLQl0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpLT5jZGNsa19zdGF0 ZS5mb3JjZV9taW5fY2RjbGtfY2hhbmdlZCA9IHRydWU7Ci0JdG9faW50ZWxfYXRvbWljX3N0YXRl KHN0YXRlKS0+Y2RjbGtfc3RhdGUuZm9yY2VfbWluX2NkY2xrID0KLQkJZW5hYmxlID8gMiAqIDk2 MDAwIDogMDsKLQotCS8qIFByb3RlY3RzIGRldl9wcml2LT5jZGNsay5mb3JjZV9taW5fY2RjbGsg Ki8KLQlyZXQgPSBfaW50ZWxfYXRvbWljX2xvY2tfZ2xvYmFsX3N0YXRlKHRvX2ludGVsX2F0b21p Y19zdGF0ZShzdGF0ZSkpOwotCWlmICghcmV0KQotCQlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChz dGF0ZSk7Ci0KKwlyZXQgPSBnbGtfZm9yY2VfYXVkaW9fY2RjbGtfY29tbWl0KHRvX2ludGVsX2F0 b21pY19zdGF0ZShzdGF0ZSksIGVuYWJsZSk7CiAJaWYgKHJldCA9PSAtRURFQURMSykgewogCQlk cm1fYXRvbWljX3N0YXRlX2NsZWFyKHN0YXRlKTsKIAkJZHJtX21vZGVzZXRfYmFja29mZigmY3R4 KTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfY2RjbGsuYwppbmRleCAzYjc5 MzJhZTJhNzcuLmUxNGJkYTJiZWM3MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9jZGNsay5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfY2RjbGsuYwpAQCAtMTgwNywzNyArMTgwNyw2IEBAIHN0YXRpYyBib29sIGludGVsX2Nk Y2xrX2NoYW5nZWQoY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX2NvbmZpZyAqYSwKIAkJYS0+dm9s dGFnZV9sZXZlbCAhPSBiLT52b2x0YWdlX2xldmVsOwogfQogCi0vKioKLSAqIGludGVsX2NkY2xr X2NsZWFyX3N0YXRlIC0gY2xlYXIgdGhlIGNkY2xrIHN0YXRlCi0gKiBAc3RhdGU6IGF0b21pYyBz dGF0ZQotICoKLSAqIENsZWFyIHRoZSBjZGNsayBzdGF0ZSBmb3Igd3dfbXV0ZXggYmFja29mZi4K LSAqLwotdm9pZCBpbnRlbF9jZGNsa19jbGVhcl9zdGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0 YXRlICpzdGF0ZSkKLXsKLQltZW1zZXQoJnN0YXRlLT5jZGNsa19zdGF0ZSwgMCwgc2l6ZW9mKHN0 YXRlLT5jZGNsa19zdGF0ZSkpOwotCXN0YXRlLT5jZGNsa19zdGF0ZS5waXBlID0gSU5WQUxJRF9Q SVBFOwotfQotCi0vKioKLSAqIGludGVsX2NkY2xrX3N3YXBfc3RhdGUgLSBtYWtlIGF0b21pYyBD RENMSyBjb25maWd1cmF0aW9uIGVmZmVjdGl2ZQotICogQHN0YXRlOiBhdG9taWMgc3RhdGUKLSAq Ci0gKiBUaGlzIGlzIHRoZSBDRENMSyB2ZXJzaW9uIG9mIGRybV9hdG9taWNfaGVscGVyX3N3YXBf c3RhdGUoKSBzaW5jZSB0aGUKLSAqIGhlbHBlciBkb2VzIG5vdCBoYW5kbGUgZHJpdmVyLXNwZWNp ZmljIGdsb2JhbCBzdGF0ZS4KLSAqCi0gKiBTaW1pbGFybHkgdG8gdGhlIGF0b21pYyBoZWxwZXJz IHRoaXMgZnVuY3Rpb24gZG9lcyBhIGNvbXBsZXRlIHN3YXAsCi0gKiBpLmUuIGl0IGFsc28gcHV0 cyB0aGUgb2xkIHN0YXRlIGludG8gQHN0YXRlLiBUaGlzIGlzIHVzZWQgYnkgdGhlIGNvbW1pdAot ICogY29kZSB0byBkZXRlcm1pbmUgaG93IENEQ0xLIGhhcyBjaGFuZ2VkIChmb3IgaW5zdGFuY2Ug ZGlkIGl0IGluY3JlYXNlIG9yCi0gKiBkZWNyZWFzZSkuCi0gKi8KLXZvaWQgaW50ZWxfY2RjbGtf c3dhcF9zdGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKLXsKLQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7Ci0K LQlzd2FwKHN0YXRlLT5jZGNsa19zdGF0ZSwgZGV2X3ByaXYtPmNkY2xrX3N0YXRlKTsKLX0KLQog dm9pZCBpbnRlbF9kdW1wX2NkY2xrX2NvbmZpZyhjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfY29u ZmlnICpjZGNsa19jb25maWcsCiAJCQkgICAgIGNvbnN0IGNoYXIgKmNvbnRleHQpCiB7CkBAIC0x ODg4LDE0ICsxODU3LDIyIEBAIHZvaWQKIGludGVsX3NldF9jZGNsa19wcmVfcGxhbmVfdXBkYXRl KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKLQkvKiBjYWxsZWQg YWZ0ZXIgaW50ZWxfY2RjbGtfc3dhcF9zdGF0ZSgpISAqLwotCWNvbnN0IHN0cnVjdCBpbnRlbF9j ZGNsa19zdGF0ZSAqb2xkX2NkY2xrX3N0YXRlID0gJnN0YXRlLT5jZGNsa19zdGF0ZTsKLQljb25z dCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKm5ld19jZGNsa19zdGF0ZSA9ICZkZXZfcHJpdi0+ Y2RjbGtfc3RhdGU7CisJY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpvbGRfY2RjbGtf c3RhdGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9jZGNsa19zdGF0ZShzdGF0ZSk7CisJY29u c3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpuZXdfY2RjbGtfc3RhdGUgPQorCQlpbnRlbF9h dG9taWNfZ2V0X25ld19jZGNsa19zdGF0ZShzdGF0ZSk7CiAJZW51bSBwaXBlIHBpcGUgPSBuZXdf Y2RjbGtfc3RhdGUtPnBpcGU7CiAKKwlpZiAoIWludGVsX2NkY2xrX2NoYW5nZWQoJm9sZF9jZGNs a19zdGF0ZS0+YWN0dWFsLAorCQkJCSAmbmV3X2NkY2xrX3N0YXRlLT5hY3R1YWwpKQorCQlyZXR1 cm47CisKIAlpZiAocGlwZSA9PSBJTlZBTElEX1BJUEUgfHwKLQkgICAgb2xkX2NkY2xrX3N0YXRl LT5hY3R1YWwuY2RjbGsgPD0gbmV3X2NkY2xrX3N0YXRlLT5hY3R1YWwuY2RjbGspCisJICAgIG9s ZF9jZGNsa19zdGF0ZS0+YWN0dWFsLmNkY2xrIDw9IG5ld19jZGNsa19zdGF0ZS0+YWN0dWFsLmNk Y2xrKSB7CisJCVdBUk5fT04oIW5ld19jZGNsa19zdGF0ZS0+YmFzZS5jaGFuZ2VkKTsKKwogCQlp bnRlbF9zZXRfY2RjbGsoZGV2X3ByaXYsICZuZXdfY2RjbGtfc3RhdGUtPmFjdHVhbCwgcGlwZSk7 CisJfQogfQogCiAvKioKQEAgLTE5MDksMTQgKzE4ODYsMjIgQEAgdm9pZAogaW50ZWxfc2V0X2Nk Y2xrX3Bvc3RfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQog ewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJh c2UuZGV2KTsKLQkvKiBjYWxsZWQgYWZ0ZXIgaW50ZWxfY2RjbGtfc3dhcF9zdGF0ZSgpISAqLwot CWNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqb2xkX2NkY2xrX3N0YXRlID0gJnN0YXRl LT5jZGNsa19zdGF0ZTsKLQljb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKm5ld19jZGNs a19zdGF0ZSA9ICZkZXZfcHJpdi0+Y2RjbGtfc3RhdGU7CisJY29uc3Qgc3RydWN0IGludGVsX2Nk Y2xrX3N0YXRlICpvbGRfY2RjbGtfc3RhdGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X29sZF9jZGNs a19zdGF0ZShzdGF0ZSk7CisJY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpuZXdfY2Rj bGtfc3RhdGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X25ld19jZGNsa19zdGF0ZShzdGF0ZSk7CiAJ ZW51bSBwaXBlIHBpcGUgPSBuZXdfY2RjbGtfc3RhdGUtPnBpcGU7CiAKKwlpZiAoIWludGVsX2Nk Y2xrX2NoYW5nZWQoJm9sZF9jZGNsa19zdGF0ZS0+YWN0dWFsLAorCQkJCSAmbmV3X2NkY2xrX3N0 YXRlLT5hY3R1YWwpKQorCQlyZXR1cm47CisKIAlpZiAocGlwZSAhPSBJTlZBTElEX1BJUEUgJiYK LQkgICAgb2xkX2NkY2xrX3N0YXRlLT5hY3R1YWwuY2RjbGsgPiBuZXdfY2RjbGtfc3RhdGUtPmFj dHVhbC5jZGNsaykKKwkgICAgb2xkX2NkY2xrX3N0YXRlLT5hY3R1YWwuY2RjbGsgPiBuZXdfY2Rj bGtfc3RhdGUtPmFjdHVhbC5jZGNsaykgeworCQlXQVJOX09OKCFuZXdfY2RjbGtfc3RhdGUtPmJh c2UuY2hhbmdlZCk7CisKIAkJaW50ZWxfc2V0X2NkY2xrKGRldl9wcml2LCAmbmV3X2NkY2xrX3N0 YXRlLT5hY3R1YWwsIHBpcGUpOworCX0KIH0KIAogc3RhdGljIGludCBpbnRlbF9waXhlbF9yYXRl X3RvX2NkY2xrKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQpAQCAt MjA0MiwxMCArMjAyNywxMCBAQCBpbnQgaW50ZWxfY3J0Y19jb21wdXRlX21pbl9jZGNsayhjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlyZXR1cm4gbWluX2NkY2xr OwogfQogCi1zdGF0aWMgaW50IGludGVsX2NvbXB1dGVfbWluX2NkY2xrKHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlKQorc3RhdGljIGludCBpbnRlbF9jb21wdXRlX21pbl9jZGNsayhz dHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKQogeworCXN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlID0gY2RjbGtfc3RhdGUtPmJhc2Uuc3RhdGU7CiAJc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpOwotCXN0 cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUgPSAmc3RhdGUtPmNkY2xrX3N0YXRl OwogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwogCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlOwogCWludCBtaW5fY2RjbGssIGk7CkBAIC0yMDYzLDcgKzIwNDgsNyBAQCBzdGF0 aWMgaW50IGludGVsX2NvbXB1dGVfbWluX2NkY2xrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUg KnN0YXRlKQogCiAJCWNkY2xrX3N0YXRlLT5taW5fY2RjbGtbaV0gPSBtaW5fY2RjbGs7CiAKLQkJ cmV0ID0gX2ludGVsX2F0b21pY19sb2NrX2dsb2JhbF9zdGF0ZShzdGF0ZSk7CisJCXJldCA9IGlu dGVsX2F0b21pY19sb2NrX2dsb2JhbF9zdGF0ZSgmY2RjbGtfc3RhdGUtPmJhc2UpOwogCQlpZiAo cmV0KQogCQkJcmV0dXJuIHJldDsKIAl9CkBAIC0yMDg4LDEwICsyMDczLDEwIEBAIHN0YXRpYyBp bnQgaW50ZWxfY29tcHV0ZV9taW5fY2RjbGsoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3Rh dGUpCiAgKiBmdXR1cmUgcGxhdGZvcm1zIHRoaXMgY29kZSB3aWxsIG5lZWQgdG8gYmUKICAqIGFk anVzdGVkLgogICovCi1zdGF0aWMgaW50IGJ4dF9jb21wdXRlX21pbl92b2x0YWdlX2xldmVsKHN0 cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQorc3RhdGljIGludCBieHRfY29tcHV0ZV9t aW5fdm9sdGFnZV9sZXZlbChzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKQog eworCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0gY2RjbGtfc3RhdGUtPmJhc2Uu c3RhdGU7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0 ZS0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUgPSAm c3RhdGUtPmNkY2xrX3N0YXRlOwogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwogCXN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwogCXU4IG1pbl92b2x0YWdlX2xldmVsOwpAQCAt MjExMSw3ICsyMDk2LDcgQEAgc3RhdGljIGludCBieHRfY29tcHV0ZV9taW5fdm9sdGFnZV9sZXZl bChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAogCQljZGNsa19zdGF0ZS0+bWlu X3ZvbHRhZ2VfbGV2ZWxbaV0gPSBtaW5fdm9sdGFnZV9sZXZlbDsKIAotCQlyZXQgPSBfaW50ZWxf YXRvbWljX2xvY2tfZ2xvYmFsX3N0YXRlKHN0YXRlKTsKKwkJcmV0ID0gaW50ZWxfYXRvbWljX2xv Y2tfZ2xvYmFsX3N0YXRlKCZjZGNsa19zdGF0ZS0+YmFzZSk7CiAJCWlmIChyZXQpCiAJCQlyZXR1 cm4gcmV0OwogCX0KQEAgLTIxMjQsMTMgKzIxMDksMTMgQEAgc3RhdGljIGludCBieHRfY29tcHV0 ZV9taW5fdm9sdGFnZV9sZXZlbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAly ZXR1cm4gbWluX3ZvbHRhZ2VfbGV2ZWw7CiB9CiAKLXN0YXRpYyBpbnQgdmx2X21vZGVzZXRfY2Fs Y19jZGNsayhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKK3N0YXRpYyBpbnQgdmx2 X21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRl KQogeworCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0gY2RjbGtfc3RhdGUtPmJh c2Uuc3RhdGU7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShz dGF0ZS0+YmFzZS5kZXYpOwotCXN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUg PSAmc3RhdGUtPmNkY2xrX3N0YXRlOwogCWludCBtaW5fY2RjbGssIGNkY2xrOwogCi0JbWluX2Nk Y2xrID0gaW50ZWxfY29tcHV0ZV9taW5fY2RjbGsoc3RhdGUpOworCW1pbl9jZGNsayA9IGludGVs X2NvbXB1dGVfbWluX2NkY2xrKGNkY2xrX3N0YXRlKTsKIAlpZiAobWluX2NkY2xrIDwgMCkKIAkJ cmV0dXJuIG1pbl9jZGNsazsKIApAQCAtMjE1MywxMiArMjEzOCwxMiBAQCBzdGF0aWMgaW50IHZs dl9tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJ cmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgYmR3X21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKK3N0YXRpYyBpbnQgYmR3X21vZGVzZXRfY2FsY19j ZGNsayhzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlKQogewotCXN0cnVjdCBp bnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUgPSAmc3RhdGUtPmNkY2xrX3N0YXRlOworCXN0 cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0gY2RjbGtfc3RhdGUtPmJhc2Uuc3RhdGU7 CiAJaW50IG1pbl9jZGNsaywgY2RjbGs7CiAKLQltaW5fY2RjbGsgPSBpbnRlbF9jb21wdXRlX21p bl9jZGNsayhzdGF0ZSk7CisJbWluX2NkY2xrID0gaW50ZWxfY29tcHV0ZV9taW5fY2RjbGsoY2Rj bGtfc3RhdGUpOwogCWlmIChtaW5fY2RjbGsgPCAwKQogCQlyZXR1cm4gbWluX2NkY2xrOwogCkBA IC0yMTg1LDEwICsyMTcwLDEwIEBAIHN0YXRpYyBpbnQgYmR3X21vZGVzZXRfY2FsY19jZGNsayhz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAlyZXR1cm4gMDsKIH0KIAotc3RhdGlj IGludCBza2xfZHBsbDBfdmNvKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQorc3Rh dGljIGludCBza2xfZHBsbDBfdmNvKHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3Rh dGUpCiB7CisJc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBjZGNsa19zdGF0ZS0+ YmFzZS5zdGF0ZTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KHN0YXRlLT5iYXNlLmRldik7Ci0Jc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0 ZSA9ICZzdGF0ZS0+Y2RjbGtfc3RhdGU7CiAJc3RydWN0IGludGVsX2NydGMgKmNydGM7CiAJc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7CiAJaW50IHZjbywgaTsKQEAgLTIyMjIs MTYgKzIyMDcsMTYgQEAgc3RhdGljIGludCBza2xfZHBsbDBfdmNvKHN0cnVjdCBpbnRlbF9hdG9t aWNfc3RhdGUgKnN0YXRlKQogCXJldHVybiB2Y287CiB9CiAKLXN0YXRpYyBpbnQgc2tsX21vZGVz ZXRfY2FsY19jZGNsayhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKK3N0YXRpYyBp bnQgc2tsX21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xr X3N0YXRlKQogewotCXN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUgPSAmc3Rh dGUtPmNkY2xrX3N0YXRlOworCXN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0gY2Rj bGtfc3RhdGUtPmJhc2Uuc3RhdGU7CiAJaW50IG1pbl9jZGNsaywgY2RjbGssIHZjbzsKIAotCW1p bl9jZGNsayA9IGludGVsX2NvbXB1dGVfbWluX2NkY2xrKHN0YXRlKTsKKwltaW5fY2RjbGsgPSBp bnRlbF9jb21wdXRlX21pbl9jZGNsayhjZGNsa19zdGF0ZSk7CiAJaWYgKG1pbl9jZGNsayA8IDAp CiAJCXJldHVybiBtaW5fY2RjbGs7CiAKLQl2Y28gPSBza2xfZHBsbDBfdmNvKHN0YXRlKTsKKwl2 Y28gPSBza2xfZHBsbDBfdmNvKGNkY2xrX3N0YXRlKTsKIAogCS8qCiAJICogRklYTUUgc2hvdWxk IGFsc28gYWNjb3VudCBmb3IgcGxhbmUgcmF0aW8KQEAgLTIyNTgsMTcgKzIyNDMsMTcgQEAgc3Rh dGljIGludCBza2xfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUg KnN0YXRlKQogCXJldHVybiAwOwogfQogCi1zdGF0aWMgaW50IGJ4dF9tb2Rlc2V0X2NhbGNfY2Rj bGsoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCitzdGF0aWMgaW50IGJ4dF9tb2Rl c2V0X2NhbGNfY2RjbGsoc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSkKIHsK KwlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNkY2xrX3N0YXRlLT5iYXNlLnN0 YXRlOwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUt PmJhc2UuZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlID0gJnN0 YXRlLT5jZGNsa19zdGF0ZTsKIAlpbnQgbWluX2NkY2xrLCBtaW5fdm9sdGFnZV9sZXZlbCwgY2Rj bGssIHZjbzsKIAotCW1pbl9jZGNsayA9IGludGVsX2NvbXB1dGVfbWluX2NkY2xrKHN0YXRlKTsK KwltaW5fY2RjbGsgPSBpbnRlbF9jb21wdXRlX21pbl9jZGNsayhjZGNsa19zdGF0ZSk7CiAJaWYg KG1pbl9jZGNsayA8IDApCiAJCXJldHVybiBtaW5fY2RjbGs7CiAKLQltaW5fdm9sdGFnZV9sZXZl bCA9IGJ4dF9jb21wdXRlX21pbl92b2x0YWdlX2xldmVsKHN0YXRlKTsKKwltaW5fdm9sdGFnZV9s ZXZlbCA9IGJ4dF9jb21wdXRlX21pbl92b2x0YWdlX2xldmVsKGNkY2xrX3N0YXRlKTsKIAlpZiAo bWluX3ZvbHRhZ2VfbGV2ZWwgPCAwKQogCQlyZXR1cm4gbWluX3ZvbHRhZ2VfbGV2ZWw7CiAKQEAg LTIzMzUsNyArMjMyMCw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfbW9kZXNldF9hbGxfcGlwZXMoc3Ry dWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBp bnQgZml4ZWRfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0 YXRlKQorc3RhdGljIGludCBmaXhlZF9tb2Rlc2V0X2NhbGNfY2RjbGsoc3RydWN0IGludGVsX2Nk Y2xrX3N0YXRlICpjZGNsa19zdGF0ZSkKIHsKIAlpbnQgbWluX2NkY2xrOwogCkBAIC0yMzQ0LDU0 ICsyMzI5LDk1IEBAIHN0YXRpYyBpbnQgZml4ZWRfbW9kZXNldF9jYWxjX2NkY2xrKHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCSAqIGNoZWNrIHRoYXQgdGhlIHJlcXVpcmVkIG1p bmltdW0gZnJlcXVlbmN5IGRvZXNuJ3QgZXhjZWVkCiAJICogdGhlIGFjdHVhbCBjZGNsayBmcmVx dWVuY3kuCiAJICovCi0JbWluX2NkY2xrID0gaW50ZWxfY29tcHV0ZV9taW5fY2RjbGsoc3RhdGUp OworCW1pbl9jZGNsayA9IGludGVsX2NvbXB1dGVfbWluX2NkY2xrKGNkY2xrX3N0YXRlKTsKIAlp ZiAobWluX2NkY2xrIDwgMCkKIAkJcmV0dXJuIG1pbl9jZGNsazsKIAogCXJldHVybiAwOwogfQog CitzdGF0aWMgc3RydWN0IGludGVsX2dsb2JhbF9zdGF0ZSAqaW50ZWxfY2RjbGtfZHVwbGljYXRl X3N0YXRlKHN0cnVjdCBpbnRlbF9nbG9iYWxfb2JqICpvYmopCit7CisJc3RydWN0IGludGVsX2Nk Y2xrX3N0YXRlICpjZGNsa19zdGF0ZTsKKworCWNkY2xrX3N0YXRlID0ga21lbWR1cChvYmotPnN0 YXRlLCBzaXplb2YoKmNkY2xrX3N0YXRlKSwgR0ZQX0tFUk5FTCk7CisJaWYgKCFjZGNsa19zdGF0 ZSkKKwkJcmV0dXJuIE5VTEw7CisKKwljZGNsa19zdGF0ZS0+Zm9yY2VfbWluX2NkY2xrX2NoYW5n ZWQgPSBmYWxzZTsKKwljZGNsa19zdGF0ZS0+cGlwZSA9IElOVkFMSURfUElQRTsKKworCXJldHVy biAmY2RjbGtfc3RhdGUtPmJhc2U7Cit9CisKK3N0YXRpYyB2b2lkIGludGVsX2NkY2xrX2Rlc3Ry b3lfc3RhdGUoc3RydWN0IGludGVsX2dsb2JhbF9vYmogKm9iaiwKKwkJCQkgICAgICBzdHJ1Y3Qg aW50ZWxfZ2xvYmFsX3N0YXRlICpzdGF0ZSkKK3sKKwlrZnJlZShzdGF0ZSk7Cit9CisKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgaW50ZWxfZ2xvYmFsX3N0YXRlX2Z1bmNzIGludGVsX2NkY2xrX2Z1bmNz ID0geworCS5hdG9taWNfZHVwbGljYXRlX3N0YXRlID0gaW50ZWxfY2RjbGtfZHVwbGljYXRlX3N0 YXRlLAorCS5hdG9taWNfZGVzdHJveV9zdGF0ZSA9IGludGVsX2NkY2xrX2Rlc3Ryb3lfc3RhdGUs Cit9OworCitzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKgoraW50ZWxfYXRvbWljX2dldF9jZGNs a19zdGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7CisJc3Ry dWN0IGludGVsX2dsb2JhbF9zdGF0ZSAqY2RjbGtfc3RhdGU7CisKKwljZGNsa19zdGF0ZSA9IGlu dGVsX2F0b21pY19nZXRfZ2xvYmFsX29ial9zdGF0ZShzdGF0ZSwgJmRldl9wcml2LT5jZGNsay5v YmopOworCWlmIChJU19FUlIoY2RjbGtfc3RhdGUpKQorCQlyZXR1cm4gRVJSX0NBU1QoY2RjbGtf c3RhdGUpOworCisJcmV0dXJuIHRvX2ludGVsX2NkY2xrX3N0YXRlKGNkY2xrX3N0YXRlKTsKK30K KworaW50IGludGVsX2NkY2xrX2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQoreworCXN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGU7CisKKwljZGNsa19z dGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpjZGNsa19zdGF0ZSksIEdGUF9LRVJORUwpOworCWlmICgh Y2RjbGtfc3RhdGUpCisJCXJldHVybiAtRU5PTUVNOworCisJaW50ZWxfYXRvbWljX2dsb2JhbF9v YmpfaW5pdChkZXZfcHJpdiwgJmRldl9wcml2LT5jZGNsay5vYmosCisJCQkJICAgICAmY2RjbGtf c3RhdGUtPmJhc2UsICZpbnRlbF9jZGNsa19mdW5jcyk7CisKKwlyZXR1cm4gMDsKK30KKwogaW50 IGludGVsX21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0 ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRl LT5iYXNlLmRldik7Ci0JY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpvbGRfY2RjbGtf c3RhdGUgPSAmZGV2X3ByaXYtPmNkY2xrX3N0YXRlOwotCXN0cnVjdCBpbnRlbF9jZGNsa19zdGF0 ZSAqbmV3X2NkY2xrX3N0YXRlID0gJnN0YXRlLT5jZGNsa19zdGF0ZTsKKwljb25zdCBzdHJ1Y3Qg aW50ZWxfY2RjbGtfc3RhdGUgKm9sZF9jZGNsa19zdGF0ZTsKKwlzdHJ1Y3QgaW50ZWxfY2RjbGtf c3RhdGUgKm5ld19jZGNsa19zdGF0ZTsKIAllbnVtIHBpcGUgcGlwZTsKIAlpbnQgcmV0OwogCi0J bWVtY3B5KG5ld19jZGNsa19zdGF0ZS0+bWluX2NkY2xrLCBvbGRfY2RjbGtfc3RhdGUtPm1pbl9j ZGNsaywKLQkgICAgICAgc2l6ZW9mKG5ld19jZGNsa19zdGF0ZS0+bWluX2NkY2xrKSk7Ci0JbWVt Y3B5KG5ld19jZGNsa19zdGF0ZS0+bWluX3ZvbHRhZ2VfbGV2ZWwsIG9sZF9jZGNsa19zdGF0ZS0+ bWluX3ZvbHRhZ2VfbGV2ZWwsCi0JICAgICAgIHNpemVvZihuZXdfY2RjbGtfc3RhdGUtPm1pbl92 b2x0YWdlX2xldmVsKSk7CisJbmV3X2NkY2xrX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9jZGNs a19zdGF0ZShzdGF0ZSk7CisJaWYgKElTX0VSUihuZXdfY2RjbGtfc3RhdGUpKQorCQlyZXR1cm4g UFRSX0VSUihuZXdfY2RjbGtfc3RhdGUpOwogCi0JLyoga2VlcCB0aGUgY3VycmVudCBzZXR0aW5n ICovCi0JaWYgKCFuZXdfY2RjbGtfc3RhdGUtPmZvcmNlX21pbl9jZGNsa19jaGFuZ2VkKQotCQlu ZXdfY2RjbGtfc3RhdGUtPmZvcmNlX21pbl9jZGNsayA9IG9sZF9jZGNsa19zdGF0ZS0+Zm9yY2Vf bWluX2NkY2xrOworCW9sZF9jZGNsa19zdGF0ZSA9IGludGVsX2F0b21pY19nZXRfb2xkX2NkY2xr X3N0YXRlKHN0YXRlKTsKIAotCW5ld19jZGNsa19zdGF0ZS0+bG9naWNhbCA9IG9sZF9jZGNsa19z dGF0ZS0+bG9naWNhbDsKLQluZXdfY2RjbGtfc3RhdGUtPmFjdHVhbCA9IG9sZF9jZGNsa19zdGF0 ZS0+YWN0dWFsOwotCi0JcmV0ID0gZGV2X3ByaXYtPmRpc3BsYXkubW9kZXNldF9jYWxjX2NkY2xr KHN0YXRlKTsKKwlyZXQgPSBkZXZfcHJpdi0+ZGlzcGxheS5tb2Rlc2V0X2NhbGNfY2RjbGsobmV3 X2NkY2xrX3N0YXRlKTsKIAlpZiAocmV0KQogCQlyZXR1cm4gcmV0OwogCi0JLyoKLQkgKiBXcml0 ZXMgdG8gZGV2X3ByaXYtPmNkY2xrLnthY3R1YWwsbG9naWNhbH0gbXVzdCBwcm90ZWN0ZWQKLQkg KiBieSBob2xkaW5nIGFsbCB0aGUgY3J0YyBtdXRleGVzIGV2ZW4gaWYgd2UgZG9uJ3QgZW5kIHVw Ci0JICogdG91Y2hpbmcgdGhlIGhhcmR3YXJlCi0JICovCiAJaWYgKGludGVsX2NkY2xrX2NoYW5n ZWQoJm9sZF9jZGNsa19zdGF0ZS0+YWN0dWFsLAogCQkJCSZuZXdfY2RjbGtfc3RhdGUtPmFjdHVh bCkpIHsKIAkJLyoKIAkJICogQWxzbyBzZXJpYWxpemUgY29tbWl0cyBhY3Jvc3MgYWxsIGNydGNz CiAJCSAqIGlmIHRoZSBhY3R1YWwgaHcgbmVlZHMgdG8gYmUgcG9rZWQuCiAJCSAqLwotCQlyZXQg PSBfaW50ZWxfYXRvbWljX3NlcmlhbGl6ZV9nbG9iYWxfc3RhdGUoc3RhdGUpOworCQlyZXQgPSBp bnRlbF9hdG9taWNfc2VyaWFsaXplX2dsb2JhbF9zdGF0ZSgmbmV3X2NkY2xrX3N0YXRlLT5iYXNl KTsKIAkJaWYgKHJldCkKIAkJCXJldHVybiByZXQ7CiAJfSBlbHNlIGlmIChpbnRlbF9jZGNsa19j aGFuZ2VkKCZvbGRfY2RjbGtfc3RhdGUtPmxvZ2ljYWwsCiAJCQkJICAgICAgICZuZXdfY2RjbGtf c3RhdGUtPmxvZ2ljYWwpKSB7Ci0JCXJldCA9IF9pbnRlbF9hdG9taWNfbG9ja19nbG9iYWxfc3Rh dGUoc3RhdGUpOworCQlyZXQgPSBpbnRlbF9hdG9taWNfbG9ja19nbG9iYWxfc3RhdGUoJm5ld19j ZGNsa19zdGF0ZS0+YmFzZSk7CiAJCWlmIChyZXQpCiAJCQlyZXR1cm4gcmV0OwogCX0gZWxzZSB7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmgg Yi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2NkY2xrLmgKaW5kZXggNGI5NjVk YjA3NzIwLi4xOTVmY2E3MGJmY2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfY2RjbGsuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2NkY2xrLmgKQEAgLTgsMTEgKzgsMTIgQEAKIAogI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+ CiAKKyNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImludGVsX2Rpc3BsYXkuaCIKKyNp bmNsdWRlICJpbnRlbF9nbG9iYWxfc3RhdGUuaCIKIAogc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7 CiBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlOwotc3RydWN0IGludGVsX2NkY2xrX2NvbmZpZzsK IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlOwogCiBzdHJ1Y3QgaW50ZWxfY2RjbGtfdmFscyB7CkBA IC0yMiw2ICsyMywzNSBAQCBzdHJ1Y3QgaW50ZWxfY2RjbGtfdmFscyB7CiAJdTggcmF0aW87CiB9 OwogCitzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgeworCXN0cnVjdCBpbnRlbF9nbG9iYWxfc3Rh dGUgYmFzZTsKKworCS8qCisJICogTG9naWNhbCBjb25maWd1cmF0aW9uIG9mIGNkY2xrICh1c2Vk IGZvciBhbGwgc2NhbGluZywKKwkgKiB3YXRlcm1hcmssIGV0Yy4gY2FsY3VsYXRpb25zIGFuZCBj aGVja3MpLiBUaGlzIGlzCisJICogY29tcHV0ZWQgYXMgaWYgYWxsIGVuYWJsZWQgY3J0Y3Mgd2Vy ZSBhY3RpdmUuCisJICovCisJc3RydWN0IGludGVsX2NkY2xrX2NvbmZpZyBsb2dpY2FsOworCisJ LyoKKwkgKiBBY3R1YWwgY29uZmlndXJhdGlvbiBvZiBjZGNsaywgY2FuIGJlIGRpZmZlcmVudCBm cm9tIHRoZQorCSAqIGxvZ2ljYWwgY29uZmlndXJhdGlvbiBvbmx5IHdoZW4gYWxsIGNydGMncyBh cmUgRFBNUyBvZmYuCisJICovCisJc3RydWN0IGludGVsX2NkY2xrX2NvbmZpZyBhY3R1YWw7CisK KwkvKiBtaW5pbXVtIGFjY2VwdGFibGUgY2RjbGsgZm9yIGVhY2ggcGlwZSAqLworCWludCBtaW5f Y2RjbGtbSTkxNV9NQVhfUElQRVNdOworCS8qIG1pbmltdW0gYWNjZXB0YWJsZSB2b2x0YWdlIGxl dmVsIGZvciBlYWNoIHBpcGUgKi8KKwl1OCBtaW5fdm9sdGFnZV9sZXZlbFtJOTE1X01BWF9QSVBF U107CisKKwkvKiBwaXBlIHRvIHdoaWNoIGNkMnggdXBkYXRlIGlzIHN5bmNocm9uaXplZCAqLwor CWVudW0gcGlwZSBwaXBlOworCisJLyogZm9yY2VkIG1pbmltdW0gY2RjbGsgZm9yIGdsaysgYXVk aW8gdy9hICovCisJaW50IGZvcmNlX21pbl9jZGNsazsKKwlib29sIGZvcmNlX21pbl9jZGNsa19j aGFuZ2VkOworfTsKKwogaW50IGludGVsX2NydGNfY29tcHV0ZV9taW5fY2RjbGsoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpOwogdm9pZCBpbnRlbF9jZGNsa19pbml0 X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKIHZvaWQgaW50ZWxfY2RjbGtfdW5p bml0X2h3KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1KTsKQEAgLTMxLDEyICs2MSwyMSBA QCB2b2lkIGludGVsX3VwZGF0ZV9jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpOwogdm9pZCBpbnRlbF91cGRhdGVfcmF3Y2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7CiBib29sIGludGVsX2NkY2xrX25lZWRzX21vZGVzZXQoY29uc3Qgc3RydWN0IGlu dGVsX2NkY2xrX2NvbmZpZyAqYSwKIAkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtf Y29uZmlnICpiKTsKLXZvaWQgaW50ZWxfY2RjbGtfY2xlYXJfc3RhdGUoc3RydWN0IGludGVsX2F0 b21pY19zdGF0ZSAqc3RhdGUpOwotdm9pZCBpbnRlbF9jZGNsa19zd2FwX3N0YXRlKHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKTsKIHZvaWQgaW50ZWxfc2V0X2NkY2xrX3ByZV9wbGFu ZV91cGRhdGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpOwogdm9pZCBpbnRlbF9z ZXRfY2RjbGtfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3Rh dGUpOwogdm9pZCBpbnRlbF9kdW1wX2NkY2xrX2NvbmZpZyhjb25zdCBzdHJ1Y3QgaW50ZWxfY2Rj bGtfY29uZmlnICpjZGNsa19jb25maWcsCiAJCQkgICAgIGNvbnN0IGNoYXIgKmNvbnRleHQpOwog aW50IGludGVsX21vZGVzZXRfY2FsY19jZGNsayhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpz dGF0ZSk7CiAKK3N0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAqCitpbnRlbF9hdG9taWNfZ2V0X2Nk Y2xrX3N0YXRlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKTsKKworI2RlZmluZSB0 b19pbnRlbF9jZGNsa19zdGF0ZSh4KSBjb250YWluZXJfb2YoKHgpLCBzdHJ1Y3QgaW50ZWxfY2Rj bGtfc3RhdGUsIGJhc2UpCisjZGVmaW5lIGludGVsX2F0b21pY19nZXRfb2xkX2NkY2xrX3N0YXRl KHN0YXRlKSBcCisJdG9faW50ZWxfY2RjbGtfc3RhdGUoaW50ZWxfYXRvbWljX2dldF9vbGRfZ2xv YmFsX29ial9zdGF0ZShzdGF0ZSwgJnRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KS0+Y2RjbGsub2Jq KSkKKyNkZWZpbmUgaW50ZWxfYXRvbWljX2dldF9uZXdfY2RjbGtfc3RhdGUoc3RhdGUpIFwKKwl0 b19pbnRlbF9jZGNsa19zdGF0ZShpbnRlbF9hdG9taWNfZ2V0X25ld19nbG9iYWxfb2JqX3N0YXRl KHN0YXRlLCAmdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYpLT5jZGNsay5vYmopKQorCitpbnQgaW50 ZWxfY2RjbGtfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOworCiAjZW5k aWYgLyogX19JTlRFTF9DRENMS19IX18gKi8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5LmMKaW5kZXggZGM3NjdlZmZmZDlhLi5kY2ExMDA1NDZiZTggMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCkBAIC03NDgyLDcg Kzc0ODIsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2Rpc2FibGVfbm9hdG9taWMoc3RydWN0 IGludGVsX2NydGMgKmNydGMsCiAJc3RydWN0IGludGVsX2J3X3N0YXRlICpid19zdGF0ZSA9CiAJ CXRvX2ludGVsX2J3X3N0YXRlKGRldl9wcml2LT5id19vYmouc3RhdGUpOwogCXN0cnVjdCBpbnRl bF9jZGNsa19zdGF0ZSAqY2RjbGtfc3RhdGUgPQotCQkmZGV2X3ByaXYtPmNkY2xrX3N0YXRlOwor CQl0b19pbnRlbF9jZGNsa19zdGF0ZShkZXZfcHJpdi0+Y2RjbGsub2JqLnN0YXRlKTsKIAlzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9CiAJCXRvX2ludGVsX2NydGNfc3RhdGUo Y3J0Yy0+YmFzZS5zdGF0ZSk7CiAJZW51bSBpbnRlbF9kaXNwbGF5X3Bvd2VyX2RvbWFpbiBkb21h aW47CkBAIC03NzgwLDE3ICs3NzgwLDE3IEBAIGJvb2wgaHN3X2NydGNfc3RhdGVfaXBzX2NhcGFi bGUoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJcmV0dXJuIHRy dWU7CiB9CiAKLXN0YXRpYyBib29sIGhzd19jb21wdXRlX2lwc19jb25maWcoc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCitzdGF0aWMgaW50IGhzd19jb21wdXRlX2lwc19jb25m aWcoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0KIAkJdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMt PmRldik7Ci0Jc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPQorCXN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0KIAkJdG9faW50ZWxfYXRvbWljX3N0YXRlKGNy dGNfc3RhdGUtPnVhcGkuc3RhdGUpOwotCWNvbnN0IHN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSAq Y2RjbGtfc3RhdGUgPQotCQkmaW50ZWxfc3RhdGUtPmNkY2xrX3N0YXRlOworCisJY3J0Y19zdGF0 ZS0+aXBzX2VuYWJsZWQgPSBmYWxzZTsKIAogCWlmICghaHN3X2NydGNfc3RhdGVfaXBzX2NhcGFi bGUoY3J0Y19zdGF0ZSkpCi0JCXJldHVybiBmYWxzZTsKKwkJcmV0dXJuIDA7CiAKIAkvKgogCSAq IFdoZW4gSVBTIGdldHMgZW5hYmxlZCwgdGhlIHBpcGUgQ1JDIGNoYW5nZXMuIFNpbmNlIElQUyBn ZXRzCkBAIC03Nzk5LDE4ICs3Nzk5LDI3IEBAIHN0YXRpYyBib29sIGhzd19jb21wdXRlX2lwc19j b25maWcoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJICogY29tcGxldGVs eSBkaXNhYmxlIGl0LgogCSAqLwogCWlmIChjcnRjX3N0YXRlLT5jcmNfZW5hYmxlZCkKLQkJcmV0 dXJuIGZhbHNlOworCQlyZXR1cm4gMDsKIAogCS8qIElQUyBzaG91bGQgYmUgZmluZSBhcyBsb25n IGFzIGF0IGxlYXN0IG9uZSBwbGFuZSBpcyBlbmFibGVkLiAqLwogCWlmICghKGNydGNfc3RhdGUt PmFjdGl2ZV9wbGFuZXMgJiB+QklUKFBMQU5FX0NVUlNPUikpKQotCQlyZXR1cm4gZmFsc2U7CisJ CXJldHVybiAwOwogCi0JLyogcGl4ZWwgcmF0ZSBtdXN0bid0IGV4Y2VlZCA5NSUgb2YgY2RjbGsg d2l0aCBJUFMgb24gQkRXICovCi0JaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikgJiYKLQkgICAg Y3J0Y19zdGF0ZS0+cGl4ZWxfcmF0ZSA+IGNkY2xrX3N0YXRlLT5sb2dpY2FsLmNkY2xrICogOTUg LyAxMDApCi0JCXJldHVybiBmYWxzZTsKKwlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkgewor CQljb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlOwogCi0JcmV0dXJu IHRydWU7CisJCWNkY2xrX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9jZGNsa19zdGF0ZShzdGF0 ZSk7CisJCWlmIChJU19FUlIoY2RjbGtfc3RhdGUpKQorCQkJcmV0dXJuIFBUUl9FUlIoY2RjbGtf c3RhdGUpOworCisJCS8qIHBpeGVsIHJhdGUgbXVzdG4ndCBleGNlZWQgOTUlIG9mIGNkY2xrIHdp dGggSVBTIG9uIEJEVyAqLworCQlpZiAoY3J0Y19zdGF0ZS0+cGl4ZWxfcmF0ZSA+IGNkY2xrX3N0 YXRlLT5sb2dpY2FsLmNkY2xrICogOTUgLyAxMDApCisJCQlyZXR1cm4gMDsKKwl9CisKKwljcnRj X3N0YXRlLT5pcHNfZW5hYmxlZCA9IHRydWU7CisKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGJv b2wgaW50ZWxfY3J0Y19zdXBwb3J0c19kb3VibGVfd2lkZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YykKQEAgLTEyNTQzLDE0ICsxMjU1MiwxMSBAQCBzdGF0aWMgdTE2IGhzd19saW5ldGlt ZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAkJCQkgYWRq dXN0ZWRfbW9kZS0+Y3J0Y19jbG9jayk7CiB9CiAKLXN0YXRpYyB1MTYgaHN3X2lwc19saW5ldGlt ZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3N0YXRpYyB1 MTYgaHN3X2lwc19saW5ldGltZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xr X3N0YXRlKQogewotCWNvbnN0IHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0KLQkJ dG9faW50ZWxfYXRvbWljX3N0YXRlKGNydGNfc3RhdGUtPnVhcGkuc3RhdGUpOwogCWNvbnN0IHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KIAkJJmNydGNfc3RhdGUtPmh3 LmFkanVzdGVkX21vZGU7Ci0JY29uc3Qgc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNsa19z dGF0ZSA9Ci0JCSZzdGF0ZS0+Y2RjbGtfc3RhdGU7CiAKIAlpZiAoIWNydGNfc3RhdGUtPmh3LmVu YWJsZSkKIAkJcmV0dXJuIDA7CkBAIC0xMjU4MCw2ICsxMjU4NiwzMiBAQCBzdGF0aWMgdTE2IHNr bF9saW5ldGltZV93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK IAlyZXR1cm4gbGluZXRpbWVfd207CiB9CiAKK3N0YXRpYyBpbnQgaHN3X2NvbXB1dGVfbGluZXRp bWVfd20oc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUsCisJCQkJICAgc3RydWN0IGlu dGVsX2NydGMgKmNydGMpCit7CisJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShjcnRjLT5iYXNlLmRldik7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNf c3RhdGUgPQorCQlpbnRlbF9hdG9taWNfZ2V0X25ld19jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsK Kwljb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUgKmNkY2xrX3N0YXRlOworCisJaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPj0gOSkKKwkJY3J0Y19zdGF0ZS0+bGluZXRpbWUgPSBza2xfbGlu ZXRpbWVfd20oY3J0Y19zdGF0ZSk7CisJZWxzZQorCQljcnRjX3N0YXRlLT5saW5ldGltZSA9IGhz d19saW5ldGltZV93bShjcnRjX3N0YXRlKTsKKworCWlmICghaHN3X2NydGNfc3VwcG9ydHNfaXBz KGNydGMpKQorCQlyZXR1cm4gMDsKKworCWNkY2xrX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9j ZGNsa19zdGF0ZShzdGF0ZSk7CisJaWYgKElTX0VSUihjZGNsa19zdGF0ZSkpCisJCXJldHVybiBQ VFJfRVJSKGNkY2xrX3N0YXRlKTsKKworCWNydGNfc3RhdGUtPmlwc19saW5ldGltZSA9IGhzd19p cHNfbGluZXRpbWVfd20oY3J0Y19zdGF0ZSwKKwkJCQkJCSAgICAgICBjZGNsa19zdGF0ZSk7CisK KwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBpbnRlbF9jcnRjX2F0b21pY19jaGVjayhzdHJ1 Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCQkgICBzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YykKIHsKQEAgLTEyNjE1LDcgKzEyNjQ3LDYgQEAgc3RhdGljIGludCBpbnRlbF9jcnRjX2F0 b21pY19jaGVjayhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSwKIAkJCXJldHVybiBy ZXQ7CiAJfQogCi0JcmV0ID0gMDsKIAlpZiAoZGV2X3ByaXYtPmRpc3BsYXkuY29tcHV0ZV9waXBl X3dtKSB7CiAJCXJldCA9IGRldl9wcml2LT5kaXNwbGF5LmNvbXB1dGVfcGlwZV93bShjcnRjX3N0 YXRlKTsKIAkJaWYgKHJldCkgewpAQCAtMTI2NDYsMjAgKzEyNjc3LDI1IEBAIHN0YXRpYyBpbnQg aW50ZWxfY3J0Y19hdG9taWNfY2hlY2soc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUs CiAJCWlmICghcmV0KQogCQkJcmV0ID0gaW50ZWxfYXRvbWljX3NldHVwX3NjYWxlcnMoZGV2X3By aXYsIGNydGMsCiAJCQkJCQkJIGNydGNfc3RhdGUpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJl dDsKIAl9CiAKLQlpZiAoSEFTX0lQUyhkZXZfcHJpdikpCi0JCWNydGNfc3RhdGUtPmlwc19lbmFi bGVkID0gaHN3X2NvbXB1dGVfaXBzX2NvbmZpZyhjcnRjX3N0YXRlKTsKKwlpZiAoSEFTX0lQUyhk ZXZfcHJpdikpIHsKKwkJcmV0ID0gaHN3X2NvbXB1dGVfaXBzX2NvbmZpZyhjcnRjX3N0YXRlKTsK KwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CisJfQorCisJaWYgKElOVEVMX0dFTihkZXZfcHJp dikgPj0gOSB8fAorCSAgICBJU19CUk9BRFdFTEwoZGV2X3ByaXYpIHx8IElTX0hBU1dFTEwoZGV2 X3ByaXYpKSB7CisJCXJldCA9IGhzd19jb21wdXRlX2xpbmV0aW1lX3dtKHN0YXRlLCBjcnRjKTsK KwkJaWYgKHJldCkKKwkJCXJldHVybiByZXQ7CiAKLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+ PSA5KSB7Ci0JCWNydGNfc3RhdGUtPmxpbmV0aW1lID0gc2tsX2xpbmV0aW1lX3dtKGNydGNfc3Rh dGUpOwotCX0gZWxzZSBpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSB8fCBJU19IQVNXRUxMKGRl dl9wcml2KSkgewotCQljcnRjX3N0YXRlLT5saW5ldGltZSA9IGhzd19saW5ldGltZV93bShjcnRj X3N0YXRlKTsKLQkJaWYgKGhzd19jcnRjX3N1cHBvcnRzX2lwcyhjcnRjKSkKLQkJCWNydGNfc3Rh dGUtPmlwc19saW5ldGltZSA9IGhzd19pcHNfbGluZXRpbWVfd20oY3J0Y19zdGF0ZSk7CiAJfQog Ci0JcmV0dXJuIHJldDsKKwlyZXR1cm4gMDsKIH0KIAogc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNl dF91cGRhdGVfY29ubmVjdG9yX2F0b21pY19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQpA QCAtMTQ0NzgsNyArMTQ1MTQsNyBAQCBzdGF0aWMgYm9vbCBhY3RpdmVfcGxhbmVzX2FmZmVjdHNf bWluX2NkY2xrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIH0KIAogc3RhdGlj IGludCBpbnRlbF9hdG9taWNfY2hlY2tfcGxhbmVzKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUg KnN0YXRlLAotCQkJCSAgICAgYm9vbCAqbmVlZF9tb2Rlc2V0KQorCQkJCSAgICAgYm9vbCAqbmVl ZF9jZGNsa19jYWxjKQogewogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2Ny dGNfc3RhdGUsICpuZXdfY3J0Y19zdGF0ZTsKQEAgLTE0NTMyLDggKzE0NTY4LDExIEBAIHN0YXRp YyBpbnQgaW50ZWxfYXRvbWljX2NoZWNrX3BsYW5lcyhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRl ICpzdGF0ZSwKIAkgKiBhZmZlY3RlZCBwbGFuZXMgYXJlIHBhcnQgb2YgdGhlIHN0YXRlLiBXZSBj YW4gbm93CiAJICogY29tcHV0ZSB0aGUgbWluaW11bSBjZGNsayBmb3IgZWFjaCBwbGFuZS4KIAkg Ki8KLQlmb3JfZWFjaF9uZXdfaW50ZWxfcGxhbmVfaW5fc3RhdGUoc3RhdGUsIHBsYW5lLCBwbGFu ZV9zdGF0ZSwgaSkKLQkJKm5lZWRfbW9kZXNldCB8PSBpbnRlbF9wbGFuZV9jYWxjX21pbl9jZGNs ayhzdGF0ZSwgcGxhbmUpOworCWZvcl9lYWNoX25ld19pbnRlbF9wbGFuZV9pbl9zdGF0ZShzdGF0 ZSwgcGxhbmUsIHBsYW5lX3N0YXRlLCBpKSB7CisJCXJldCA9IGludGVsX3BsYW5lX2NhbGNfbWlu X2NkY2xrKHN0YXRlLCBwbGFuZSwgbmVlZF9jZGNsa19jYWxjKTsKKwkJaWYgKHJldCkKKwkJCXJl dHVybiByZXQ7CisJfQogCiAJcmV0dXJuIDA7CiB9CkBAIC0xNDY1NCw2ICsxNDY5Myw3IEBAIHN0 YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKF9zdGF0ZSk7 CiAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLCAqbmV3X2NydGNfc3Rh dGU7CisJc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpuZXdfY2RjbGtfc3RhdGU7CiAJc3RydWN0 IGludGVsX2NydGMgKmNydGM7CiAJaW50IHJldCwgaTsKIAlib29sIGFueV9tcyA9IGZhbHNlOwpA QCAtMTQ3NjYsMTggKzE0ODA2LDE4IEBAIHN0YXRpYyBpbnQgaW50ZWxfYXRvbWljX2NoZWNrKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJaWYgKHJldCkKIAkJZ290byBmYWlsOwogCi0JYW55X21z IHw9IHN0YXRlLT5jZGNsa19zdGF0ZS5mb3JjZV9taW5fY2RjbGtfY2hhbmdlZDsKLQogCXJldCA9 IGludGVsX2F0b21pY19jaGVja19wbGFuZXMoc3RhdGUsICZhbnlfbXMpOwogCWlmIChyZXQpCiAJ CWdvdG8gZmFpbDsKIAorCW5ld19jZGNsa19zdGF0ZSA9IGludGVsX2F0b21pY19nZXRfbmV3X2Nk Y2xrX3N0YXRlKHN0YXRlKTsKKwlpZiAobmV3X2NkY2xrX3N0YXRlICYmIG5ld19jZGNsa19zdGF0 ZS0+Zm9yY2VfbWluX2NkY2xrX2NoYW5nZWQpCisJCWFueV9tcyA9IHRydWU7CisKIAlpZiAoYW55 X21zKSB7CiAJCXJldCA9IGludGVsX21vZGVzZXRfY2hlY2tzKHN0YXRlKTsKIAkJaWYgKHJldCkK IAkJCWdvdG8gZmFpbDsKLQl9IGVsc2UgewotCQlzdGF0ZS0+Y2RjbGtfc3RhdGUubG9naWNhbCA9 IGRldl9wcml2LT5jZGNsa19zdGF0ZS5sb2dpY2FsOwogCX0KIAogCXJldCA9IGludGVsX2F0b21p Y19jaGVja19jcnRjcyhzdGF0ZSk7CkBAIC0xNTY3Niw4ICsxNTcxNiw2IEBAIHN0YXRpYyBpbnQg aW50ZWxfYXRvbWljX2NvbW1pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQlhc3NlcnRfZ2xv YmFsX3N0YXRlX2xvY2tlZChkZXZfcHJpdik7CiAKIAkJZGV2X3ByaXYtPmFjdGl2ZV9waXBlcyA9 IHN0YXRlLT5hY3RpdmVfcGlwZXM7Ci0KLQkJaW50ZWxfY2RjbGtfc3dhcF9zdGF0ZShzdGF0ZSk7 CiAJfQogCiAJZHJtX2F0b21pY19zdGF0ZV9nZXQoJnN0YXRlLT5iYXNlKTsKQEAgLTE3MzU2LDcg KzE3Mzk0LDcgQEAgdm9pZCBpbnRlbF9pbml0X2Rpc3BsYXlfaG9va3Moc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2KQogdm9pZCBpbnRlbF9tb2Rlc2V0X2luaXRfaHcoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUpCiB7CiAJc3RydWN0IGludGVsX2NkY2xrX3N0YXRlICpjZGNs a19zdGF0ZSA9Ci0JCSZpOTE1LT5jZGNsa19zdGF0ZTsKKwkJdG9faW50ZWxfY2RjbGtfc3RhdGUo aTkxNS0+Y2RjbGsub2JqLnN0YXRlKTsKIAogCWludGVsX3VwZGF0ZV9jZGNsayhpOTE1KTsKIAlp bnRlbF9kdW1wX2NkY2xrX2NvbmZpZygmaTkxNS0+Y2RjbGsuaHcsICJDdXJyZW50IENEQ0xLIik7 CkBAIC0xNzU4Nyw2ICsxNzYyNSwxMCBAQCBpbnQgaW50ZWxfbW9kZXNldF9pbml0KHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICppOTE1KQogCiAJaW50ZWxfbW9kZV9jb25maWdfaW5pdChpOTE1KTsK IAorCXJldCA9IGludGVsX2NkY2xrX2luaXQoaTkxNSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJl dDsKKwogCXJldCA9IGludGVsX2J3X2luaXQoaTkxNSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIHJl dDsKQEAgLTE4MDcxLDYgKzE4MTEzLDggQEAgc3RhdGljIHZvaWQgcmVhZG91dF9wbGFuZV9zdGF0 ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiBzdGF0aWMgdm9pZCBpbnRlbF9t b2Rlc2V0X3JlYWRvdXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIHsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJc3RydWN0IGlu dGVsX2NkY2xrX3N0YXRlICpjZGNsa19zdGF0ZSA9CisJCXRvX2ludGVsX2NkY2xrX3N0YXRlKGRl dl9wcml2LT5jZGNsay5vYmouc3RhdGUpOwogCWVudW0gcGlwZSBwaXBlOwogCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjOwogCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwpAQCAtMTgxOTAs OCArMTgyMzQsNiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3JlYWRvdXRfaHdfc3RhdGUo c3RydWN0IGRybV9kZXZpY2UgKmRldikKIAlmb3JfZWFjaF9pbnRlbF9jcnRjKGRldiwgY3J0Yykg ewogCQlzdHJ1Y3QgaW50ZWxfYndfc3RhdGUgKmJ3X3N0YXRlID0KIAkJCXRvX2ludGVsX2J3X3N0 YXRlKGRldl9wcml2LT5id19vYmouc3RhdGUpOwotCQlzdHJ1Y3QgaW50ZWxfY2RjbGtfc3RhdGUg KmNkY2xrX3N0YXRlID0KLQkJCSZkZXZfcHJpdi0+Y2RjbGtfc3RhdGU7CiAJCXN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlID0KIAkJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+ YmFzZS5zdGF0ZSk7CiAJCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaCBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCmluZGV4IDYyOGM0 YTU2YTllOS4uNTI0YjZkNTIzNWVlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9k aXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaApAQCAtNDY1LDggKzQ2NSw2IEBAIHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgewogCXN0cnVjdCBfX2ludGVsX2dsb2JhbF9vYmpzX3N0YXRlICpn bG9iYWxfb2JqczsKIAlpbnQgbnVtX2dsb2JhbF9vYmpzOwogCi0Jc3RydWN0IGludGVsX2NkY2xr X3N0YXRlIGNkY2xrX3N0YXRlOwotCiAJYm9vbCBkcGxsX3NldCwgbW9kZXNldDsKIAogCS8qCkBA IC00OTMsNyArNDkxLDYgQEAgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSB7CiAKIAkvKgogCSAq IGFjdGl2ZV9waXBlcwotCSAqIGNkY2xrX3N0YXRlCiAJICovCiAJYm9vbCBnbG9iYWxfc3RhdGVf Y2hhbmdlZDsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggNjNjZGE4OWE0ZTYyLi4yZTZi MTQ5NDc4YzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtNjUsNyArNjUsNiBAQAogI2lu Y2x1ZGUgImk5MTVfdXRpbHMuaCIKIAogI2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfYmlvcy5oIgot I2luY2x1ZGUgImRpc3BsYXkvaW50ZWxfY2RjbGsuaCIKICNpbmNsdWRlICJkaXNwbGF5L2ludGVs X2Rpc3BsYXkuaCIKICNpbmNsdWRlICJkaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuaCIKICNp bmNsdWRlICJkaXNwbGF5L2ludGVsX2RwbGxfbWdyLmgiCkBAIC0yNTgsNyArMjU3LDggQEAgc3Ry dWN0IGludGVsX2Nvbm5lY3RvcjsKIHN0cnVjdCBpbnRlbF9lbmNvZGVyOwogc3RydWN0IGludGVs X2F0b21pY19zdGF0ZTsKIHN0cnVjdCBpbnRlbF9jZGNsa19jb25maWc7Ci1zdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZTsKK3N0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZTsKK3N0cnVjdCBpbnRlbF9jZGNs a192YWxzOwogc3RydWN0IGludGVsX2luaXRpYWxfcGxhbmVfY29uZmlnOwogc3RydWN0IGludGVs X2NydGM7CiBzdHJ1Y3QgaW50ZWxfbGltaXQ7CkBAIC0yODIsNyArMjgyLDcgQEAgc3RydWN0IGRy bV9pOTE1X2Rpc3BsYXlfZnVuY3MgewogCQkJCSAgICBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7 CiAJaW50ICgqY29tcHV0ZV9nbG9iYWxfd2F0ZXJtYXJrcykoc3RydWN0IGludGVsX2F0b21pY19z dGF0ZSAqc3RhdGUpOwogCXZvaWQgKCp1cGRhdGVfd20pKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRj KTsKLQlpbnQgKCptb2Rlc2V0X2NhbGNfY2RjbGspKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUg KnN0YXRlKTsKKwlpbnQgKCptb2Rlc2V0X2NhbGNfY2RjbGspKHN0cnVjdCBpbnRlbF9jZGNsa19z dGF0ZSAqc3RhdGUpOwogCXU4ICgqY2FsY192b2x0YWdlX2xldmVsKShpbnQgY2RjbGspOwogCS8q IFJldHVybnMgdGhlIGFjdGl2ZSBzdGF0ZSBvZiB0aGUgY3J0YywgYW5kIGlmIHRoZSBjcnRjIGlz IGFjdGl2ZSwKIAkgKiBmaWxscyBvdXQgdGhlIHBpcGUtY29uZmlnIHdpdGggdGhlIGh3IHN0YXRl LiAqLwpAQCAtODkxLDMzICs4OTEsNiBAQCBzdHJ1Y3QgaTkxNV9zZWxmdGVzdF9zdGFzaCB7CiAJ YXRvbWljX3QgY291bnRlcjsKIH07CiAKLXN0cnVjdCBpbnRlbF9jZGNsa19zdGF0ZSB7Ci0JLyoK LQkgKiBMb2dpY2FsIGNvbmZpZ3VyYXRpb24gb2YgY2RjbGsgKHVzZWQgZm9yIGFsbCBzY2FsaW5n LAotCSAqIHdhdGVybWFyaywgZXRjLiBjYWxjdWxhdGlvbnMgYW5kIGNoZWNrcykuIFRoaXMgaXMK LQkgKiBjb21wdXRlZCBhcyBpZiBhbGwgZW5hYmxlZCBjcnRjcyB3ZXJlIGFjdGl2ZS4KLQkgKi8K LQlzdHJ1Y3QgaW50ZWxfY2RjbGtfY29uZmlnIGxvZ2ljYWw7Ci0KLQkvKgotCSAqIEFjdHVhbCBj b25maWd1cmF0aW9uIG9mIGNkY2xrLCBjYW4gYmUgZGlmZmVyZW50IGZyb20gdGhlCi0JICogbG9n aWNhbCBjb25maWd1cmF0aW9uIG9ubHkgd2hlbiBhbGwgY3J0YydzIGFyZSBEUE1TIG9mZi4KLQkg Ki8KLQlzdHJ1Y3QgaW50ZWxfY2RjbGtfY29uZmlnIGFjdHVhbDsKLQotCS8qIG1pbmltdW0gYWNj ZXB0YWJsZSBjZGNsayBmb3IgZWFjaCBwaXBlICovCi0JaW50IG1pbl9jZGNsa1tJOTE1X01BWF9Q SVBFU107Ci0JLyogbWluaW11bSBhY2NlcHRhYmxlIHZvbHRhZ2UgbGV2ZWwgZm9yIGVhY2ggcGlw ZSAqLwotCXU4IG1pbl92b2x0YWdlX2xldmVsW0k5MTVfTUFYX1BJUEVTXTsKLQotCS8qIHBpcGUg dG8gd2hpY2ggY2QyeCB1cGRhdGUgaXMgc3luY2hyb25pemVkICovCi0JZW51bSBwaXBlIHBpcGU7 Ci0KLQkvKiBmb3JjZWQgbWluaW11bSBjZGNsayBmb3IgZ2xrKyBhdWRpbyB3L2EgKi8KLQlpbnQg Zm9yY2VfbWluX2NkY2xrOwotCWJvb2wgZm9yY2VfbWluX2NkY2xrX2NoYW5nZWQ7Ci19OwotCiBz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJc3RydWN0IGRybV9kZXZpY2UgZHJtOwogCkBAIC0x MDM0LDE4ICsxMDA3LDE0IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAl1bnNpZ25lZCBp bnQgZmRpX3BsbF9mcmVxOwogCXVuc2lnbmVkIGludCBjemNsa19mcmVxOwogCi0JLyoKLQkgKiBG b3IgcmVhZGluZyBob2xkaW5nIGFueSBjcnRjIGxvY2sgaXMgc3VmZmljaWVudCwKLQkgKiBmb3Ig d3JpdGluZyBtdXN0IGhvbGQgYWxsIG9mIHRoZW0uCi0JICovCi0Jc3RydWN0IGludGVsX2NkY2xr X3N0YXRlIGNkY2xrX3N0YXRlOwotCiAJc3RydWN0IHsKIAkJLyogVGhlIGN1cnJlbnQgaGFyZHdh cmUgY2RjbGsgY29uZmlndXJhdGlvbiAqLwogCQlzdHJ1Y3QgaW50ZWxfY2RjbGtfY29uZmlnIGh3 OwogCiAJCS8qIGNkY2xrLCBkaXZpZGVyLCBhbmQgcmF0aW8gdGFibGUgZnJvbSBic3BlYyAqLwog CQljb25zdCBzdHJ1Y3QgaW50ZWxfY2RjbGtfdmFscyAqdGFibGU7CisKKwkJc3RydWN0IGludGVs X2dsb2JhbF9vYmogb2JqOwogCX0gY2RjbGs7CiAKIAkvKioKQEAgLTExMDQsOCArMTA3Myw4IEBA IHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAlzdHJ1Y3QgbGlzdF9oZWFkIGdsb2JhbF9vYmpf bGlzdDsKIAogCS8qCi0JICogRm9yIHJlYWRpbmcgYWN0aXZlX3BpcGVzLCBjZGNsa19zdGF0ZSBo b2xkaW5nIGFueSBjcnRjCi0JICogbG9jayBpcyBzdWZmaWNpZW50LCBmb3Igd3JpdGluZyBtdXN0 IGhvbGQgYWxsIG9mIHRoZW0uCisJICogRm9yIHJlYWRpbmcgYWN0aXZlX3BpcGVzIGhvbGRpbmcg YW55IGNydGMgbG9jayBpcworCSAqIHN1ZmZpY2llbnQsIGZvciB3cml0aW5nIG11c3QgaG9sZCBh bGwgb2YgdGhlbS4KIAkgKi8KIAl1OCBhY3RpdmVfcGlwZXM7CiAKLS0gCjIuMjQuMQoKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==