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, URIBL_BLOCKED,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 BCF2CC35247 for ; Wed, 5 Feb 2020 18:36:02 +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 9BD5C21741 for ; Wed, 5 Feb 2020 18:36:02 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 9BD5C21741 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 286D16F92E; Wed, 5 Feb 2020 18:36:02 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id ED2456F92D for ; Wed, 5 Feb 2020 18:36:00 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Feb 2020 10:36:00 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,406,1574150400"; d="scan'208";a="225915750" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by fmsmga008.fm.intel.com with SMTP; 05 Feb 2020 10:35:58 -0800 Received: by stinkbox (sSMTP sendmail emulation); Wed, 05 Feb 2020 20:35:58 +0200 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Date: Wed, 5 Feb 2020 20:35:45 +0200 Message-Id: <20200205183546.9291-5-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200205183546.9291-1-ville.syrjala@linux.intel.com> References: <20200205183546.9291-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v2 4/5] 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 MTUvaTkxNV9kcnYuaAppbmRleCAzNDUyOTI2ZDdiNzcuLjZkZDk4ZTNhZjFmMyAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oCkBAIC0xNDUsNiArMTQ1LDggQEAgZW51bSBocGRfcGluIHsKIHN0cnVj dCBpOTE1X2hvdHBsdWcgewogCXN0cnVjdCBkZWxheWVkX3dvcmsgaG90cGx1Z193b3JrOwogCisJ Y29uc3QgdTMyICpocGQsICpwY2hfaHBkOworCiAJc3RydWN0IHsKIAkJdW5zaWduZWQgbG9uZyBs YXN0X2ppZmZpZXM7CiAJCWludCBjb3VudDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfaXJxLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2lycS5jCmluZGV4IDNk MGNkMDk2MGJkMi4uNzZjYzg1ZjM3MGEzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx 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 cmVnX3QgaWlyLCBpOTE1X3JlZ190IGllcikKIHsKQEAgLTE0ODcsMzMgKzE1MjQsMjcgQEAgc3Rh dGljIHZvaWQgaTl4eF9ocGRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2LAogCQkJCSB1MzIgaG90cGx1Z19zdGF0dXMpCiB7CiAJdTMyIHBpbl9tYXNrID0gMCwg bG9uZ19tYXNrID0gMDsKKwl1MzIgaG90cGx1Z190cmlnZ2VyOwogCi0JaWYgKElTX0c0WChkZXZf cHJpdikgfHwgSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwKLQkgICAgSVNfQ0hFUlJZVklFVyhk ZXZfcHJpdikpIHsKLQkJdTMyIGhvdHBsdWdfdHJpZ2dlciA9IGhvdHBsdWdfc3RhdHVzICYgSE9U UExVR19JTlRfU1RBVFVTX0c0WDsKLQotCQlpZiAoaG90cGx1Z190cmlnZ2VyKSB7Ci0JCQlpbnRl bF9nZXRfaHBkX3BpbnMoZGV2X3ByaXYsICZwaW5fbWFzaywgJmxvbmdfbWFzaywKLQkJCQkJICAg aG90cGx1Z190cmlnZ2VyLCBob3RwbHVnX3RyaWdnZXIsCi0JCQkJCSAgIGhwZF9zdGF0dXNfZzR4 LAotCQkJCQkgICBpOXh4X3BvcnRfaG90cGx1Z19sb25nX2RldGVjdCk7CisJaWYgKElTX0c0WChk ZXZfcHJpdikgfHwKKwkgICAgSVNfVkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklF VyhkZXZfcHJpdikpCisJCWhvdHBsdWdfdHJpZ2dlciA9IGhvdHBsdWdfc3RhdHVzICYgSE9UUExV R19JTlRfU1RBVFVTX0c0WDsKKwllbHNlCisJCWhvdHBsdWdfdHJpZ2dlciA9IGhvdHBsdWdfc3Rh dHVzICYgSE9UUExVR19JTlRfU1RBVFVTX0k5MTU7CiAKLQkJCWludGVsX2hwZF9pcnFfaGFuZGxl cihkZXZfcHJpdiwgcGluX21hc2ssIGxvbmdfbWFzayk7Ci0JCX0KKwlpZiAoaG90cGx1Z190cmln Z2VyKSB7CisJCWludGVsX2dldF9ocGRfcGlucyhkZXZfcHJpdiwgJnBpbl9tYXNrLCAmbG9uZ19t YXNrLAorCQkJCSAgIGhvdHBsdWdfdHJpZ2dlciwgaG90cGx1Z190cmlnZ2VyLAorCQkJCSAgIGRl dl9wcml2LT5ob3RwbHVnLmhwZCwKKwkJCQkgICBpOXh4X3BvcnRfaG90cGx1Z19sb25nX2RldGVj dCk7CiAKLQkJaWYgKGhvdHBsdWdfc3RhdHVzICYgRFBfQVVYX0NIQU5ORUxfTUFTS19JTlRfU1RB VFVTX0c0WCkKLQkJCWRwX2F1eF9pcnFfaGFuZGxlcihkZXZfcHJpdik7Ci0JfSBlbHNlIHsKLQkJ dTMyIGhvdHBsdWdfdHJpZ2dlciA9IGhvdHBsdWdfc3RhdHVzICYgSE9UUExVR19JTlRfU1RBVFVT X0k5MTU7Ci0KLQkJaWYgKGhvdHBsdWdfdHJpZ2dlcikgewotCQkJaW50ZWxfZ2V0X2hwZF9waW5z KGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssCi0JCQkJCSAgIGhvdHBsdWdfdHJpZ2dl ciwgaG90cGx1Z190cmlnZ2VyLAotCQkJCQkgICBocGRfc3RhdHVzX2k5MTUsCi0JCQkJCSAgIGk5 eHhfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KTsKLQkJCWludGVsX2hwZF9pcnFfaGFuZGxlcihk ZXZfcHJpdiwgcGluX21hc2ssIGxvbmdfbWFzayk7Ci0JCX0KKwkJaW50ZWxfaHBkX2lycV9oYW5k bGVyKGRldl9wcml2LCBwaW5fbWFzaywgbG9uZ19tYXNrKTsKIAl9CisKKwlpZiAoKElTX0c0WChk ZXZfcHJpdikgfHwKKwkgICAgIElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJSWVZJ RVcoZGV2X3ByaXYpKSAmJgorCSAgICBob3RwbHVnX3N0YXR1cyAmIERQX0FVWF9DSEFOTkVMX01B U0tfSU5UX1NUQVRVU19HNFgpCisJCWRwX2F1eF9pcnFfaGFuZGxlcihkZXZfcHJpdik7CiB9CiAK IHN0YXRpYyBpcnFyZXR1cm5fdCB2YWxsZXl2aWV3X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQg KmFyZykKQEAgLTE2NzksOCArMTcxMCw3IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBjaGVycnl2aWV3 X2lycV9oYW5kbGVyKGludCBpcnEsIHZvaWQgKmFyZykKIH0KIAogc3RhdGljIHZvaWQgaWJ4X2hw ZF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJdTMy IGhvdHBsdWdfdHJpZ2dlciwKLQkJCQljb25zdCB1MzIgaHBkW0hQRF9OVU1fUElOU10pCisJCQkJ dTMyIGhvdHBsdWdfdHJpZ2dlcikKIHsKIAl1MzIgZGlnX2hvdHBsdWdfcmVnLCBwaW5fbWFzayA9 IDAsIGxvbmdfbWFzayA9IDA7CiAKQEAgLTE3MDMsOCArMTczMyw5IEBAIHN0YXRpYyB2b2lkIGli eF9ocGRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCWlm ICghaG90cGx1Z190cmlnZ2VyKQogCQlyZXR1cm47CiAKLQlpbnRlbF9nZXRfaHBkX3BpbnMoZGV2 X3ByaXYsICZwaW5fbWFzaywgJmxvbmdfbWFzaywgaG90cGx1Z190cmlnZ2VyLAotCQkJICAgZGln X2hvdHBsdWdfcmVnLCBocGQsCisJaW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21h c2ssICZsb25nX21hc2ssCisJCQkgICBob3RwbHVnX3RyaWdnZXIsIGRpZ19ob3RwbHVnX3JlZywK KwkJCSAgIGRldl9wcml2LT5ob3RwbHVnLnBjaF9ocGQsCiAJCQkgICBwY2hfcG9ydF9ob3RwbHVn X2xvbmdfZGV0ZWN0KTsKIAogCWludGVsX2hwZF9pcnFfaGFuZGxlcihkZXZfcHJpdiwgcGluX21h c2ssIGxvbmdfbWFzayk7CkBAIC0xNzE1LDcgKzE3NDYsNyBAQCBzdGF0aWMgdm9pZCBpYnhfaXJx X2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcGNoX2lpcikK IAllbnVtIHBpcGUgcGlwZTsKIAl1MzIgaG90cGx1Z190cmlnZ2VyID0gcGNoX2lpciAmIFNERV9I T1RQTFVHX01BU0s7CiAKLQlpYnhfaHBkX2lycV9oYW5kbGVyKGRldl9wcml2LCBob3RwbHVnX3Ry aWdnZXIsIGhwZF9pYngpOworCWlieF9ocGRfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIGhvdHBsdWdf dHJpZ2dlcik7CiAKIAlpZiAocGNoX2lpciAmIFNERV9BVURJT19QT1dFUl9NQVNLKSB7CiAJCWlu dCBwb3J0ID0gZmZzKChwY2hfaWlyICYgU0RFX0FVRElPX1BPV0VSX01BU0spID4+CkBAIC0xODAy LDcgKzE4MzMsNyBAQCBzdGF0aWMgdm9pZCBjcHRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcGNoX2lpcikKIAllbnVtIHBpcGUgcGlwZTsKIAl1MzIg aG90cGx1Z190cmlnZ2VyID0gcGNoX2lpciAmIFNERV9IT1RQTFVHX01BU0tfQ1BUOwogCi0JaWJ4 X2hwZF9pcnFfaGFuZGxlcihkZXZfcHJpdiwgaG90cGx1Z190cmlnZ2VyLCBocGRfY3B0KTsKKwlp YnhfaHBkX2lycV9oYW5kbGVyKGRldl9wcml2LCBob3RwbHVnX3RyaWdnZXIpOwogCiAJaWYgKHBj aF9paXIgJiBTREVfQVVESU9fUE9XRVJfTUFTS19DUFQpIHsKIAkJaW50IHBvcnQgPSBmZnMoKHBj aF9paXIgJiBTREVfQVVESU9fUE9XRVJfTUFTS19DUFQpID4+CkBAIC0xODM4LDIyICsxODY5LDE4 IEBAIHN0YXRpYyB2b2lkIGljcF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsIHUzMiBwY2hfaWlyKQogCXUzMiBkZGlfaG90cGx1Z190cmlnZ2VyLCB0Y19ob3Rw bHVnX3RyaWdnZXI7CiAJdTMyIHBpbl9tYXNrID0gMCwgbG9uZ19tYXNrID0gMDsKIAlib29sICgq dGNfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KShlbnVtIGhwZF9waW4gcGluLCB1MzIgdmFsKTsK LQljb25zdCB1MzIgKnBpbnM7CiAKIAlpZiAoSEFTX1BDSF9UR1AoZGV2X3ByaXYpKSB7CiAJCWRk aV9ob3RwbHVnX3RyaWdnZXIgPSBwY2hfaWlyICYgU0RFX0RESV9NQVNLX1RHUDsKIAkJdGNfaG90 cGx1Z190cmlnZ2VyID0gcGNoX2lpciAmIFNERV9UQ19NQVNLX1RHUDsKIAkJdGNfcG9ydF9ob3Rw bHVnX2xvbmdfZGV0ZWN0ID0gdGdwX3RjX3BvcnRfaG90cGx1Z19sb25nX2RldGVjdDsKLQkJcGlu cyA9IGhwZF90Z3A7CiAJfSBlbHNlIGlmIChIQVNfUENIX0pTUChkZXZfcHJpdikpIHsKIAkJZGRp X2hvdHBsdWdfdHJpZ2dlciA9IHBjaF9paXIgJiBTREVfRERJX01BU0tfVEdQOwogCQl0Y19ob3Rw bHVnX3RyaWdnZXIgPSAwOwotCQlwaW5zID0gaHBkX3RncDsKIAl9IGVsc2UgaWYgKEhBU19QQ0hf TUNDKGRldl9wcml2KSkgewogCQlkZGlfaG90cGx1Z190cmlnZ2VyID0gcGNoX2lpciAmIFNERV9E RElfTUFTS19JQ1A7CiAJCXRjX2hvdHBsdWdfdHJpZ2dlciA9IHBjaF9paXIgJiBTREVfVENfSE9U UExVR19JQ1AoUE9SVF9UQzEpOwogCQl0Y19wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QgPSBpY3Bf dGNfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0OwotCQlwaW5zID0gaHBkX2ljcDsKIAl9IGVsc2Ug ewogCQlkcm1fV0FSTigmZGV2X3ByaXYtPmRybSwgIUhBU19QQ0hfSUNQKGRldl9wcml2KSwKIAkJ CSAiVW5yZWNvZ25pemVkIFBDSCB0eXBlIDB4JXhcbiIsCkBAIC0xODYyLDcgKzE4ODksNiBAQCBz dGF0aWMgdm9pZCBpY3BfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LCB1MzIgcGNoX2lpcikKIAkJZGRpX2hvdHBsdWdfdHJpZ2dlciA9IHBjaF9paXIgJiBTREVf RERJX01BU0tfSUNQOwogCQl0Y19ob3RwbHVnX3RyaWdnZXIgPSBwY2hfaWlyICYgU0RFX1RDX01B U0tfSUNQOwogCQl0Y19wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QgPSBpY3BfdGNfcG9ydF9ob3Rw bHVnX2xvbmdfZGV0ZWN0OwotCQlwaW5zID0gaHBkX2ljcDsKIAl9CiAKIAlpZiAoZGRpX2hvdHBs dWdfdHJpZ2dlcikgewpAQCAtMTg3Miw4ICsxODk4LDggQEAgc3RhdGljIHZvaWQgaWNwX2lycV9o YW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBjaF9paXIpCiAJ CUk5MTVfV1JJVEUoU0hPVFBMVUdfQ1RMX0RESSwgZGlnX2hvdHBsdWdfcmVnKTsKIAogCQlpbnRl bF9nZXRfaHBkX3BpbnMoZGV2X3ByaXYsICZwaW5fbWFzaywgJmxvbmdfbWFzaywKLQkJCQkgICBk ZGlfaG90cGx1Z190cmlnZ2VyLAotCQkJCSAgIGRpZ19ob3RwbHVnX3JlZywgcGlucywKKwkJCQkg ICBkZGlfaG90cGx1Z190cmlnZ2VyLCBkaWdfaG90cGx1Z19yZWcsCisJCQkJICAgZGV2X3ByaXYt PmhvdHBsdWcucGNoX2hwZCwKIAkJCQkgICBpY3BfZGRpX3BvcnRfaG90cGx1Z19sb25nX2RldGVj dCk7CiAJfQogCkBAIC0xODg0LDggKzE5MTAsOCBAQCBzdGF0aWMgdm9pZCBpY3BfaXJxX2hhbmRs ZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcGNoX2lpcikKIAkJSTkx NV9XUklURShTSE9UUExVR19DVExfVEMsIGRpZ19ob3RwbHVnX3JlZyk7CiAKIAkJaW50ZWxfZ2V0 X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssCi0JCQkJICAgdGNfaG90 cGx1Z190cmlnZ2VyLAotCQkJCSAgIGRpZ19ob3RwbHVnX3JlZywgcGlucywKKwkJCQkgICB0Y19o b3RwbHVnX3RyaWdnZXIsIGRpZ19ob3RwbHVnX3JlZywKKwkJCQkgICBkZXZfcHJpdi0+aG90cGx1 Zy5wY2hfaHBkLAogCQkJCSAgIHRjX3BvcnRfaG90cGx1Z19sb25nX2RldGVjdCk7CiAJfQogCkBA IC0xOTEwLDcgKzE5MzYsOCBAQCBzdGF0aWMgdm9pZCBzcHRfaXJxX2hhbmRsZXIoc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcGNoX2lpcikKIAkJSTkxNV9XUklURShQQ0hf UE9SVF9IT1RQTFVHLCBkaWdfaG90cGx1Z19yZWcpOwogCiAJCWludGVsX2dldF9ocGRfcGlucyhk ZXZfcHJpdiwgJnBpbl9tYXNrLCAmbG9uZ19tYXNrLAotCQkJCSAgIGhvdHBsdWdfdHJpZ2dlciwg ZGlnX2hvdHBsdWdfcmVnLCBocGRfc3B0LAorCQkJCSAgIGhvdHBsdWdfdHJpZ2dlciwgZGlnX2hv dHBsdWdfcmVnLAorCQkJCSAgIGRldl9wcml2LT5ob3RwbHVnLnBjaF9ocGQsCiAJCQkJICAgc3B0 X3BvcnRfaG90cGx1Z19sb25nX2RldGVjdCk7CiAJfQogCkBAIC0xOTIxLDcgKzE5NDgsOCBAQCBz dGF0aWMgdm9pZCBzcHRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2LCB1MzIgcGNoX2lpcikKIAkJSTkxNV9XUklURShQQ0hfUE9SVF9IT1RQTFVHMiwgZGlnX2hv dHBsdWdfcmVnKTsKIAogCQlpbnRlbF9nZXRfaHBkX3BpbnMoZGV2X3ByaXYsICZwaW5fbWFzaywg JmxvbmdfbWFzaywKLQkJCQkgICBob3RwbHVnMl90cmlnZ2VyLCBkaWdfaG90cGx1Z19yZWcsIGhw ZF9zcHQsCisJCQkJICAgaG90cGx1ZzJfdHJpZ2dlciwgZGlnX2hvdHBsdWdfcmVnLAorCQkJCSAg IGRldl9wcml2LT5ob3RwbHVnLnBjaF9ocGQsCiAJCQkJICAgc3B0X3BvcnRfaG90cGx1ZzJfbG9u Z19kZXRlY3QpOwogCX0KIApAQCAtMTkzMywxNiArMTk2MSwxNiBAQCBzdGF0aWMgdm9pZCBzcHRf aXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgcGNoX2lp cikKIH0KIAogc3RhdGljIHZvaWQgaWxrX2hwZF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJdTMyIGhvdHBsdWdfdHJpZ2dlciwKLQkJCQljb25zdCB1 MzIgaHBkW0hQRF9OVU1fUElOU10pCisJCQkJdTMyIGhvdHBsdWdfdHJpZ2dlcikKIHsKIAl1MzIg ZGlnX2hvdHBsdWdfcmVnLCBwaW5fbWFzayA9IDAsIGxvbmdfbWFzayA9IDA7CiAKIAlkaWdfaG90 cGx1Z19yZWcgPSBJOTE1X1JFQUQoRElHSVRBTF9QT1JUX0hPVFBMVUdfQ05UUkwpOwogCUk5MTVf V1JJVEUoRElHSVRBTF9QT1JUX0hPVFBMVUdfQ05UUkwsIGRpZ19ob3RwbHVnX3JlZyk7CiAKLQlp bnRlbF9nZXRfaHBkX3BpbnMoZGV2X3ByaXYsICZwaW5fbWFzaywgJmxvbmdfbWFzaywgaG90cGx1 Z190cmlnZ2VyLAotCQkJICAgZGlnX2hvdHBsdWdfcmVnLCBocGQsCisJaW50ZWxfZ2V0X2hwZF9w aW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssCisJCQkgICBob3RwbHVnX3RyaWdn ZXIsIGRpZ19ob3RwbHVnX3JlZywKKwkJCSAgIGRldl9wcml2LT5ob3RwbHVnLmhwZCwKIAkJCSAg IGlsa19wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QpOwogCiAJaW50ZWxfaHBkX2lycV9oYW5kbGVy KGRldl9wcml2LCBwaW5fbWFzaywgbG9uZ19tYXNrKTsKQEAgLTE5NTUsNyArMTk4Myw3IEBAIHN0 YXRpYyB2b2lkIGlsa19kaXNwbGF5X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIAl1MzIgaG90cGx1Z190cmlnZ2VyID0gZGVfaWlyICYgREVfRFBfQV9IT1RQ TFVHOwogCiAJaWYgKGhvdHBsdWdfdHJpZ2dlcikKLQkJaWxrX2hwZF9pcnFfaGFuZGxlcihkZXZf cHJpdiwgaG90cGx1Z190cmlnZ2VyLCBocGRfaWxrKTsKKwkJaWxrX2hwZF9pcnFfaGFuZGxlcihk ZXZfcHJpdiwgaG90cGx1Z190cmlnZ2VyKTsKIAogCWlmIChkZV9paXIgJiBERV9BVVhfQ0hBTk5F TF9BKQogCQlkcF9hdXhfaXJxX2hhbmRsZXIoZGV2X3ByaXYpOwpAQCAtMjAwMSw3ICsyMDI5LDcg QEAgc3RhdGljIHZvaWQgaXZiX2Rpc3BsYXlfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogCXUzMiBob3RwbHVnX3RyaWdnZXIgPSBkZV9paXIgJiBERV9EUF9B X0hPVFBMVUdfSVZCOwogCiAJaWYgKGhvdHBsdWdfdHJpZ2dlcikKLQkJaWxrX2hwZF9pcnFfaGFu ZGxlcihkZXZfcHJpdiwgaG90cGx1Z190cmlnZ2VyLCBocGRfaXZiKTsKKwkJaWxrX2hwZF9pcnFf aGFuZGxlcihkZXZfcHJpdiwgaG90cGx1Z190cmlnZ2VyKTsKIAogCWlmIChkZV9paXIgJiBERV9F UlJfSU5UX0lWQikKIAkJaXZiX2Vycl9pbnRfaGFuZGxlcihkZXZfcHJpdik7CkBAIC0yMTExLDE2 ICsyMTM5LDE2IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBpbGtfaXJxX2hhbmRsZXIoaW50IGlycSwg dm9pZCAqYXJnKQogfQogCiBzdGF0aWMgdm9pZCBieHRfaHBkX2lycV9oYW5kbGVyKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKLQkJCQl1MzIgaG90cGx1Z190cmlnZ2VyLAotCQkJ CWNvbnN0IHUzMiBocGRbSFBEX05VTV9QSU5TXSkKKwkJCQl1MzIgaG90cGx1Z190cmlnZ2VyKQog ewogCXUzMiBkaWdfaG90cGx1Z19yZWcsIHBpbl9tYXNrID0gMCwgbG9uZ19tYXNrID0gMDsKIAog CWRpZ19ob3RwbHVnX3JlZyA9IEk5MTVfUkVBRChQQ0hfUE9SVF9IT1RQTFVHKTsKIAlJOTE1X1dS SVRFKFBDSF9QT1JUX0hPVFBMVUcsIGRpZ19ob3RwbHVnX3JlZyk7CiAKLQlpbnRlbF9nZXRfaHBk X3BpbnMoZGV2X3ByaXYsICZwaW5fbWFzaywgJmxvbmdfbWFzaywgaG90cGx1Z190cmlnZ2VyLAot CQkJICAgZGlnX2hvdHBsdWdfcmVnLCBocGQsCisJaW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2 LCAmcGluX21hc2ssICZsb25nX21hc2ssCisJCQkgICBob3RwbHVnX3RyaWdnZXIsIGRpZ19ob3Rw bHVnX3JlZywKKwkJCSAgIGRldl9wcml2LT5ob3RwbHVnLmhwZCwKIAkJCSAgIGJ4dF9wb3J0X2hv dHBsdWdfbG9uZ19kZXRlY3QpOwogCiAJaW50ZWxfaHBkX2lycV9oYW5kbGVyKGRldl9wcml2LCBw aW5fbWFzaywgbG9uZ19tYXNrKTsKQEAgLTIxMzIsMTUgKzIxNjAsMTEgQEAgc3RhdGljIHZvaWQg Z2VuMTFfaHBkX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwg dTMyIGlpcikKIAl1MzIgdHJpZ2dlcl90YyA9IGlpciAmIEdFTjExX0RFX1RDX0hPVFBMVUdfTUFT SzsKIAl1MzIgdHJpZ2dlcl90YnQgPSBpaXIgJiBHRU4xMV9ERV9UQlRfSE9UUExVR19NQVNLOwog CWxvbmdfcHVsc2VfZGV0ZWN0X2Z1bmMgbG9uZ19wdWxzZV9kZXRlY3Q7Ci0JY29uc3QgdTMyICpo cGQ7CiAKLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMikgeworCWlmIChJTlRFTF9HRU4o ZGV2X3ByaXYpID49IDEyKQogCQlsb25nX3B1bHNlX2RldGVjdCA9IGdlbjEyX3BvcnRfaG90cGx1 Z19sb25nX2RldGVjdDsKLQkJaHBkID0gaHBkX2dlbjEyOwotCX0gZWxzZSB7CisJZWxzZQogCQls b25nX3B1bHNlX2RldGVjdCA9IGdlbjExX3BvcnRfaG90cGx1Z19sb25nX2RldGVjdDsKLQkJaHBk ID0gaHBkX2dlbjExOwotCX0KIAogCWlmICh0cmlnZ2VyX3RjKSB7CiAJCXUzMiBkaWdfaG90cGx1 Z19yZWc7CkBAIC0yMTQ4LDggKzIxNzIsMTAgQEAgc3RhdGljIHZvaWQgZ2VuMTFfaHBkX2lycV9o YW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGlpcikKIAkJZGln X2hvdHBsdWdfcmVnID0gSTkxNV9SRUFEKEdFTjExX1RDX0hPVFBMVUdfQ1RMKTsKIAkJSTkxNV9X UklURShHRU4xMV9UQ19IT1RQTFVHX0NUTCwgZGlnX2hvdHBsdWdfcmVnKTsKIAotCQlpbnRlbF9n ZXRfaHBkX3BpbnMoZGV2X3ByaXYsICZwaW5fbWFzaywgJmxvbmdfbWFzaywgdHJpZ2dlcl90YywK LQkJCQkgICBkaWdfaG90cGx1Z19yZWcsIGhwZCwgbG9uZ19wdWxzZV9kZXRlY3QpOworCQlpbnRl bF9nZXRfaHBkX3BpbnMoZGV2X3ByaXYsICZwaW5fbWFzaywgJmxvbmdfbWFzaywKKwkJCQkgICB0 cmlnZ2VyX3RjLCBkaWdfaG90cGx1Z19yZWcsCisJCQkJICAgZGV2X3ByaXYtPmhvdHBsdWcuaHBk LAorCQkJCSAgIGxvbmdfcHVsc2VfZGV0ZWN0KTsKIAl9CiAKIAlpZiAodHJpZ2dlcl90YnQpIHsK QEAgLTIxNTgsOCArMjE4NCwxMCBAQCBzdGF0aWMgdm9pZCBnZW4xMV9ocGRfaXJxX2hhbmRsZXIo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCB1MzIgaWlyKQogCQlkaWdfaG90cGx1 Z19yZWcgPSBJOTE1X1JFQUQoR0VOMTFfVEJUX0hPVFBMVUdfQ1RMKTsKIAkJSTkxNV9XUklURShH RU4xMV9UQlRfSE9UUExVR19DVEwsIGRpZ19ob3RwbHVnX3JlZyk7CiAKLQkJaW50ZWxfZ2V0X2hw ZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssIHRyaWdnZXJfdGJ0LAotCQkJ CSAgIGRpZ19ob3RwbHVnX3JlZywgaHBkLCBsb25nX3B1bHNlX2RldGVjdCk7CisJCWludGVsX2dl dF9ocGRfcGlucyhkZXZfcHJpdiwgJnBpbl9tYXNrLCAmbG9uZ19tYXNrLAorCQkJCSAgIHRyaWdn ZXJfdGJ0LCBkaWdfaG90cGx1Z19yZWcsCisJCQkJICAgZGV2X3ByaXYtPmhvdHBsdWcuaHBkLAor CQkJCSAgIGxvbmdfcHVsc2VfZGV0ZWN0KTsKIAl9CiAKIAlpZiAocGluX21hc2spCkBAIC0yMjkw LDE1ICsyMzE4LDEzIEBAIGdlbjhfZGVfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCB1MzIgbWFzdGVyX2N0bCkKIAkJCWlmIChJU19HRU45X0xQKGRldl9wcml2 KSkgewogCQkJCXRtcF9tYXNrID0gaWlyICYgQlhUX0RFX1BPUlRfSE9UUExVR19NQVNLOwogCQkJ CWlmICh0bXBfbWFzaykgewotCQkJCQlieHRfaHBkX2lycV9oYW5kbGVyKGRldl9wcml2LCB0bXBf bWFzaywKLQkJCQkJCQkgICAgaHBkX2J4dCk7CisJCQkJCWJ4dF9ocGRfaXJxX2hhbmRsZXIoZGV2 X3ByaXYsIHRtcF9tYXNrKTsKIAkJCQkJZm91bmQgPSB0cnVlOwogCQkJCX0KIAkJCX0gZWxzZSBp ZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkgewogCQkJCXRtcF9tYXNrID0gaWlyICYgR0VOOF9Q T1JUX0RQX0FfSE9UUExVRzsKIAkJCQlpZiAodG1wX21hc2spIHsKLQkJCQkJaWxrX2hwZF9pcnFf aGFuZGxlcihkZXZfcHJpdiwKLQkJCQkJCQkgICAgdG1wX21hc2ssIGhwZF9iZHcpOworCQkJCQlp bGtfaHBkX2lycV9oYW5kbGVyKGRldl9wcml2LCB0bXBfbWFzayk7CiAJCQkJCWZvdW5kID0gdHJ1 ZTsKIAkJCQl9CiAJCQl9CkBAIC0yOTcwLDEzICsyOTk2LDEyIEBAIHN0YXRpYyB2b2lkIGlieF9o cGRfaXJxX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAl1MzIg aG90cGx1Z19pcnFzLCBlbmFibGVkX2lycXM7CiAKLQlpZiAoSEFTX1BDSF9JQlgoZGV2X3ByaXYp KSB7CisJaWYgKEhBU19QQ0hfSUJYKGRldl9wcml2KSkKIAkJaG90cGx1Z19pcnFzID0gU0RFX0hP VFBMVUdfTUFTSzsKLQkJZW5hYmxlZF9pcnFzID0gaW50ZWxfaHBkX2VuYWJsZWRfaXJxcyhkZXZf cHJpdiwgaHBkX2lieCk7Ci0JfSBlbHNlIHsKKwllbHNlCiAJCWhvdHBsdWdfaXJxcyA9IFNERV9I T1RQTFVHX01BU0tfQ1BUOwotCQllbmFibGVkX2lycXMgPSBpbnRlbF9ocGRfZW5hYmxlZF9pcnFz KGRldl9wcml2LCBocGRfY3B0KTsKLQl9CisKKwllbmFibGVkX2lycXMgPSBpbnRlbF9ocGRfZW5h YmxlZF9pcnFzKGRldl9wcml2LCBkZXZfcHJpdi0+aG90cGx1Zy5wY2hfaHBkKTsKIAogCWlieF9k aXNwbGF5X2ludGVycnVwdF91cGRhdGUoZGV2X3ByaXYsIGhvdHBsdWdfaXJxcywgZW5hYmxlZF9p cnFzKTsKIApAQCAtMzAwMiwxMyArMzAyNywxMiBAQCBzdGF0aWMgdm9pZCBpY3BfaHBkX2RldGVj dGlvbl9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAKIHN0YXRpYyB2 b2lkIGljcF9ocGRfaXJxX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK IAkJCSAgICAgIHUzMiBzZGVfZGRpX21hc2ssIHUzMiBzZGVfdGNfbWFzaywKLQkJCSAgICAgIHUz MiBkZGlfZW5hYmxlX21hc2ssIHUzMiB0Y19lbmFibGVfbWFzaywKLQkJCSAgICAgIGNvbnN0IHUz MiAqcGlucykKKwkJCSAgICAgIHUzMiBkZGlfZW5hYmxlX21hc2ssIHUzMiB0Y19lbmFibGVfbWFz aykKIHsKIAl1MzIgaG90cGx1Z19pcnFzLCBlbmFibGVkX2lycXM7CiAKIAlob3RwbHVnX2lycXMg PSBzZGVfZGRpX21hc2sgfCBzZGVfdGNfbWFzazsKLQllbmFibGVkX2lycXMgPSBpbnRlbF9ocGRf ZW5hYmxlZF9pcnFzKGRldl9wcml2LCBwaW5zKTsKKwllbmFibGVkX2lycXMgPSBpbnRlbF9ocGRf ZW5hYmxlZF9pcnFzKGRldl9wcml2LCBkZXZfcHJpdi0+aG90cGx1Zy5wY2hfaHBkKTsKIAogCUk5 MTVfV1JJVEUoU0hQRF9GSUxURVJfQ05ULCBTSFBEX0ZJTFRFUl9DTlRfNTAwX0FESik7CiAKQEAg LTMwMjUsOCArMzA0OSw3IEBAIHN0YXRpYyB2b2lkIG1jY19ocGRfaXJxX3NldHVwKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAlpY3BfaHBkX2lycV9zZXR1cChkZXZfcHJp diwKIAkJCSAgU0RFX0RESV9NQVNLX0lDUCwgU0RFX1RDX0hPVFBMVUdfSUNQKFBPUlRfVEMxKSwK LQkJCSAgSUNQX0RESV9IUERfRU5BQkxFX01BU0ssIElDUF9UQ19IUERfRU5BQkxFKFBPUlRfVEMx KSwKLQkJCSAgaHBkX2ljcCk7CisJCQkgIElDUF9ERElfSFBEX0VOQUJMRV9NQVNLLCBJQ1BfVENf SFBEX0VOQUJMRShQT1JUX1RDMSkpOwogfQogCiAvKgpAQCAtMzAzOCw4ICszMDYxLDcgQEAgc3Rh dGljIHZvaWQganNwX2hwZF9pcnFfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQogewogCWljcF9ocGRfaXJxX3NldHVwKGRldl9wcml2LAogCQkJICBTREVfRERJX01BU0tf VEdQLCAwLAotCQkJICBUR1BfRERJX0hQRF9FTkFCTEVfTUFTSywgMCwKLQkJCSAgaHBkX3RncCk7 CisJCQkgIFRHUF9ERElfSFBEX0VOQUJMRV9NQVNLLCAwKTsKIH0KIAogc3RhdGljIHZvaWQgZ2Vu MTFfaHBkX2RldGVjdGlvbl9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYp CkBAIC0zMDY0LDExICszMDg2LDkgQEAgc3RhdGljIHZvaWQgZ2VuMTFfaHBkX2RldGVjdGlvbl9z ZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiBzdGF0aWMgdm9pZCBnZW4x MV9ocGRfaXJxX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKIAl1 MzIgaG90cGx1Z19pcnFzLCBlbmFibGVkX2lycXM7Ci0JY29uc3QgdTMyICpocGQ7CiAJdTMyIHZh bDsKIAotCWhwZCA9IElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIgPyBocGRfZ2VuMTIgOiBocGRf Z2VuMTE7Ci0JZW5hYmxlZF9pcnFzID0gaW50ZWxfaHBkX2VuYWJsZWRfaXJxcyhkZXZfcHJpdiwg aHBkKTsKKwllbmFibGVkX2lycXMgPSBpbnRlbF9ocGRfZW5hYmxlZF9pcnFzKGRldl9wcml2LCBk ZXZfcHJpdi0+aG90cGx1Zy5ocGQpOwogCWhvdHBsdWdfaXJxcyA9IEdFTjExX0RFX1RDX0hPVFBM VUdfTUFTSyB8IEdFTjExX0RFX1RCVF9IT1RQTFVHX01BU0s7CiAKIAl2YWwgPSBJOTE1X1JFQUQo R0VOMTFfREVfSFBEX0lNUik7CkBAIC0zMDgwLDEyICszMTAwLDEwIEBAIHN0YXRpYyB2b2lkIGdl bjExX2hwZF9pcnFfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCiAJ aWYgKElOVEVMX1BDSF9UWVBFKGRldl9wcml2KSA+PSBQQ0hfVEdQKQogCQlpY3BfaHBkX2lycV9z ZXR1cChkZXZfcHJpdiwgU0RFX0RESV9NQVNLX1RHUCwgU0RFX1RDX01BU0tfVEdQLAotCQkJCSAg VEdQX0RESV9IUERfRU5BQkxFX01BU0ssCi0JCQkJICBUR1BfVENfSFBEX0VOQUJMRV9NQVNLLCBo cGRfdGdwKTsKKwkJCQkgIFRHUF9ERElfSFBEX0VOQUJMRV9NQVNLLCBUR1BfVENfSFBEX0VOQUJM RV9NQVNLKTsKIAllbHNlIGlmIChJTlRFTF9QQ0hfVFlQRShkZXZfcHJpdikgPj0gUENIX0lDUCkK IAkJaWNwX2hwZF9pcnFfc2V0dXAoZGV2X3ByaXYsIFNERV9ERElfTUFTS19JQ1AsIFNERV9UQ19N QVNLX0lDUCwKLQkJCQkgIElDUF9ERElfSFBEX0VOQUJMRV9NQVNLLAotCQkJCSAgSUNQX1RDX0hQ RF9FTkFCTEVfTUFTSywgaHBkX2ljcCk7CisJCQkJICBJQ1BfRERJX0hQRF9FTkFCTEVfTUFTSywg SUNQX1RDX0hQRF9FTkFCTEVfTUFTSyk7CiB9CiAKIHN0YXRpYyB2b2lkIHNwdF9ocGRfZGV0ZWN0 aW9uX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKQEAgLTMxMjEsNyAr MzEzOSw3IEBAIHN0YXRpYyB2b2lkIHNwdF9ocGRfaXJxX3NldHVwKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAkJSTkxNV9XUklURShTSFBEX0ZJTFRFUl9DTlQsIFNIUERfRklM VEVSX0NOVF81MDBfQURKKTsKIAogCWhvdHBsdWdfaXJxcyA9IFNERV9IT1RQTFVHX01BU0tfU1BU OwotCWVuYWJsZWRfaXJxcyA9IGludGVsX2hwZF9lbmFibGVkX2lycXMoZGV2X3ByaXYsIGhwZF9z cHQpOworCWVuYWJsZWRfaXJxcyA9IGludGVsX2hwZF9lbmFibGVkX2lycXMoZGV2X3ByaXYsIGRl dl9wcml2LT5ob3RwbHVnLnBjaF9ocGQpOwogCiAJaWJ4X2Rpc3BsYXlfaW50ZXJydXB0X3VwZGF0 ZShkZXZfcHJpdiwgaG90cGx1Z19pcnFzLCBlbmFibGVkX2lycXMpOwogCkBAIC0zMTUwLDE3ICsz MTY4LDE3IEBAIHN0YXRpYyB2b2lkIGlsa19ocGRfaXJxX3NldHVwKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdikKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDgpIHsKIAkJ aG90cGx1Z19pcnFzID0gR0VOOF9QT1JUX0RQX0FfSE9UUExVRzsKLQkJZW5hYmxlZF9pcnFzID0g aW50ZWxfaHBkX2VuYWJsZWRfaXJxcyhkZXZfcHJpdiwgaHBkX2Jkdyk7CisJCWVuYWJsZWRfaXJx cyA9IGludGVsX2hwZF9lbmFibGVkX2lycXMoZGV2X3ByaXYsIGRldl9wcml2LT5ob3RwbHVnLmhw ZCk7CiAKIAkJYmR3X3VwZGF0ZV9wb3J0X2lycShkZXZfcHJpdiwgaG90cGx1Z19pcnFzLCBlbmFi bGVkX2lycXMpOwogCX0gZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA3KSB7CiAJCWhv dHBsdWdfaXJxcyA9IERFX0RQX0FfSE9UUExVR19JVkI7Ci0JCWVuYWJsZWRfaXJxcyA9IGludGVs X2hwZF9lbmFibGVkX2lycXMoZGV2X3ByaXYsIGhwZF9pdmIpOworCQllbmFibGVkX2lycXMgPSBp bnRlbF9ocGRfZW5hYmxlZF9pcnFzKGRldl9wcml2LCBkZXZfcHJpdi0+aG90cGx1Zy5ocGQpOwog CiAJCWlsa191cGRhdGVfZGlzcGxheV9pcnEoZGV2X3ByaXYsIGhvdHBsdWdfaXJxcywgZW5hYmxl ZF9pcnFzKTsKIAl9IGVsc2UgewogCQlob3RwbHVnX2lycXMgPSBERV9EUF9BX0hPVFBMVUc7Ci0J CWVuYWJsZWRfaXJxcyA9IGludGVsX2hwZF9lbmFibGVkX2lycXMoZGV2X3ByaXYsIGhwZF9pbGsp OworCQllbmFibGVkX2lycXMgPSBpbnRlbF9ocGRfZW5hYmxlZF9pcnFzKGRldl9wcml2LCBkZXZf cHJpdi0+aG90cGx1Zy5ocGQpOwogCiAJCWlsa191cGRhdGVfZGlzcGxheV9pcnEoZGV2X3ByaXYs IGhvdHBsdWdfaXJxcywgZW5hYmxlZF9pcnFzKTsKIAl9CkBAIC0zMjExLDcgKzMyMjksNyBAQCBz dGF0aWMgdm9pZCBieHRfaHBkX2lycV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiB7CiAJdTMyIGhvdHBsdWdfaXJxcywgZW5hYmxlZF9pcnFzOwogCi0JZW5hYmxlZF9p cnFzID0gaW50ZWxfaHBkX2VuYWJsZWRfaXJxcyhkZXZfcHJpdiwgaHBkX2J4dCk7CisJZW5hYmxl ZF9pcnFzID0gaW50ZWxfaHBkX2VuYWJsZWRfaXJxcyhkZXZfcHJpdiwgZGV2X3ByaXYtPmhvdHBs dWcuaHBkKTsKIAlob3RwbHVnX2lycXMgPSBCWFRfREVfUE9SVF9IT1RQTFVHX01BU0s7CiAKIAli ZHdfdXBkYXRlX3BvcnRfaXJxKGRldl9wcml2LCBob3RwbHVnX2lycXMsIGVuYWJsZWRfaXJxcyk7 CkBAIC0zOTE3LDYgKzM5MzUsOCBAQCB2b2lkIGludGVsX2lycV9pbml0KHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdikKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gJmRldl9wcml2 LT5kcm07CiAJaW50IGk7CiAKKwlpbnRlbF9ocGRfaW5pdF9waW5zKGRldl9wcml2KTsKKwogCWlu dGVsX2hwZF9pbml0X3dvcmsoZGV2X3ByaXYpOwogCiAJSU5JVF9XT1JLKCZkZXZfcHJpdi0+bDNf cGFyaXR5LmVycm9yX3dvcmssIGl2Yl9wYXJpdHlfd29yayk7Ci0tIAoyLjI0LjEKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=