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=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, 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 AF49AC3F68F for ; Tue, 21 Jan 2020 17:11:35 +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 90CCD24656 for ; Tue, 21 Jan 2020 17:11:35 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 90CCD24656 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 354896EDD4; Tue, 21 Jan 2020 17:11:35 +0000 (UTC) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id EEB776EDDA for ; Tue, 21 Jan 2020 17:11:33 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 21 Jan 2020 09:11:33 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,346,1574150400"; d="scan'208";a="215604395" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by orsmga007.jf.intel.com with SMTP; 21 Jan 2020 09:11:31 -0800 Received: by stinkbox (sSMTP sendmail emulation); Tue, 21 Jan 2020 19:11:30 +0200 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Date: Tue, 21 Jan 2020 19:10:59 +0200 Message-Id: <20200121171100.4370-11-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200121171100.4370-1-ville.syrjala@linux.intel.com> References: <20200121171100.4370-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH 10/11] drm/i915: Stash hpd status bits under dev_priv 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" RnJvbTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KCklu c3RlYWQgb2YgY29uc3RuYW50bHkgaGF2aW5nIHRvIGZpZ3VyZSBvdXQgd2hpY2ggaHBkIHN0YXR1 cyBiaXQKYXJyYXkgdG8gdXNlIGxldCdzIHN0b3JlIHRoZW0gdW5kZXIgZGV2X3ByaXYuCgpTaG91 bGQgcGVyaGFwcyB0YWtlIHRoaXMgZnVydGhlciBhbmQgc3Rhc2ggZXZlbiBtb3JlIHN0dWZmIHRv Cm1ha2UgdGhlIGhwZCBoYW5kbGluZyBtb3JlIGFic3RyYWN0IHlldC4KClNpZ25lZC1vZmYtYnk6 IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Ci0tLQogZHJp dmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCB8ICAgMiArCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2lycS5jIHwgMTk4ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAyIGZp bGVzIGNoYW5nZWQsIDExMSBpbnNlcnRpb25zKCspLCA4OSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaAppbmRleCAwNzdhZjIyYjgzNDAuLjI4OTNkOWEyNWFkNSAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCkBAIC0xNDQsNiArMTQ0LDggQEAgZW51bSBocGRfcGluIHsKIHN0cnVj dCBpOTE1X2hvdHBsdWcgewogCXN0cnVjdCBkZWxheWVkX3dvcmsgaG90cGx1Z193b3JrOwogCisJ Y29uc3QgdTMyICpocGQsICpwY2hfaHBkOworCiAJc3RydWN0IHsKIAkJdW5zaWduZWQgbG9uZyBs YXN0X2ppZmZpZXM7CiAJCWludCBjb3VudDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCmluZGV4IDgw OTFkNThmMDM5Mi4uMDg1MzBkYzI5MWM0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X2lycS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKQEAgLTEy NSw3ICsxMjUsNiBAQCBzdGF0aWMgY29uc3QgdTMyIGhwZF9zdGF0dXNfaTkxNVtIUERfTlVNX1BJ TlNdID0gewogCVtIUERfUE9SVF9EXSA9IFBPUlREX0hPVFBMVUdfSU5UX1NUQVRVUywKIH07CiAK LS8qIEJYVCBocGQgbGlzdCAqLwogc3RhdGljIGNvbnN0IHUzMiBocGRfYnh0W0hQRF9OVU1fUElO U10gPSB7CiAJW0hQRF9QT1JUX0FdID0gQlhUX0RFX1BPUlRfSFBfRERJQSwKIAlbSFBEX1BPUlRf Ql0gPSBCWFRfREVfUE9SVF9IUF9ERElCLApAQCAtMTY5LDYgKzE2OCw0NCBAQCBzdGF0aWMgY29u c3QgdTMyIGhwZF90Z3BbSFBEX05VTV9QSU5TXSA9IHsKIAlbSFBEX1BPUlRfSV0gPSBTREVfVENf SE9UUExVR19JQ1AoUE9SVF9UQzYpLAogfTsKIAorc3RhdGljIHZvaWQgaW50ZWxfaHBkX2luaXRf cGlucyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCit7CisJc3RydWN0IGk5MTVf aG90cGx1ZyAqaHBkID0gJmRldl9wcml2LT5ob3RwbHVnOworCisJaWYgKEhBU19HTUNIKGRldl9w cml2KSkgeworCQlpZiAoSVNfRzRYKGRldl9wcml2KSB8fCBJU19WQUxMRVlWSUVXKGRldl9wcml2 KSB8fAorCQkgICAgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCisJCQlocGQtPmhwZCA9IGhwZF9z dGF0dXNfZzR4OworCQllbHNlCisJCQlocGQtPmhwZCA9IGhwZF9zdGF0dXNfaTkxNTsKKwkJcmV0 dXJuOworCX0KKworCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyKQorCQlocGQtPmhwZCA9 IGhwZF9nZW4xMjsKKwllbHNlIGlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKQorCQlocGQt PmhwZCA9IGhwZF9nZW4xMTsKKwllbHNlIGlmIChJU19HRU45X0xQKGRldl9wcml2KSkKKwkJaHBk LT5ocGQgPSBocGRfYnh0OworCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gOCkKKwkJ aHBkLT5ocGQgPSBocGRfYmR3OworCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNykK KwkJaHBkLT5ocGQgPSBocGRfaXZiOworCWVsc2UKKwkJaHBkLT5ocGQgPSBocGRfaWxrOworCisJ aWYgKEhBU19QQ0hfVEdQKGRldl9wcml2KSB8fCBIQVNfUENIX0pTUChkZXZfcHJpdikpCisJCWhw ZC0+cGNoX2hwZCA9IGhwZF90Z3A7CisJZWxzZSBpZiAoSEFTX1BDSF9JQ1AoZGV2X3ByaXYpIHx8 IEhBU19QQ0hfTUNDKGRldl9wcml2KSkKKwkJaHBkLT5wY2hfaHBkID0gaHBkX2ljcDsKKwllbHNl IGlmIChIQVNfUENIX1NQVChkZXZfcHJpdikpCisJCWhwZC0+cGNoX2hwZCA9IGhwZF9zcHQ7CisJ ZWxzZSBpZiAoSEFTX1BDSF9MUFQoZGV2X3ByaXYpIHx8IEhBU19QQ0hfQ1BUKGRldl9wcml2KSkK KwkJaHBkLT5wY2hfaHBkID0gaHBkX2NwdDsKKwllbHNlIGlmIChIQVNfUENIX0lCWChkZXZfcHJp dikpCisJCWhwZC0+cGNoX2hwZCA9IGhwZF9pYng7Cit9CisKIHZvaWQgZ2VuM19pcnFfcmVzZXQo c3RydWN0IGludGVsX3VuY29yZSAqdW5jb3JlLCBpOTE1X3JlZ190IGltciwKIAkJICAgIGk5MTVf cmVnX3QgaWlyLCBpOTE1X3JlZ190IGllcikKIHsKQEAgLTE0NzQsMzMgKzE1MTEsMjcgQEAgc3Rh dGljIHZvaWQgaTl4eF9ocGRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCQkJCSB1MzIgaG90cGx1Z19zdGF0dXMpCiB7CiAJdTMyIHBpbl9tYXNrID0gMCwg bG9uZ19tYXNrID0gMDsKKwl1MzIgaG90cGx1Z190cmlnZ2VyOwogCi0JaWYgKElTX0c0WChkZXZf cHJpdikgfHwgSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwKLQkgICAgSVNfQ0hFUlJZVklFVyhk ZXZfcHJpdikpIHsKLQkJdTMyIGhvdHBsdWdfdHJpZ2dlciA9IGhvdHBsdWdfc3RhdHVzICYgSE9U UExVR19JTlRfU1RBVFVTX0c0WDsKKwlpZiAoSVNfRzRYKGRldl9wcml2KSB8fAorCSAgICBJU19W QUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKKwkJaG90cGx1 Z190cmlnZ2VyID0gaG90cGx1Z19zdGF0dXMgJiBIT1RQTFVHX0lOVF9TVEFUVVNfRzRYOworCWVs c2UKKwkJaG90cGx1Z190cmlnZ2VyID0gaG90cGx1Z19zdGF0dXMgJiBIT1RQTFVHX0lOVF9TVEFU VVNfSTkxNTsKIAotCQlpZiAoaG90cGx1Z190cmlnZ2VyKSB7Ci0JCQlpbnRlbF9nZXRfaHBkX3Bp bnMoZGV2X3ByaXYsICZwaW5fbWFzaywgJmxvbmdfbWFzaywKLQkJCQkJICAgaG90cGx1Z190cmln Z2VyLCBob3RwbHVnX3RyaWdnZXIsCi0JCQkJCSAgIGhwZF9zdGF0dXNfZzR4LAotCQkJCQkgICBp OXh4X3BvcnRfaG90cGx1Z19sb25nX2RldGVjdCk7CisJaWYgKGhvdHBsdWdfdHJpZ2dlcikgewor CQlpbnRlbF9nZXRfaHBkX3BpbnMoZGV2X3ByaXYsICZwaW5fbWFzaywgJmxvbmdfbWFzaywKKwkJ CQkgICBob3RwbHVnX3RyaWdnZXIsIGhvdHBsdWdfdHJpZ2dlciwKKwkJCQkgICBkZXZfcHJpdi0+ aG90cGx1Zy5ocGQsCisJCQkJICAgaTl4eF9wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QpOwogCi0J CQlpbnRlbF9ocGRfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIHBpbl9tYXNrLCBsb25nX21hc2spOwot CQl9Ci0KLQkJaWYgKGhvdHBsdWdfc3RhdHVzICYgRFBfQVVYX0NIQU5ORUxfTUFTS19JTlRfU1RB VFVTX0c0WCkKLQkJCWRwX2F1eF9pcnFfaGFuZGxlcihkZXZfcHJpdik7Ci0JfSBlbHNlIHsKLQkJ dTMyIGhvdHBsdWdfdHJpZ2dlciA9IGhvdHBsdWdfc3RhdHVzICYgSE9UUExVR19JTlRfU1RBVFVT X0k5MTU7Ci0KLQkJaWYgKGhvdHBsdWdfdHJpZ2dlcikgewotCQkJaW50ZWxfZ2V0X2hwZF9waW5z KGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssCi0JCQkJCSAgIGhvdHBsdWdfdHJpZ2dl ciwgaG90cGx1Z190cmlnZ2VyLAotCQkJCQkgICBocGRfc3RhdHVzX2k5MTUsCi0JCQkJCSAgIGk5 eHhfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KTsKLQkJCWludGVsX2hwZF9pcnFfaGFuZGxlcihk ZXZfcHJpdiwgcGluX21hc2ssIGxvbmdfbWFzayk7Ci0JCX0KKwkJaW50ZWxfaHBkX2lycV9oYW5k bGVyKGRldl9wcml2LCBwaW5fbWFzaywgbG9uZ19tYXNrKTsKIAl9CisKKwlpZiAoKElTX0c0WChk ZXZfcHJpdikgfHwKKwkgICAgIElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJ RVcoZGV2X3ByaXYpKSAmJgorCSAgICBob3RwbHVnX3N0YXR1cyAmIERQX0FVWF9DSEFOTkVMX01B U0tfSU5UX1NUQVRVU19HNFgpCisJCWRwX2F1eF9pcnFfaGFuZGxlcihkZXZfcHJpdik7CiB9CiAK IHN0YXRpYyBpcnFyZXR1cm5fdCB2YWxsZXl2aWV3X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQg KmFyZykKQEAgLTE2NjksOCArMTcwMCw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBjaGVycnl2aWV3 X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIH0KIAogc3RhdGljIHZvaWQgaWJ4X2hw ZF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJdTMy IGhvdHBsdWdfdHJpZ2dlciwKLQkJCQljb25zdCB1MzIgaHBkW0hQRF9OVU1fUElOU10pCisJCQkJ dTMyIGhvdHBsdWdfdHJpZ2dlcikKIHsKIAl1MzIgZGlnX2hvdHBsdWdfcmVnLCBwaW5fbWFzayA9 IDAsIGxvbmdfbWFzayA9IDA7CiAKQEAgLTE2OTMsOCArMTcyMyw5IEBAIHN0YXRpYyB2b2lkIGli eF9ocGRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWlm ICghaG90cGx1Z190cmlnZ2VyKQogCQlyZXR1cm47CiAKLQlpbnRlbF9nZXRfaHBkX3BpbnMoZGV2 X3ByaXYsICZwaW5fbWFzaywgJmxvbmdfbWFzaywgaG90cGx1Z190cmlnZ2VyLAotCQkJICAgZGln X2hvdHBsdWdfcmVnLCBocGQsCisJaW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21h c2ssICZsb25nX21hc2ssCisJCQkgICBob3RwbHVnX3RyaWdnZXIsIGRpZ19ob3RwbHVnX3JlZywK KwkJCSAgIGRldl9wcml2LT5ob3RwbHVnLnBjaF9ocGQsCiAJCQkgICBwY2hfcG9ydF9ob3RwbHVn X2xvbmdfZGV0ZWN0KTsKIAogCWludGVsX2hwZF9pcnFfaGFuZGxlcihkZXZfcHJpdiwgcGluX21h c2ssIGxvbmdfbWFzayk7CkBAIC0xNzA1LDcgKzE3MzYsNyBAQCBzdGF0aWMgdm9pZCBpYnhfaXJx X2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcGNoX2lpcikK IAllbnVtIHBpcGUgcGlwZTsKIAl1MzIgaG90cGx1Z190cmlnZ2VyID0gcGNoX2lpciAmIFNERV9I T1RQTFVHX01BU0s7CiAKLQlpYnhfaHBkX2lycV9oYW5kbGVyKGRldl9wcml2LCBob3RwbHVnX3Ry aWdnZXIsIGhwZF9pYngpOworCWlieF9ocGRfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIGhvdHBsdWdf dHJpZ2dlcik7CiAKIAlpZiAocGNoX2lpciAmIFNERV9BVURJT19QT1dFUl9NQVNLKSB7CiAJCWlu dCBwb3J0ID0gZmZzKChwY2hfaWlyICYgU0RFX0FVRElPX1BPV0VSX01BU0spID4+CkBAIC0xNzkx LDcgKzE4MjIsNyBAQCBzdGF0aWMgdm9pZCBjcHRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcGNoX2lpcikKIAllbnVtIHBpcGUgcGlwZTsKIAl1MzIg aG90cGx1Z190cmlnZ2VyID0gcGNoX2lpciAmIFNERV9IT1RQTFVHX01BU0tfQ1BUOwogCi0JaWJ4 X2hwZF9pcnFfaGFuZGxlcihkZXZfcHJpdiwgaG90cGx1Z190cmlnZ2VyLCBocGRfY3B0KTsKKwlp YnhfaHBkX2lycV9oYW5kbGVyKGRldl9wcml2LCBob3RwbHVnX3RyaWdnZXIpOwogCiAJaWYgKHBj aF9paXIgJiBTREVfQVVESU9fUE9XRVJfTUFTS19DUFQpIHsKIAkJaW50IHBvcnQgPSBmZnMoKHBj aF9paXIgJiBTREVfQVVESU9fUE9XRVJfTUFTS19DUFQpID4+CkBAIC0xODI3LDIyICsxODU4LDE4 IEBAIHN0YXRpYyB2b2lkIGljcF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIHUzMiBwY2hfaWlyKQogCXUzMiBkZGlfaG90cGx1Z190cmlnZ2VyLCB0Y19ob3Rw bHVnX3RyaWdnZXI7CiAJdTMyIHBpbl9tYXNrID0gMCwgbG9uZ19tYXNrID0gMDsKIAlib29sICgq dGNfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KShlbnVtIGhwZF9waW4gcGluLCB1MzIgdmFsKTsK LQljb25zdCB1MzIgKnBpbnM7CiAKIAlpZiAoSEFTX1BDSF9UR1AoZGV2X3ByaXYpKSB7CiAJCWRk aV9ob3RwbHVnX3RyaWdnZXIgPSBwY2hfaWlyICYgU0RFX0RESV9NQVNLX1RHUDsKIAkJdGNfaG90 cGx1Z190cmlnZ2VyID0gcGNoX2lpciAmIFNERV9UQ19NQVNLX1RHUDsKIAkJdGNfcG9ydF9ob3Rw bHVnX2xvbmdfZGV0ZWN0ID0gdGdwX3RjX3BvcnRfaG90cGx1Z19sb25nX2RldGVjdDsKLQkJcGlu cyA9IGhwZF90Z3A7CiAJfSBlbHNlIGlmIChIQVNfUENIX0pTUChkZXZfcHJpdikpIHsKIAkJZGRp X2hvdHBsdWdfdHJpZ2dlciA9IHBjaF9paXIgJiBTREVfRERJX01BU0tfVEdQOwogCQl0Y19ob3Rw bHVnX3RyaWdnZXIgPSAwOwotCQlwaW5zID0gaHBkX3RncDsKIAl9IGVsc2UgaWYgKEhBU19QQ0hf TUNDKGRldl9wcml2KSkgewogCQlkZGlfaG90cGx1Z190cmlnZ2VyID0gcGNoX2lpciAmIFNERV9E RElfTUFTS19JQ1A7CiAJCXRjX2hvdHBsdWdfdHJpZ2dlciA9IHBjaF9paXIgJiBTREVfVENfSE9U UExVR19JQ1AoUE9SVF9UQzEpOwogCQl0Y19wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QgPSBpY3Bf dGNfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0OwotCQlwaW5zID0gaHBkX2ljcDsKIAl9IGVsc2Ug ewogCQlXQVJOKCFIQVNfUENIX0lDUChkZXZfcHJpdiksCiAJCSAgICAgIlVucmVjb2duaXplZCBQ Q0ggdHlwZSAweCV4XG4iLCBJTlRFTF9QQ0hfVFlQRShkZXZfcHJpdikpOwpAQCAtMTg1MCw3ICsx ODc3LDYgQEAgc3RhdGljIHZvaWQgaWNwX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgdTMyIHBjaF9paXIpCiAJCWRkaV9ob3RwbHVnX3RyaWdnZXIgPSBwY2hf aWlyICYgU0RFX0RESV9NQVNLX0lDUDsKIAkJdGNfaG90cGx1Z190cmlnZ2VyID0gcGNoX2lpciAm IFNERV9UQ19NQVNLX0lDUDsKIAkJdGNfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0ID0gaWNwX3Rj X3BvcnRfaG90cGx1Z19sb25nX2RldGVjdDsKLQkJcGlucyA9IGhwZF9pY3A7CiAJfQogCiAJaWYg KGRkaV9ob3RwbHVnX3RyaWdnZXIpIHsKQEAgLTE4NjAsOCArMTg4Niw4IEBAIHN0YXRpYyB2b2lk IGljcF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBw Y2hfaWlyKQogCQlJOTE1X1dSSVRFKFNIT1RQTFVHX0NUTF9EREksIGRpZ19ob3RwbHVnX3JlZyk7 CiAKIAkJaW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ss Ci0JCQkJICAgZGRpX2hvdHBsdWdfdHJpZ2dlciwKLQkJCQkgICBkaWdfaG90cGx1Z19yZWcsIHBp bnMsCisJCQkJICAgZGRpX2hvdHBsdWdfdHJpZ2dlciwgZGlnX2hvdHBsdWdfcmVnLAorCQkJCSAg IGRldl9wcml2LT5ob3RwbHVnLnBjaF9ocGQsCiAJCQkJICAgaWNwX2RkaV9wb3J0X2hvdHBsdWdf bG9uZ19kZXRlY3QpOwogCX0KIApAQCAtMTg3Miw4ICsxODk4LDggQEAgc3RhdGljIHZvaWQgaWNw X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBjaF9p aXIpCiAJCUk5MTVfV1JJVEUoU0hPVFBMVUdfQ1RMX1RDLCBkaWdfaG90cGx1Z19yZWcpOwogCiAJ CWludGVsX2dldF9ocGRfcGlucyhkZXZfcHJpdiwgJnBpbl9tYXNrLCAmbG9uZ19tYXNrLAotCQkJ CSAgIHRjX2hvdHBsdWdfdHJpZ2dlciwKLQkJCQkgICBkaWdfaG90cGx1Z19yZWcsIHBpbnMsCisJ CQkJICAgdGNfaG90cGx1Z190cmlnZ2VyLCBkaWdfaG90cGx1Z19yZWcsCisJCQkJICAgZGV2X3By aXYtPmhvdHBsdWcucGNoX2hwZCwKIAkJCQkgICB0Y19wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3Qp OwogCX0KIApAQCAtMTg5OCw3ICsxOTI0LDggQEAgc3RhdGljIHZvaWQgc3B0X2lycV9oYW5kbGVy KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBjaF9paXIpCiAJCUk5MTVf V1JJVEUoUENIX1BPUlRfSE9UUExVRywgZGlnX2hvdHBsdWdfcmVnKTsKIAogCQlpbnRlbF9nZXRf aHBkX3BpbnMoZGV2X3ByaXYsICZwaW5fbWFzaywgJmxvbmdfbWFzaywKLQkJCQkgICBob3RwbHVn X3RyaWdnZXIsIGRpZ19ob3RwbHVnX3JlZywgaHBkX3NwdCwKKwkJCQkgICBob3RwbHVnX3RyaWdn ZXIsIGRpZ19ob3RwbHVnX3JlZywKKwkJCQkgICBkZXZfcHJpdi0+aG90cGx1Zy5wY2hfaHBkLAog CQkJCSAgIHNwdF9wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QpOwogCX0KIApAQCAtMTkwOSw3ICsx OTM2LDggQEAgc3RhdGljIHZvaWQgc3B0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgdTMyIHBjaF9paXIpCiAJCUk5MTVfV1JJVEUoUENIX1BPUlRfSE9UUExV RzIsIGRpZ19ob3RwbHVnX3JlZyk7CiAKIAkJaW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAm cGluX21hc2ssICZsb25nX21hc2ssCi0JCQkJICAgaG90cGx1ZzJfdHJpZ2dlciwgZGlnX2hvdHBs dWdfcmVnLCBocGRfc3B0LAorCQkJCSAgIGhvdHBsdWcyX3RyaWdnZXIsIGRpZ19ob3RwbHVnX3Jl ZywKKwkJCQkgICBkZXZfcHJpdi0+aG90cGx1Zy5wY2hfaHBkLAogCQkJCSAgIHNwdF9wb3J0X2hv dHBsdWcyX2xvbmdfZGV0ZWN0KTsKIAl9CiAKQEAgLTE5MjEsMTYgKzE5NDksMTYgQEAgc3RhdGlj IHZvaWQgc3B0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwg dTMyIHBjaF9paXIpCiB9CiAKIHN0YXRpYyB2b2lkIGlsa19ocGRfaXJxX2hhbmRsZXIoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJCXUzMiBob3RwbHVnX3RyaWdnZXIsCi0J CQkJY29uc3QgdTMyIGhwZFtIUERfTlVNX1BJTlNdKQorCQkJCXUzMiBob3RwbHVnX3RyaWdnZXIp CiB7CiAJdTMyIGRpZ19ob3RwbHVnX3JlZywgcGluX21hc2sgPSAwLCBsb25nX21hc2sgPSAwOwog CiAJZGlnX2hvdHBsdWdfcmVnID0gSTkxNV9SRUFEKERJR0lUQUxfUE9SVF9IT1RQTFVHX0NOVFJM KTsKIAlJOTE1X1dSSVRFKERJR0lUQUxfUE9SVF9IT1RQTFVHX0NOVFJMLCBkaWdfaG90cGx1Z19y ZWcpOwogCi0JaW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21h c2ssIGhvdHBsdWdfdHJpZ2dlciwKLQkJCSAgIGRpZ19ob3RwbHVnX3JlZywgaHBkLAorCWludGVs X2dldF9ocGRfcGlucyhkZXZfcHJpdiwgJnBpbl9tYXNrLCAmbG9uZ19tYXNrLAorCQkJICAgaG90 cGx1Z190cmlnZ2VyLCBkaWdfaG90cGx1Z19yZWcsCisJCQkgICBkZXZfcHJpdi0+aG90cGx1Zy5o cGQsCiAJCQkgICBpbGtfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KTsKIAogCWludGVsX2hwZF9p cnFfaGFuZGxlcihkZXZfcHJpdiwgcGluX21hc2ssIGxvbmdfbWFzayk7CkBAIC0xOTQzLDcgKzE5 NzEsNyBAQCBzdGF0aWMgdm9pZCBpbGtfZGlzcGxheV9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJdTMyIGhvdHBsdWdfdHJpZ2dlciA9IGRlX2lpciAmIERF X0RQX0FfSE9UUExVRzsKIAogCWlmIChob3RwbHVnX3RyaWdnZXIpCi0JCWlsa19ocGRfaXJxX2hh bmRsZXIoZGV2X3ByaXYsIGhvdHBsdWdfdHJpZ2dlciwgaHBkX2lsayk7CisJCWlsa19ocGRfaXJx X2hhbmRsZXIoZGV2X3ByaXYsIGhvdHBsdWdfdHJpZ2dlcik7CiAKIAlpZiAoZGVfaWlyICYgREVf QVVYX0NIQU5ORUxfQSkKIAkJZHBfYXV4X2lycV9oYW5kbGVyKGRldl9wcml2KTsKQEAgLTE5ODks NyArMjAxNyw3IEBAIHN0YXRpYyB2b2lkIGl2Yl9kaXNwbGF5X2lycV9oYW5kbGVyKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAl1MzIgaG90cGx1Z190cmlnZ2VyID0gZGVfaWly ICYgREVfRFBfQV9IT1RQTFVHX0lWQjsKIAogCWlmIChob3RwbHVnX3RyaWdnZXIpCi0JCWlsa19o cGRfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIGhvdHBsdWdfdHJpZ2dlciwgaHBkX2l2Yik7CisJCWls a19ocGRfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIGhvdHBsdWdfdHJpZ2dlcik7CiAKIAlpZiAoZGVf aWlyICYgREVfRVJSX0lOVF9JVkIpCiAJCWl2Yl9lcnJfaW50X2hhbmRsZXIoZGV2X3ByaXYpOwpA QCAtMjA5OSwxNiArMjEyNywxNiBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaWxrX2lycV9oYW5kbGVy KGludCBpcnEsIHZvaWQgKmFyZykKIH0KIAogc3RhdGljIHZvaWQgYnh0X2hwZF9pcnFfaGFuZGxl cihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJdTMyIGhvdHBsdWdfdHJp Z2dlciwKLQkJCQljb25zdCB1MzIgaHBkW0hQRF9OVU1fUElOU10pCisJCQkJdTMyIGhvdHBsdWdf dHJpZ2dlcikKIHsKIAl1MzIgZGlnX2hvdHBsdWdfcmVnLCBwaW5fbWFzayA9IDAsIGxvbmdfbWFz ayA9IDA7CiAKIAlkaWdfaG90cGx1Z19yZWcgPSBJOTE1X1JFQUQoUENIX1BPUlRfSE9UUExVRyk7 CiAJSTkxNV9XUklURShQQ0hfUE9SVF9IT1RQTFVHLCBkaWdfaG90cGx1Z19yZWcpOwogCi0JaW50 ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssIGhvdHBsdWdf dHJpZ2dlciwKLQkJCSAgIGRpZ19ob3RwbHVnX3JlZywgaHBkLAorCWludGVsX2dldF9ocGRfcGlu cyhkZXZfcHJpdiwgJnBpbl9tYXNrLCAmbG9uZ19tYXNrLAorCQkJICAgaG90cGx1Z190cmlnZ2Vy LCBkaWdfaG90cGx1Z19yZWcsCisJCQkgICBkZXZfcHJpdi0+aG90cGx1Zy5ocGQsCiAJCQkgICBi eHRfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KTsKIAogCWludGVsX2hwZF9pcnFfaGFuZGxlcihk ZXZfcHJpdiwgcGluX21hc2ssIGxvbmdfbWFzayk7CkBAIC0yMTIwLDE1ICsyMTQ4LDExIEBAIHN0 YXRpYyB2b2lkIGdlbjExX2hwZF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIHUzMiBpaXIpCiAJdTMyIHRyaWdnZXJfdGMgPSBpaXIgJiBHRU4xMV9ERV9UQ19I T1RQTFVHX01BU0s7CiAJdTMyIHRyaWdnZXJfdGJ0ID0gaWlyICYgR0VOMTFfREVfVEJUX0hPVFBM VUdfTUFTSzsKIAlsb25nX3B1bHNlX2RldGVjdF9mdW5jIGxvbmdfcHVsc2VfZGV0ZWN0OwotCWNv bnN0IHUzMiAqaHBkOwogCi0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpIHsKKwlpZiAo SU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikKIAkJbG9uZ19wdWxzZV9kZXRlY3QgPSBnZW4xMl9w b3J0X2hvdHBsdWdfbG9uZ19kZXRlY3Q7Ci0JCWhwZCA9IGhwZF9nZW4xMjsKLQl9IGVsc2Ugewor CWVsc2UKIAkJbG9uZ19wdWxzZV9kZXRlY3QgPSBnZW4xMV9wb3J0X2hvdHBsdWdfbG9uZ19kZXRl Y3Q7Ci0JCWhwZCA9IGhwZF9nZW4xMTsKLQl9CiAKIAlpZiAodHJpZ2dlcl90YykgewogCQl1MzIg ZGlnX2hvdHBsdWdfcmVnOwpAQCAtMjEzNiw4ICsyMTYwLDEwIEBAIHN0YXRpYyB2b2lkIGdlbjEx X2hwZF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBp aXIpCiAJCWRpZ19ob3RwbHVnX3JlZyA9IEk5MTVfUkVBRChHRU4xMV9UQ19IT1RQTFVHX0NUTCk7 CiAJCUk5MTVfV1JJVEUoR0VOMTFfVENfSE9UUExVR19DVEwsIGRpZ19ob3RwbHVnX3JlZyk7CiAK LQkJaW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssIHRy aWdnZXJfdGMsCi0JCQkJICAgZGlnX2hvdHBsdWdfcmVnLCBocGQsIGxvbmdfcHVsc2VfZGV0ZWN0 KTsKKwkJaW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ss CisJCQkJICAgdHJpZ2dlcl90YywgZGlnX2hvdHBsdWdfcmVnLAorCQkJCSAgIGRldl9wcml2LT5o b3RwbHVnLmhwZCwKKwkJCQkgICBsb25nX3B1bHNlX2RldGVjdCk7CiAJfQogCiAJaWYgKHRyaWdn ZXJfdGJ0KSB7CkBAIC0yMTQ2LDggKzIxNzIsMTAgQEAgc3RhdGljIHZvaWQgZ2VuMTFfaHBkX2ly cV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGlpcikKIAkJ ZGlnX2hvdHBsdWdfcmVnID0gSTkxNV9SRUFEKEdFTjExX1RCVF9IT1RQTFVHX0NUTCk7CiAJCUk5 MTVfV1JJVEUoR0VOMTFfVEJUX0hPVFBMVUdfQ1RMLCBkaWdfaG90cGx1Z19yZWcpOwogCi0JCWlu dGVsX2dldF9ocGRfcGlucyhkZXZfcHJpdiwgJnBpbl9tYXNrLCAmbG9uZ19tYXNrLCB0cmlnZ2Vy X3RidCwKLQkJCQkgICBkaWdfaG90cGx1Z19yZWcsIGhwZCwgbG9uZ19wdWxzZV9kZXRlY3QpOwor CQlpbnRlbF9nZXRfaHBkX3BpbnMoZGV2X3ByaXYsICZwaW5fbWFzaywgJmxvbmdfbWFzaywKKwkJ CQkgICB0cmlnZ2VyX3RidCwgZGlnX2hvdHBsdWdfcmVnLAorCQkJCSAgIGRldl9wcml2LT5ob3Rw bHVnLmhwZCwKKwkJCQkgICBsb25nX3B1bHNlX2RldGVjdCk7CiAJfQogCiAJaWYgKHBpbl9tYXNr KQpAQCAtMjI3NSwxNSArMjMwMywxMyBAQCBnZW44X2RlX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIG1hc3Rlcl9jdGwpCiAJCQlpZiAoSVNfR0VOOV9M UChkZXZfcHJpdikpIHsKIAkJCQl0bXBfbWFzayA9IGlpciAmIEJYVF9ERV9QT1JUX0hPVFBMVUdf TUFTSzsKIAkJCQlpZiAodG1wX21hc2spIHsKLQkJCQkJYnh0X2hwZF9pcnFfaGFuZGxlcihkZXZf cHJpdiwgdG1wX21hc2ssCi0JCQkJCQkJICAgIGhwZF9ieHQpOworCQkJCQlieHRfaHBkX2lycV9o YW5kbGVyKGRldl9wcml2LCB0bXBfbWFzayk7CiAJCQkJCWZvdW5kID0gdHJ1ZTsKIAkJCQl9CiAJ CQl9IGVsc2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKIAkJCQl0bXBfbWFzayA9IGlp ciAmIEdFTjhfUE9SVF9EUF9BX0hPVFBMVUc7CiAJCQkJaWYgKHRtcF9tYXNrKSB7Ci0JCQkJCWls a19ocGRfaXJxX2hhbmRsZXIoZGV2X3ByaXYsCi0JCQkJCQkJICAgIHRtcF9tYXNrLCBocGRfYmR3 KTsKKwkJCQkJaWxrX2hwZF9pcnFfaGFuZGxlcihkZXZfcHJpdiwgdG1wX21hc2spOwogCQkJCQlm b3VuZCA9IHRydWU7CiAJCQkJfQogCQkJfQpAQCAtMjk1MywxMyArMjk3OSwxMiBAQCBzdGF0aWMg dm9pZCBpYnhfaHBkX2lycV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CiB7CiAJdTMyIGhvdHBsdWdfaXJxcywgZW5hYmxlZF9pcnFzOwogCi0JaWYgKEhBU19QQ0hfSUJY KGRldl9wcml2KSkgeworCWlmIChIQVNfUENIX0lCWChkZXZfcHJpdikpCiAJCWhvdHBsdWdfaXJx cyA9IFNERV9IT1RQTFVHX01BU0s7Ci0JCWVuYWJsZWRfaXJxcyA9IGludGVsX2hwZF9lbmFibGVk X2lycXMoZGV2X3ByaXYsIGhwZF9pYngpOwotCX0gZWxzZSB7CisJZWxzZQogCQlob3RwbHVnX2ly cXMgPSBTREVfSE9UUExVR19NQVNLX0NQVDsKLQkJZW5hYmxlZF9pcnFzID0gaW50ZWxfaHBkX2Vu YWJsZWRfaXJxcyhkZXZfcHJpdiwgaHBkX2NwdCk7Ci0JfQorCisJZW5hYmxlZF9pcnFzID0gaW50 ZWxfaHBkX2VuYWJsZWRfaXJxcyhkZXZfcHJpdiwgZGV2X3ByaXYtPmhvdHBsdWcucGNoX2hwZCk7 CiAKIAlpYnhfZGlzcGxheV9pbnRlcnJ1cHRfdXBkYXRlKGRldl9wcml2LCBob3RwbHVnX2lycXMs IGVuYWJsZWRfaXJxcyk7CiAKQEAgLTI5ODUsMTMgKzMwMTAsMTIgQEAgc3RhdGljIHZvaWQgaWNw X2hwZF9kZXRlY3Rpb25fc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAog CiBzdGF0aWMgdm9pZCBpY3BfaHBkX2lycV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAJCQkgICAgICB1MzIgc2RlX2RkaV9tYXNrLCB1MzIgc2RlX3RjX21hc2ssCi0J CQkgICAgICB1MzIgZGRpX2VuYWJsZV9tYXNrLCB1MzIgdGNfZW5hYmxlX21hc2ssCi0JCQkgICAg ICBjb25zdCB1MzIgKnBpbnMpCisJCQkgICAgICB1MzIgZGRpX2VuYWJsZV9tYXNrLCB1MzIgdGNf ZW5hYmxlX21hc2spCiB7CiAJdTMyIGhvdHBsdWdfaXJxcywgZW5hYmxlZF9pcnFzOwogCiAJaG90 cGx1Z19pcnFzID0gc2RlX2RkaV9tYXNrIHwgc2RlX3RjX21hc2s7Ci0JZW5hYmxlZF9pcnFzID0g aW50ZWxfaHBkX2VuYWJsZWRfaXJxcyhkZXZfcHJpdiwgcGlucyk7CisJZW5hYmxlZF9pcnFzID0g aW50ZWxfaHBkX2VuYWJsZWRfaXJxcyhkZXZfcHJpdiwgZGV2X3ByaXYtPmhvdHBsdWcucGNoX2hw ZCk7CiAKIAlJOTE1X1dSSVRFKFNIUERfRklMVEVSX0NOVCwgU0hQRF9GSUxURVJfQ05UXzUwMF9B REopOwogCkBAIC0zMDA4LDggKzMwMzIsNyBAQCBzdGF0aWMgdm9pZCBtY2NfaHBkX2lycV9zZXR1 cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJaWNwX2hwZF9pcnFfc2V0 dXAoZGV2X3ByaXYsCiAJCQkgIFNERV9ERElfTUFTS19JQ1AsIFNERV9UQ19IT1RQTFVHX0lDUChQ T1JUX1RDMSksCi0JCQkgIElDUF9ERElfSFBEX0VOQUJMRV9NQVNLLCBJQ1BfVENfSFBEX0VOQUJM RShQT1JUX1RDMSksCi0JCQkgIGhwZF9pY3ApOworCQkJICBJQ1BfRERJX0hQRF9FTkFCTEVfTUFT SywgSUNQX1RDX0hQRF9FTkFCTEUoUE9SVF9UQzEpKTsKIH0KIAogLyoKQEAgLTMwMjEsOCArMzA0 NCw3IEBAIHN0YXRpYyB2b2lkIGpzcF9ocGRfaXJxX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdikKIHsKIAlpY3BfaHBkX2lycV9zZXR1cChkZXZfcHJpdiwKIAkJCSAgU0RF X0RESV9NQVNLX1RHUCwgMCwKLQkJCSAgVEdQX0RESV9IUERfRU5BQkxFX01BU0ssIDAsCi0JCQkg IGhwZF90Z3ApOworCQkJICBUR1BfRERJX0hQRF9FTkFCTEVfTUFTSywgMCk7CiB9CiAKIHN0YXRp YyB2b2lkIGdlbjExX2hwZF9kZXRlY3Rpb25fc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQpAQCAtMzA0NywxMSArMzA2OSw5IEBAIHN0YXRpYyB2b2lkIGdlbjExX2hwZF9k ZXRlY3Rpb25fc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogc3RhdGlj IHZvaWQgZ2VuMTFfaHBkX2lycV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCiB7CiAJdTMyIGhvdHBsdWdfaXJxcywgZW5hYmxlZF9pcnFzOwotCWNvbnN0IHUzMiAqaHBk OwogCXUzMiB2YWw7CiAKLQlocGQgPSBJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyID8gaHBkX2dl bjEyIDogaHBkX2dlbjExOwotCWVuYWJsZWRfaXJxcyA9IGludGVsX2hwZF9lbmFibGVkX2lycXMo ZGV2X3ByaXYsIGhwZCk7CisJZW5hYmxlZF9pcnFzID0gaW50ZWxfaHBkX2VuYWJsZWRfaXJxcyhk ZXZfcHJpdiwgZGV2X3ByaXYtPmhvdHBsdWcuaHBkKTsKIAlob3RwbHVnX2lycXMgPSBHRU4xMV9E RV9UQ19IT1RQTFVHX01BU0sgfCBHRU4xMV9ERV9UQlRfSE9UUExVR19NQVNLOwogCiAJdmFsID0g STkxNV9SRUFEKEdFTjExX0RFX0hQRF9JTVIpOwpAQCAtMzA2MywxMiArMzA4MywxMCBAQCBzdGF0 aWMgdm9pZCBnZW4xMV9ocGRfaXJxX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdikKIAogCWlmIChJTlRFTF9QQ0hfVFlQRShkZXZfcHJpdikgPj0gUENIX1RHUCkKIAkJaWNw X2hwZF9pcnFfc2V0dXAoZGV2X3ByaXYsIFNERV9ERElfTUFTS19UR1AsIFNERV9UQ19NQVNLX1RH UCwKLQkJCQkgIFRHUF9ERElfSFBEX0VOQUJMRV9NQVNLLAotCQkJCSAgVEdQX1RDX0hQRF9FTkFC TEVfTUFTSywgaHBkX3RncCk7CisJCQkJICBUR1BfRERJX0hQRF9FTkFCTEVfTUFTSywgVEdQX1RD X0hQRF9FTkFCTEVfTUFTSyk7CiAJZWxzZSBpZiAoSU5URUxfUENIX1RZUEUoZGV2X3ByaXYpID49 IFBDSF9JQ1ApCiAJCWljcF9ocGRfaXJxX3NldHVwKGRldl9wcml2LCBTREVfRERJX01BU0tfSUNQ LCBTREVfVENfTUFTS19JQ1AsCi0JCQkJICBJQ1BfRERJX0hQRF9FTkFCTEVfTUFTSywKLQkJCQkg IElDUF9UQ19IUERfRU5BQkxFX01BU0ssIGhwZF9pY3ApOworCQkJCSAgSUNQX0RESV9IUERfRU5B QkxFX01BU0ssIElDUF9UQ19IUERfRU5BQkxFX01BU0spOwogfQogCiBzdGF0aWMgdm9pZCBzcHRf aHBkX2RldGVjdGlvbl9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCkBA IC0zMTA0LDcgKzMxMjIsNyBAQCBzdGF0aWMgdm9pZCBzcHRfaHBkX2lycV9zZXR1cChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCUk5MTVfV1JJVEUoU0hQRF9GSUxURVJfQ05U LCBTSFBEX0ZJTFRFUl9DTlRfNTAwX0FESik7CiAKIAlob3RwbHVnX2lycXMgPSBTREVfSE9UUExV R19NQVNLX1NQVDsKLQllbmFibGVkX2lycXMgPSBpbnRlbF9ocGRfZW5hYmxlZF9pcnFzKGRldl9w cml2LCBocGRfc3B0KTsKKwllbmFibGVkX2lycXMgPSBpbnRlbF9ocGRfZW5hYmxlZF9pcnFzKGRl dl9wcml2LCBkZXZfcHJpdi0+aG90cGx1Zy5wY2hfaHBkKTsKIAogCWlieF9kaXNwbGF5X2ludGVy cnVwdF91cGRhdGUoZGV2X3ByaXYsIGhvdHBsdWdfaXJxcywgZW5hYmxlZF9pcnFzKTsKIApAQCAt MzEzMywxNyArMzE1MSwxNyBAQCBzdGF0aWMgdm9pZCBpbGtfaHBkX2lycV9zZXR1cChzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+ PSA4KSB7CiAJCWhvdHBsdWdfaXJxcyA9IEdFTjhfUE9SVF9EUF9BX0hPVFBMVUc7Ci0JCWVuYWJs ZWRfaXJxcyA9IGludGVsX2hwZF9lbmFibGVkX2lycXMoZGV2X3ByaXYsIGhwZF9iZHcpOworCQll bmFibGVkX2lycXMgPSBpbnRlbF9ocGRfZW5hYmxlZF9pcnFzKGRldl9wcml2LCBkZXZfcHJpdi0+ aG90cGx1Zy5ocGQpOwogCiAJCWJkd191cGRhdGVfcG9ydF9pcnEoZGV2X3ByaXYsIGhvdHBsdWdf aXJxcywgZW5hYmxlZF9pcnFzKTsKIAl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0g NykgewogCQlob3RwbHVnX2lycXMgPSBERV9EUF9BX0hPVFBMVUdfSVZCOwotCQllbmFibGVkX2ly cXMgPSBpbnRlbF9ocGRfZW5hYmxlZF9pcnFzKGRldl9wcml2LCBocGRfaXZiKTsKKwkJZW5hYmxl ZF9pcnFzID0gaW50ZWxfaHBkX2VuYWJsZWRfaXJxcyhkZXZfcHJpdiwgZGV2X3ByaXYtPmhvdHBs dWcuaHBkKTsKIAogCQlpbGtfdXBkYXRlX2Rpc3BsYXlfaXJxKGRldl9wcml2LCBob3RwbHVnX2ly cXMsIGVuYWJsZWRfaXJxcyk7CiAJfSBlbHNlIHsKIAkJaG90cGx1Z19pcnFzID0gREVfRFBfQV9I T1RQTFVHOwotCQllbmFibGVkX2lycXMgPSBpbnRlbF9ocGRfZW5hYmxlZF9pcnFzKGRldl9wcml2 LCBocGRfaWxrKTsKKwkJZW5hYmxlZF9pcnFzID0gaW50ZWxfaHBkX2VuYWJsZWRfaXJxcyhkZXZf cHJpdiwgZGV2X3ByaXYtPmhvdHBsdWcuaHBkKTsKIAogCQlpbGtfdXBkYXRlX2Rpc3BsYXlfaXJx KGRldl9wcml2LCBob3RwbHVnX2lycXMsIGVuYWJsZWRfaXJxcyk7CiAJfQpAQCAtMzE5Myw3ICsz MjExLDcgQEAgc3RhdGljIHZvaWQgYnh0X2hwZF9pcnFfc2V0dXAoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogewogCXUzMiBob3RwbHVnX2lycXMsIGVuYWJsZWRfaXJxczsKIAot CWVuYWJsZWRfaXJxcyA9IGludGVsX2hwZF9lbmFibGVkX2lycXMoZGV2X3ByaXYsIGhwZF9ieHQp OworCWVuYWJsZWRfaXJxcyA9IGludGVsX2hwZF9lbmFibGVkX2lycXMoZGV2X3ByaXYsIGRldl9w cml2LT5ob3RwbHVnLmhwZCk7CiAJaG90cGx1Z19pcnFzID0gQlhUX0RFX1BPUlRfSE9UUExVR19N QVNLOwogCiAJYmR3X3VwZGF0ZV9wb3J0X2lycShkZXZfcHJpdiwgaG90cGx1Z19pcnFzLCBlbmFi bGVkX2lycXMpOwpAQCAtMzg5Nyw2ICszOTE1LDggQEAgdm9pZCBpbnRlbF9pcnFfaW5pdChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 ICZkZXZfcHJpdi0+ZHJtOwogCWludCBpOwogCisJaW50ZWxfaHBkX2luaXRfcGlucyhkZXZfcHJp dik7CisKIAlpbnRlbF9ocGRfaW5pdF93b3JrKGRldl9wcml2KTsKIAogCUlOSVRfV09SSygmZGV2 X3ByaXYtPmwzX3Bhcml0eS5lcnJvcl93b3JrLCBpdmJfcGFyaXR5X3dvcmspOwotLSAKMi4yNC4x CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1n ZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK