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 25FFFC38A2A for ; Thu, 7 May 2020 11:48:14 +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 F0F7620735 for ; Thu, 7 May 2020 11:48:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F0F7620735 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 86FA06E0EC; Thu, 7 May 2020 11:48:13 +0000 (UTC) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id AD4746E0EC for ; Thu, 7 May 2020 11:48:12 +0000 (UTC) IronPort-SDR: ihjBOHm1T6AjfQKEJdZr1ZWiN8vJizRjm6cNz9P8QLVsIseQsKUn9ip45otI5eagLKrlj1s09v 6UZZWez3cuQw== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 May 2020 04:48:12 -0700 IronPort-SDR: 3mgrRG2mX5mjNuyQOMtnsUFvVz48uV5qhzij0PFoYvD6csGxZW65sQlW6pBT1E8ozzu4P4amHa Pph3p+K3EDbA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,363,1583222400"; d="scan'208";a="339328412" Received: from stinkbox.fi.intel.com (HELO stinkbox) ([10.237.72.174]) by orsmga001.jf.intel.com with SMTP; 07 May 2020 04:48:09 -0700 Received: by stinkbox (sSMTP sendmail emulation); Thu, 07 May 2020 14:48:08 +0300 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Date: Thu, 7 May 2020 14:48:08 +0300 Message-Id: <20200507114808.6150-1-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200311155422.3043-3-ville.syrjala@linux.intel.com> References: <20200311155422.3043-3-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v4 2/3] 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 Cm1ha2UgdGhlIGhwZCBoYW5kbGluZyBtb3JlIGFic3RyYWN0IHlldC4KCnYyOiBSZW1lYmVyIGNu cCAoSW1yZSkKICAgIEFkZCBNSVNTSU5HX0NBU0UoKSBmb3IgdW5rbm93biBQQ0hzIChJbXJlKQoK Q2M6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogVmlsbGUg U3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dw dS9kcm0vaTkxNS9pOTE1X2Rydi5oIHwgICAyICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf aXJxLmMgfCAyMDMgKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hh bmdlZCwgMTE2IGluc2VydGlvbnMoKyksIDg5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X2Rydi5oCmluZGV4IDZhZjY5NTU1NzMzZS4uMTU1ZjNmYTMyODZjIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfZHJ2LmgKQEAgLTE0OCw2ICsxNDgsOCBAQCBlbnVtIGhwZF9waW4gewogc3RydWN0IGk5MTVf aG90cGx1ZyB7CiAJc3RydWN0IGRlbGF5ZWRfd29yayBob3RwbHVnX3dvcms7CiAKKwljb25zdCB1 MzIgKmhwZCwgKnBjaF9ocGQ7CisKIAlzdHJ1Y3QgewogCQl1bnNpZ25lZCBsb25nIGxhc3Rfamlm ZmllczsKIAkJaW50IGNvdW50OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9pcnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5kZXggZWE0Yzg3Nzg0 YTI3Li40ZGM2MDFkZmZjMDggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf aXJxLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtMTI0LDcgKzEy NCw2IEBAIHN0YXRpYyBjb25zdCB1MzIgaHBkX3N0YXR1c19pOTE1W0hQRF9OVU1fUElOU10gPSB7 CiAJW0hQRF9QT1JUX0RdID0gUE9SVERfSE9UUExVR19JTlRfU1RBVFVTLAogfTsKIAotLyogQlhU IGhwZCBsaXN0ICovCiBzdGF0aWMgY29uc3QgdTMyIGhwZF9ieHRbSFBEX05VTV9QSU5TXSA9IHsK IAlbSFBEX1BPUlRfQV0gPSBCWFRfREVfUE9SVF9IUF9ERElBLAogCVtIUERfUE9SVF9CXSA9IEJY VF9ERV9QT1JUX0hQX0RESUIsCkBAIC0xNjgsNiArMTY3LDQ5IEBAIHN0YXRpYyBjb25zdCB1MzIg aHBkX3RncFtIUERfTlVNX1BJTlNdID0gewogCVtIUERfUE9SVF9JXSA9IFNERV9UQ19IT1RQTFVH X0lDUChQT1JUX1RDNiksCiB9OwogCitzdGF0aWMgdm9pZCBpbnRlbF9ocGRfaW5pdF9waW5zKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlzdHJ1Y3QgaTkxNV9ob3RwbHVn ICpocGQgPSAmZGV2X3ByaXYtPmhvdHBsdWc7CisKKwlpZiAoSEFTX0dNQ0goZGV2X3ByaXYpKSB7 CisJCWlmIChJU19HNFgoZGV2X3ByaXYpIHx8IElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8CisJ CSAgICBJU19DSEVSUllWSUVXKGRldl9wcml2KSkKKwkJCWhwZC0+aHBkID0gaHBkX3N0YXR1c19n NHg7CisJCWVsc2UKKwkJCWhwZC0+aHBkID0gaHBkX3N0YXR1c19pOTE1OworCQlyZXR1cm47CisJ fQorCisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpCisJCWhwZC0+aHBkID0gaHBkX2dl bjEyOworCWVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEpCisJCWhwZC0+aHBkID0g aHBkX2dlbjExOworCWVsc2UgaWYgKElTX0dFTjlfTFAoZGV2X3ByaXYpKQorCQlocGQtPmhwZCA9 IGhwZF9ieHQ7CisJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA4KQorCQlocGQtPmhw ZCA9IGhwZF9iZHc7CisJZWxzZSBpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA3KQorCQlocGQt PmhwZCA9IGhwZF9pdmI7CisJZWxzZQorCQlocGQtPmhwZCA9IGhwZF9pbGs7CisKKwlpZiAoIUhB U19QQ0hfU1BMSVQoZGV2X3ByaXYpIHx8IEhBU19QQ0hfTk9QKGRldl9wcml2KSkKKwkJcmV0dXJu OworCisJaWYgKEhBU19QQ0hfVEdQKGRldl9wcml2KSB8fCBIQVNfUENIX0pTUChkZXZfcHJpdikp CisJCWhwZC0+cGNoX2hwZCA9IGhwZF90Z3A7CisJZWxzZSBpZiAoSEFTX1BDSF9JQ1AoZGV2X3By aXYpIHx8IEhBU19QQ0hfTUNDKGRldl9wcml2KSkKKwkJaHBkLT5wY2hfaHBkID0gaHBkX2ljcDsK KwllbHNlIGlmIChIQVNfUENIX0NOUChkZXZfcHJpdikgfHwgSEFTX1BDSF9TUFQoZGV2X3ByaXYp KQorCQlocGQtPnBjaF9ocGQgPSBocGRfc3B0OworCWVsc2UgaWYgKEhBU19QQ0hfTFBUKGRldl9w cml2KSB8fCBIQVNfUENIX0NQVChkZXZfcHJpdikpCisJCWhwZC0+cGNoX2hwZCA9IGhwZF9jcHQ7 CisJZWxzZSBpZiAoSEFTX1BDSF9JQlgoZGV2X3ByaXYpKQorCQlocGQtPnBjaF9ocGQgPSBocGRf aWJ4OworCWVsc2UKKwkJTUlTU0lOR19DQVNFKElOVEVMX1BDSF9UWVBFKGRldl9wcml2KSk7Cit9 CisKIHN0YXRpYyB2b2lkCiBpbnRlbF9oYW5kbGVfdmJsYW5rKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwgZW51bSBwaXBlIHBpcGUpCiB7CkBAIC0xNTA0LDMzICsxNTQ2LDI3IEBA IHN0YXRpYyB2b2lkIGk5eHhfaHBkX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiwKIAkJCQkgdTMyIGhvdHBsdWdfc3RhdHVzKQogewogCXUzMiBwaW5fbWFzayA9 IDAsIGxvbmdfbWFzayA9IDA7CisJdTMyIGhvdHBsdWdfdHJpZ2dlcjsKIAotCWlmIChJU19HNFgo ZGV2X3ByaXYpIHx8IElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8Ci0JICAgIElTX0NIRVJSWVZJ RVcoZGV2X3ByaXYpKSB7Ci0JCXUzMiBob3RwbHVnX3RyaWdnZXIgPSBob3RwbHVnX3N0YXR1cyAm IEhPVFBMVUdfSU5UX1NUQVRVU19HNFg7Ci0KLQkJaWYgKGhvdHBsdWdfdHJpZ2dlcikgewotCQkJ aW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssCi0JCQkJ CSAgIGhvdHBsdWdfdHJpZ2dlciwgaG90cGx1Z190cmlnZ2VyLAotCQkJCQkgICBocGRfc3RhdHVz X2c0eCwKLQkJCQkJICAgaTl4eF9wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QpOworCWlmIChJU19H NFgoZGV2X3ByaXYpIHx8CisJICAgIElTX1ZBTExFWVZJRVcoZGV2X3ByaXYpIHx8IElTX0NIRVJS WVZJRVcoZGV2X3ByaXYpKQorCQlob3RwbHVnX3RyaWdnZXIgPSBob3RwbHVnX3N0YXR1cyAmIEhP VFBMVUdfSU5UX1NUQVRVU19HNFg7CisJZWxzZQorCQlob3RwbHVnX3RyaWdnZXIgPSBob3RwbHVn X3N0YXR1cyAmIEhPVFBMVUdfSU5UX1NUQVRVU19JOTE1OwogCi0JCQlpbnRlbF9ocGRfaXJxX2hh bmRsZXIoZGV2X3ByaXYsIHBpbl9tYXNrLCBsb25nX21hc2spOwotCQl9CisJaWYgKGhvdHBsdWdf dHJpZ2dlcikgeworCQlpbnRlbF9nZXRfaHBkX3BpbnMoZGV2X3ByaXYsICZwaW5fbWFzaywgJmxv bmdfbWFzaywKKwkJCQkgICBob3RwbHVnX3RyaWdnZXIsIGhvdHBsdWdfdHJpZ2dlciwKKwkJCQkg ICBkZXZfcHJpdi0+aG90cGx1Zy5ocGQsCisJCQkJICAgaTl4eF9wb3J0X2hvdHBsdWdfbG9uZ19k ZXRlY3QpOwogCi0JCWlmIChob3RwbHVnX3N0YXR1cyAmIERQX0FVWF9DSEFOTkVMX01BU0tfSU5U X1NUQVRVU19HNFgpCi0JCQlkcF9hdXhfaXJxX2hhbmRsZXIoZGV2X3ByaXYpOwotCX0gZWxzZSB7 Ci0JCXUzMiBob3RwbHVnX3RyaWdnZXIgPSBob3RwbHVnX3N0YXR1cyAmIEhPVFBMVUdfSU5UX1NU QVRVU19JOTE1OwotCi0JCWlmIChob3RwbHVnX3RyaWdnZXIpIHsKLQkJCWludGVsX2dldF9ocGRf cGlucyhkZXZfcHJpdiwgJnBpbl9tYXNrLCAmbG9uZ19tYXNrLAotCQkJCQkgICBob3RwbHVnX3Ry aWdnZXIsIGhvdHBsdWdfdHJpZ2dlciwKLQkJCQkJICAgaHBkX3N0YXR1c19pOTE1LAotCQkJCQkg ICBpOXh4X3BvcnRfaG90cGx1Z19sb25nX2RldGVjdCk7Ci0JCQlpbnRlbF9ocGRfaXJxX2hhbmRs ZXIoZGV2X3ByaXYsIHBpbl9tYXNrLCBsb25nX21hc2spOwotCQl9CisJCWludGVsX2hwZF9pcnFf aGFuZGxlcihkZXZfcHJpdiwgcGluX21hc2ssIGxvbmdfbWFzayk7CiAJfQorCisJaWYgKChJU19H NFgoZGV2X3ByaXYpIHx8CisJICAgICBJU19WQUxMRVlWSUVXKGRldl9wcml2KSB8fCBJU19DSEVS UllWSUVXKGRldl9wcml2KSkgJiYKKwkgICAgaG90cGx1Z19zdGF0dXMgJiBEUF9BVVhfQ0hBTk5F TF9NQVNLX0lOVF9TVEFUVVNfRzRYKQorCQlkcF9hdXhfaXJxX2hhbmRsZXIoZGV2X3ByaXYpOwog fQogCiBzdGF0aWMgaXJxcmV0dXJuX3QgdmFsbGV5dmlld19pcnFfaGFuZGxlcihpbnQgaXJxLCB2 b2lkICphcmcpCkBAIC0xNjk2LDggKzE3MzIsNyBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgY2hlcnJ5 dmlld19pcnFfaGFuZGxlcihpbnQgaXJxLCB2b2lkICphcmcpCiB9CiAKIHN0YXRpYyB2b2lkIGli eF9ocGRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJ CXUzMiBob3RwbHVnX3RyaWdnZXIsCi0JCQkJY29uc3QgdTMyIGhwZFtIUERfTlVNX1BJTlNdKQor CQkJCXUzMiBob3RwbHVnX3RyaWdnZXIpCiB7CiAJdTMyIGRpZ19ob3RwbHVnX3JlZywgcGluX21h c2sgPSAwLCBsb25nX21hc2sgPSAwOwogCkBAIC0xNzIwLDggKzE3NTUsOSBAQCBzdGF0aWMgdm9p ZCBpYnhfaHBkX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwK IAlpZiAoIWhvdHBsdWdfdHJpZ2dlcikKIAkJcmV0dXJuOwogCi0JaW50ZWxfZ2V0X2hwZF9waW5z KGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssIGhvdHBsdWdfdHJpZ2dlciwKLQkJCSAg IGRpZ19ob3RwbHVnX3JlZywgaHBkLAorCWludGVsX2dldF9ocGRfcGlucyhkZXZfcHJpdiwgJnBp bl9tYXNrLCAmbG9uZ19tYXNrLAorCQkJICAgaG90cGx1Z190cmlnZ2VyLCBkaWdfaG90cGx1Z19y ZWcsCisJCQkgICBkZXZfcHJpdi0+aG90cGx1Zy5wY2hfaHBkLAogCQkJICAgcGNoX3BvcnRfaG90 cGx1Z19sb25nX2RldGVjdCk7CiAKIAlpbnRlbF9ocGRfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIHBp bl9tYXNrLCBsb25nX21hc2spOwpAQCAtMTczMiw3ICsxNzY4LDcgQEAgc3RhdGljIHZvaWQgaWJ4 X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBjaF9p aXIpCiAJZW51bSBwaXBlIHBpcGU7CiAJdTMyIGhvdHBsdWdfdHJpZ2dlciA9IHBjaF9paXIgJiBT REVfSE9UUExVR19NQVNLOwogCi0JaWJ4X2hwZF9pcnFfaGFuZGxlcihkZXZfcHJpdiwgaG90cGx1 Z190cmlnZ2VyLCBocGRfaWJ4KTsKKwlpYnhfaHBkX2lycV9oYW5kbGVyKGRldl9wcml2LCBob3Rw bHVnX3RyaWdnZXIpOwogCiAJaWYgKHBjaF9paXIgJiBTREVfQVVESU9fUE9XRVJfTUFTSykgewog CQlpbnQgcG9ydCA9IGZmcygocGNoX2lpciAmIFNERV9BVURJT19QT1dFUl9NQVNLKSA+PgpAQCAt MTgyMCw3ICsxODU2LDcgQEAgc3RhdGljIHZvaWQgY3B0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBjaF9paXIpCiAJZW51bSBwaXBlIHBpcGU7CiAJ dTMyIGhvdHBsdWdfdHJpZ2dlciA9IHBjaF9paXIgJiBTREVfSE9UUExVR19NQVNLX0NQVDsKIAot CWlieF9ocGRfaXJxX2hhbmRsZXIoZGV2X3ByaXYsIGhvdHBsdWdfdHJpZ2dlciwgaHBkX2NwdCk7 CisJaWJ4X2hwZF9pcnFfaGFuZGxlcihkZXZfcHJpdiwgaG90cGx1Z190cmlnZ2VyKTsKIAogCWlm IChwY2hfaWlyICYgU0RFX0FVRElPX1BPV0VSX01BU0tfQ1BUKSB7CiAJCWludCBwb3J0ID0gZmZz KChwY2hfaWlyICYgU0RFX0FVRElPX1BPV0VSX01BU0tfQ1BUKSA+PgpAQCAtMTg1NywyMiArMTg5 MywxOCBAQCBzdGF0aWMgdm9pZCBpY3BfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LCB1MzIgcGNoX2lpcikKIAl1MzIgZGRpX2hvdHBsdWdfdHJpZ2dlciwgdGNf aG90cGx1Z190cmlnZ2VyOwogCXUzMiBwaW5fbWFzayA9IDAsIGxvbmdfbWFzayA9IDA7CiAJYm9v bCAoKnRjX3BvcnRfaG90cGx1Z19sb25nX2RldGVjdCkoZW51bSBocGRfcGluIHBpbiwgdTMyIHZh bCk7Ci0JY29uc3QgdTMyICpwaW5zOwogCiAJaWYgKEhBU19QQ0hfVEdQKGRldl9wcml2KSkgewog CQlkZGlfaG90cGx1Z190cmlnZ2VyID0gcGNoX2lpciAmIFNERV9ERElfTUFTS19UR1A7CiAJCXRj X2hvdHBsdWdfdHJpZ2dlciA9IHBjaF9paXIgJiBTREVfVENfTUFTS19UR1A7CiAJCXRjX3BvcnRf aG90cGx1Z19sb25nX2RldGVjdCA9IHRncF90Y19wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3Q7Ci0J CXBpbnMgPSBocGRfdGdwOwogCX0gZWxzZSBpZiAoSEFTX1BDSF9KU1AoZGV2X3ByaXYpKSB7CiAJ CWRkaV9ob3RwbHVnX3RyaWdnZXIgPSBwY2hfaWlyICYgU0RFX0RESV9NQVNLX1RHUDsKIAkJdGNf aG90cGx1Z190cmlnZ2VyID0gMDsKLQkJcGlucyA9IGhwZF90Z3A7CiAJfSBlbHNlIGlmIChIQVNf UENIX01DQyhkZXZfcHJpdikpIHsKIAkJZGRpX2hvdHBsdWdfdHJpZ2dlciA9IHBjaF9paXIgJiBT REVfRERJX01BU0tfSUNQOwogCQl0Y19ob3RwbHVnX3RyaWdnZXIgPSBwY2hfaWlyICYgU0RFX1RD X0hPVFBMVUdfSUNQKFBPUlRfVEMxKTsKIAkJdGNfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0ID0g aWNwX3RjX3BvcnRfaG90cGx1Z19sb25nX2RldGVjdDsKLQkJcGlucyA9IGhwZF9pY3A7CiAJfSBl bHNlIHsKIAkJZHJtX1dBUk4oJmRldl9wcml2LT5kcm0sICFIQVNfUENIX0lDUChkZXZfcHJpdiks CiAJCQkgIlVucmVjb2duaXplZCBQQ0ggdHlwZSAweCV4XG4iLApAQCAtMTg4MSw3ICsxOTEzLDYg QEAgc3RhdGljIHZvaWQgaWNwX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgdTMyIHBjaF9paXIpCiAJCWRkaV9ob3RwbHVnX3RyaWdnZXIgPSBwY2hfaWlyICYg U0RFX0RESV9NQVNLX0lDUDsKIAkJdGNfaG90cGx1Z190cmlnZ2VyID0gcGNoX2lpciAmIFNERV9U Q19NQVNLX0lDUDsKIAkJdGNfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0ID0gaWNwX3RjX3BvcnRf aG90cGx1Z19sb25nX2RldGVjdDsKLQkJcGlucyA9IGhwZF9pY3A7CiAJfQogCiAJaWYgKGRkaV9o b3RwbHVnX3RyaWdnZXIpIHsKQEAgLTE4OTEsOCArMTkyMiw4IEBAIHN0YXRpYyB2b2lkIGljcF9p cnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBwY2hfaWly KQogCQlJOTE1X1dSSVRFKFNIT1RQTFVHX0NUTF9EREksIGRpZ19ob3RwbHVnX3JlZyk7CiAKIAkJ aW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssCi0JCQkJ ICAgZGRpX2hvdHBsdWdfdHJpZ2dlciwKLQkJCQkgICBkaWdfaG90cGx1Z19yZWcsIHBpbnMsCisJ CQkJICAgZGRpX2hvdHBsdWdfdHJpZ2dlciwgZGlnX2hvdHBsdWdfcmVnLAorCQkJCSAgIGRldl9w cml2LT5ob3RwbHVnLnBjaF9ocGQsCiAJCQkJICAgaWNwX2RkaV9wb3J0X2hvdHBsdWdfbG9uZ19k ZXRlY3QpOwogCX0KIApAQCAtMTkwMyw4ICsxOTM0LDggQEAgc3RhdGljIHZvaWQgaWNwX2lycV9o YW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBjaF9paXIpCiAJ CUk5MTVfV1JJVEUoU0hPVFBMVUdfQ1RMX1RDLCBkaWdfaG90cGx1Z19yZWcpOwogCiAJCWludGVs X2dldF9ocGRfcGlucyhkZXZfcHJpdiwgJnBpbl9tYXNrLCAmbG9uZ19tYXNrLAotCQkJCSAgIHRj X2hvdHBsdWdfdHJpZ2dlciwKLQkJCQkgICBkaWdfaG90cGx1Z19yZWcsIHBpbnMsCisJCQkJICAg dGNfaG90cGx1Z190cmlnZ2VyLCBkaWdfaG90cGx1Z19yZWcsCisJCQkJICAgZGV2X3ByaXYtPmhv dHBsdWcucGNoX2hwZCwKIAkJCQkgICB0Y19wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QpOwogCX0K IApAQCAtMTkyOSw3ICsxOTYwLDggQEAgc3RhdGljIHZvaWQgc3B0X2lycV9oYW5kbGVyKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBjaF9paXIpCiAJCUk5MTVfV1JJVEUo UENIX1BPUlRfSE9UUExVRywgZGlnX2hvdHBsdWdfcmVnKTsKIAogCQlpbnRlbF9nZXRfaHBkX3Bp bnMoZGV2X3ByaXYsICZwaW5fbWFzaywgJmxvbmdfbWFzaywKLQkJCQkgICBob3RwbHVnX3RyaWdn ZXIsIGRpZ19ob3RwbHVnX3JlZywgaHBkX3NwdCwKKwkJCQkgICBob3RwbHVnX3RyaWdnZXIsIGRp Z19ob3RwbHVnX3JlZywKKwkJCQkgICBkZXZfcHJpdi0+aG90cGx1Zy5wY2hfaHBkLAogCQkJCSAg IHNwdF9wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3QpOwogCX0KIApAQCAtMTk0MCw3ICsxOTcyLDgg QEAgc3RhdGljIHZvaWQgc3B0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiwgdTMyIHBjaF9paXIpCiAJCUk5MTVfV1JJVEUoUENIX1BPUlRfSE9UUExVRzIsIGRp Z19ob3RwbHVnX3JlZyk7CiAKIAkJaW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21h c2ssICZsb25nX21hc2ssCi0JCQkJICAgaG90cGx1ZzJfdHJpZ2dlciwgZGlnX2hvdHBsdWdfcmVn LCBocGRfc3B0LAorCQkJCSAgIGhvdHBsdWcyX3RyaWdnZXIsIGRpZ19ob3RwbHVnX3JlZywKKwkJ CQkgICBkZXZfcHJpdi0+aG90cGx1Zy5wY2hfaHBkLAogCQkJCSAgIHNwdF9wb3J0X2hvdHBsdWcy X2xvbmdfZGV0ZWN0KTsKIAl9CiAKQEAgLTE5NTIsMTYgKzE5ODUsMTYgQEAgc3RhdGljIHZvaWQg c3B0X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIHBj aF9paXIpCiB9CiAKIHN0YXRpYyB2b2lkIGlsa19ocGRfaXJxX2hhbmRsZXIoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJCXUzMiBob3RwbHVnX3RyaWdnZXIsCi0JCQkJY29u c3QgdTMyIGhwZFtIUERfTlVNX1BJTlNdKQorCQkJCXUzMiBob3RwbHVnX3RyaWdnZXIpCiB7CiAJ dTMyIGRpZ19ob3RwbHVnX3JlZywgcGluX21hc2sgPSAwLCBsb25nX21hc2sgPSAwOwogCiAJZGln X2hvdHBsdWdfcmVnID0gSTkxNV9SRUFEKERJR0lUQUxfUE9SVF9IT1RQTFVHX0NOVFJMKTsKIAlJ OTE1X1dSSVRFKERJR0lUQUxfUE9SVF9IT1RQTFVHX0NOVFJMLCBkaWdfaG90cGx1Z19yZWcpOwog Ci0JaW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssIGhv dHBsdWdfdHJpZ2dlciwKLQkJCSAgIGRpZ19ob3RwbHVnX3JlZywgaHBkLAorCWludGVsX2dldF9o cGRfcGlucyhkZXZfcHJpdiwgJnBpbl9tYXNrLCAmbG9uZ19tYXNrLAorCQkJICAgaG90cGx1Z190 cmlnZ2VyLCBkaWdfaG90cGx1Z19yZWcsCisJCQkgICBkZXZfcHJpdi0+aG90cGx1Zy5ocGQsCiAJ CQkgICBpbGtfcG9ydF9ob3RwbHVnX2xvbmdfZGV0ZWN0KTsKIAogCWludGVsX2hwZF9pcnFfaGFu ZGxlcihkZXZfcHJpdiwgcGluX21hc2ssIGxvbmdfbWFzayk7CkBAIC0xOTc0LDcgKzIwMDcsNyBA QCBzdGF0aWMgdm9pZCBpbGtfZGlzcGxheV9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJdTMyIGhvdHBsdWdfdHJpZ2dlciA9IGRlX2lpciAmIERFX0RQX0Ff SE9UUExVRzsKIAogCWlmIChob3RwbHVnX3RyaWdnZXIpCi0JCWlsa19ocGRfaXJxX2hhbmRsZXIo ZGV2X3ByaXYsIGhvdHBsdWdfdHJpZ2dlciwgaHBkX2lsayk7CisJCWlsa19ocGRfaXJxX2hhbmRs ZXIoZGV2X3ByaXYsIGhvdHBsdWdfdHJpZ2dlcik7CiAKIAlpZiAoZGVfaWlyICYgREVfQVVYX0NI QU5ORUxfQSkKIAkJZHBfYXV4X2lycV9oYW5kbGVyKGRldl9wcml2KTsKQEAgLTIwMjAsNyArMjA1 Myw3IEBAIHN0YXRpYyB2b2lkIGl2Yl9kaXNwbGF5X2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwKIAl1MzIgaG90cGx1Z190cmlnZ2VyID0gZGVfaWlyICYgREVf RFBfQV9IT1RQTFVHX0lWQjsKIAogCWlmIChob3RwbHVnX3RyaWdnZXIpCi0JCWlsa19ocGRfaXJx X2hhbmRsZXIoZGV2X3ByaXYsIGhvdHBsdWdfdHJpZ2dlciwgaHBkX2l2Yik7CisJCWlsa19ocGRf aXJxX2hhbmRsZXIoZGV2X3ByaXYsIGhvdHBsdWdfdHJpZ2dlcik7CiAKIAlpZiAoZGVfaWlyICYg REVfRVJSX0lOVF9JVkIpCiAJCWl2Yl9lcnJfaW50X2hhbmRsZXIoZGV2X3ByaXYpOwpAQCAtMjEz MCwxNiArMjE2MywxNiBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgaWxrX2lycV9oYW5kbGVyKGludCBp cnEsIHZvaWQgKmFyZykKIH0KIAogc3RhdGljIHZvaWQgYnh0X2hwZF9pcnFfaGFuZGxlcihzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJdTMyIGhvdHBsdWdfdHJpZ2dlciwK LQkJCQljb25zdCB1MzIgaHBkW0hQRF9OVU1fUElOU10pCisJCQkJdTMyIGhvdHBsdWdfdHJpZ2dl cikKIHsKIAl1MzIgZGlnX2hvdHBsdWdfcmVnLCBwaW5fbWFzayA9IDAsIGxvbmdfbWFzayA9IDA7 CiAKIAlkaWdfaG90cGx1Z19yZWcgPSBJOTE1X1JFQUQoUENIX1BPUlRfSE9UUExVRyk7CiAJSTkx NV9XUklURShQQ0hfUE9SVF9IT1RQTFVHLCBkaWdfaG90cGx1Z19yZWcpOwogCi0JaW50ZWxfZ2V0 X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssIGhvdHBsdWdfdHJpZ2dl ciwKLQkJCSAgIGRpZ19ob3RwbHVnX3JlZywgaHBkLAorCWludGVsX2dldF9ocGRfcGlucyhkZXZf cHJpdiwgJnBpbl9tYXNrLCAmbG9uZ19tYXNrLAorCQkJICAgaG90cGx1Z190cmlnZ2VyLCBkaWdf aG90cGx1Z19yZWcsCisJCQkgICBkZXZfcHJpdi0+aG90cGx1Zy5ocGQsCiAJCQkgICBieHRfcG9y dF9ob3RwbHVnX2xvbmdfZGV0ZWN0KTsKIAogCWludGVsX2hwZF9pcnFfaGFuZGxlcihkZXZfcHJp diwgcGluX21hc2ssIGxvbmdfbWFzayk7CkBAIC0yMTUxLDE1ICsyMTg0LDExIEBAIHN0YXRpYyB2 b2lkIGdlbjExX2hwZF9pcnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsIHUzMiBpaXIpCiAJdTMyIHRyaWdnZXJfdGMgPSBpaXIgJiBHRU4xMV9ERV9UQ19IT1RQTFVH X01BU0s7CiAJdTMyIHRyaWdnZXJfdGJ0ID0gaWlyICYgR0VOMTFfREVfVEJUX0hPVFBMVUdfTUFT SzsKIAlsb25nX3B1bHNlX2RldGVjdF9mdW5jIGxvbmdfcHVsc2VfZGV0ZWN0OwotCWNvbnN0IHUz MiAqaHBkOwogCi0JaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTIpIHsKKwlpZiAoSU5URUxf R0VOKGRldl9wcml2KSA+PSAxMikKIAkJbG9uZ19wdWxzZV9kZXRlY3QgPSBnZW4xMl9wb3J0X2hv dHBsdWdfbG9uZ19kZXRlY3Q7Ci0JCWhwZCA9IGhwZF9nZW4xMjsKLQl9IGVsc2UgeworCWVsc2UK IAkJbG9uZ19wdWxzZV9kZXRlY3QgPSBnZW4xMV9wb3J0X2hvdHBsdWdfbG9uZ19kZXRlY3Q7Ci0J CWhwZCA9IGhwZF9nZW4xMTsKLQl9CiAKIAlpZiAodHJpZ2dlcl90YykgewogCQl1MzIgZGlnX2hv dHBsdWdfcmVnOwpAQCAtMjE2Nyw4ICsyMTk2LDEwIEBAIHN0YXRpYyB2b2lkIGdlbjExX2hwZF9p cnFfaGFuZGxlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIHUzMiBpaXIpCiAJ CWRpZ19ob3RwbHVnX3JlZyA9IEk5MTVfUkVBRChHRU4xMV9UQ19IT1RQTFVHX0NUTCk7CiAJCUk5 MTVfV1JJVEUoR0VOMTFfVENfSE9UUExVR19DVEwsIGRpZ19ob3RwbHVnX3JlZyk7CiAKLQkJaW50 ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssIHRyaWdnZXJf dGMsCi0JCQkJICAgZGlnX2hvdHBsdWdfcmVnLCBocGQsIGxvbmdfcHVsc2VfZGV0ZWN0KTsKKwkJ aW50ZWxfZ2V0X2hwZF9waW5zKGRldl9wcml2LCAmcGluX21hc2ssICZsb25nX21hc2ssCisJCQkJ ICAgdHJpZ2dlcl90YywgZGlnX2hvdHBsdWdfcmVnLAorCQkJCSAgIGRldl9wcml2LT5ob3RwbHVn LmhwZCwKKwkJCQkgICBsb25nX3B1bHNlX2RldGVjdCk7CiAJfQogCiAJaWYgKHRyaWdnZXJfdGJ0 KSB7CkBAIC0yMTc3LDggKzIyMDgsMTAgQEAgc3RhdGljIHZvaWQgZ2VuMTFfaHBkX2lycV9oYW5k bGVyKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgdTMyIGlpcikKIAkJZGlnX2hv dHBsdWdfcmVnID0gSTkxNV9SRUFEKEdFTjExX1RCVF9IT1RQTFVHX0NUTCk7CiAJCUk5MTVfV1JJ VEUoR0VOMTFfVEJUX0hPVFBMVUdfQ1RMLCBkaWdfaG90cGx1Z19yZWcpOwogCi0JCWludGVsX2dl dF9ocGRfcGlucyhkZXZfcHJpdiwgJnBpbl9tYXNrLCAmbG9uZ19tYXNrLCB0cmlnZ2VyX3RidCwK LQkJCQkgICBkaWdfaG90cGx1Z19yZWcsIGhwZCwgbG9uZ19wdWxzZV9kZXRlY3QpOworCQlpbnRl bF9nZXRfaHBkX3BpbnMoZGV2X3ByaXYsICZwaW5fbWFzaywgJmxvbmdfbWFzaywKKwkJCQkgICB0 cmlnZ2VyX3RidCwgZGlnX2hvdHBsdWdfcmVnLAorCQkJCSAgIGRldl9wcml2LT5ob3RwbHVnLmhw ZCwKKwkJCQkgICBsb25nX3B1bHNlX2RldGVjdCk7CiAJfQogCiAJaWYgKHBpbl9tYXNrKQpAQCAt MjMwOSwxNSArMjM0MiwxMyBAQCBnZW44X2RlX2lycV9oYW5kbGVyKHN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiwgdTMyIG1hc3Rlcl9jdGwpCiAJCQlpZiAoSVNfR0VOOV9MUChkZXZf cHJpdikpIHsKIAkJCQl0bXBfbWFzayA9IGlpciAmIEJYVF9ERV9QT1JUX0hPVFBMVUdfTUFTSzsK IAkJCQlpZiAodG1wX21hc2spIHsKLQkJCQkJYnh0X2hwZF9pcnFfaGFuZGxlcihkZXZfcHJpdiwg dG1wX21hc2ssCi0JCQkJCQkJICAgIGhwZF9ieHQpOworCQkJCQlieHRfaHBkX2lycV9oYW5kbGVy KGRldl9wcml2LCB0bXBfbWFzayk7CiAJCQkJCWZvdW5kID0gdHJ1ZTsKIAkJCQl9CiAJCQl9IGVs c2UgaWYgKElTX0JST0FEV0VMTChkZXZfcHJpdikpIHsKIAkJCQl0bXBfbWFzayA9IGlpciAmIEdF TjhfUE9SVF9EUF9BX0hPVFBMVUc7CiAJCQkJaWYgKHRtcF9tYXNrKSB7Ci0JCQkJCWlsa19ocGRf aXJxX2hhbmRsZXIoZGV2X3ByaXYsCi0JCQkJCQkJICAgIHRtcF9tYXNrLCBocGRfYmR3KTsKKwkJ CQkJaWxrX2hwZF9pcnFfaGFuZGxlcihkZXZfcHJpdiwgdG1wX21hc2spOwogCQkJCQlmb3VuZCA9 IHRydWU7CiAJCQkJfQogCQkJfQpAQCAtMjk5NywxMyArMzAyOCwxMiBAQCBzdGF0aWMgdm9pZCBp YnhfaHBkX2lycV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJ dTMyIGhvdHBsdWdfaXJxcywgZW5hYmxlZF9pcnFzOwogCi0JaWYgKEhBU19QQ0hfSUJYKGRldl9w cml2KSkgeworCWlmIChIQVNfUENIX0lCWChkZXZfcHJpdikpCiAJCWhvdHBsdWdfaXJxcyA9IFNE RV9IT1RQTFVHX01BU0s7Ci0JCWVuYWJsZWRfaXJxcyA9IGludGVsX2hwZF9lbmFibGVkX2lycXMo ZGV2X3ByaXYsIGhwZF9pYngpOwotCX0gZWxzZSB7CisJZWxzZQogCQlob3RwbHVnX2lycXMgPSBT REVfSE9UUExVR19NQVNLX0NQVDsKLQkJZW5hYmxlZF9pcnFzID0gaW50ZWxfaHBkX2VuYWJsZWRf aXJxcyhkZXZfcHJpdiwgaHBkX2NwdCk7Ci0JfQorCisJZW5hYmxlZF9pcnFzID0gaW50ZWxfaHBk X2VuYWJsZWRfaXJxcyhkZXZfcHJpdiwgZGV2X3ByaXYtPmhvdHBsdWcucGNoX2hwZCk7CiAKIAlp YnhfZGlzcGxheV9pbnRlcnJ1cHRfdXBkYXRlKGRldl9wcml2LCBob3RwbHVnX2lycXMsIGVuYWJs ZWRfaXJxcyk7CiAKQEAgLTMwMjksMTMgKzMwNTksMTIgQEAgc3RhdGljIHZvaWQgaWNwX2hwZF9k ZXRlY3Rpb25fc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCiBzdGF0 aWMgdm9pZCBpY3BfaHBkX2lycV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCiAJCQkgICAgICB1MzIgc2RlX2RkaV9tYXNrLCB1MzIgc2RlX3RjX21hc2ssCi0JCQkgICAg ICB1MzIgZGRpX2VuYWJsZV9tYXNrLCB1MzIgdGNfZW5hYmxlX21hc2ssCi0JCQkgICAgICBjb25z dCB1MzIgKnBpbnMpCisJCQkgICAgICB1MzIgZGRpX2VuYWJsZV9tYXNrLCB1MzIgdGNfZW5hYmxl X21hc2spCiB7CiAJdTMyIGhvdHBsdWdfaXJxcywgZW5hYmxlZF9pcnFzOwogCiAJaG90cGx1Z19p cnFzID0gc2RlX2RkaV9tYXNrIHwgc2RlX3RjX21hc2s7Ci0JZW5hYmxlZF9pcnFzID0gaW50ZWxf aHBkX2VuYWJsZWRfaXJxcyhkZXZfcHJpdiwgcGlucyk7CisJZW5hYmxlZF9pcnFzID0gaW50ZWxf aHBkX2VuYWJsZWRfaXJxcyhkZXZfcHJpdiwgZGV2X3ByaXYtPmhvdHBsdWcucGNoX2hwZCk7CiAK IAlJOTE1X1dSSVRFKFNIUERfRklMVEVSX0NOVCwgU0hQRF9GSUxURVJfQ05UXzUwMF9BREopOwog CkBAIC0zMDUyLDggKzMwODEsNyBAQCBzdGF0aWMgdm9pZCBtY2NfaHBkX2lycV9zZXR1cChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7CiAJaWNwX2hwZF9pcnFfc2V0dXAoZGV2 X3ByaXYsCiAJCQkgIFNERV9ERElfTUFTS19JQ1AsIFNERV9UQ19IT1RQTFVHX0lDUChQT1JUX1RD MSksCi0JCQkgIElDUF9ERElfSFBEX0VOQUJMRV9NQVNLLCBJQ1BfVENfSFBEX0VOQUJMRShQT1JU X1RDMSksCi0JCQkgIGhwZF9pY3ApOworCQkJICBJQ1BfRERJX0hQRF9FTkFCTEVfTUFTSywgSUNQ X1RDX0hQRF9FTkFCTEUoUE9SVF9UQzEpKTsKIH0KIAogLyoKQEAgLTMwNjUsOCArMzA5Myw3IEBA IHN0YXRpYyB2b2lkIGpzcF9ocGRfaXJxX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKIHsKIAlpY3BfaHBkX2lycV9zZXR1cChkZXZfcHJpdiwKIAkJCSAgU0RFX0RESV9N QVNLX1RHUCwgMCwKLQkJCSAgVEdQX0RESV9IUERfRU5BQkxFX01BU0ssIDAsCi0JCQkgIGhwZF90 Z3ApOworCQkJICBUR1BfRERJX0hQRF9FTkFCTEVfTUFTSywgMCk7CiB9CiAKIHN0YXRpYyB2b2lk IGdlbjExX2hwZF9kZXRlY3Rpb25fc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KQpAQCAtMzA5MSwxMSArMzExOCw5IEBAIHN0YXRpYyB2b2lkIGdlbjExX2hwZF9kZXRlY3Rp b25fc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogc3RhdGljIHZvaWQg Z2VuMTFfaHBkX2lycV9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7 CiAJdTMyIGhvdHBsdWdfaXJxcywgZW5hYmxlZF9pcnFzOwotCWNvbnN0IHUzMiAqaHBkOwogCXUz MiB2YWw7CiAKLQlocGQgPSBJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEyID8gaHBkX2dlbjEyIDog aHBkX2dlbjExOwotCWVuYWJsZWRfaXJxcyA9IGludGVsX2hwZF9lbmFibGVkX2lycXMoZGV2X3By aXYsIGhwZCk7CisJZW5hYmxlZF9pcnFzID0gaW50ZWxfaHBkX2VuYWJsZWRfaXJxcyhkZXZfcHJp diwgZGV2X3ByaXYtPmhvdHBsdWcuaHBkKTsKIAlob3RwbHVnX2lycXMgPSBHRU4xMV9ERV9UQ19I T1RQTFVHX01BU0sgfCBHRU4xMV9ERV9UQlRfSE9UUExVR19NQVNLOwogCiAJdmFsID0gSTkxNV9S RUFEKEdFTjExX0RFX0hQRF9JTVIpOwpAQCAtMzEwNywxMiArMzEzMiwxMCBAQCBzdGF0aWMgdm9p ZCBnZW4xMV9ocGRfaXJxX3NldHVwKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK IAogCWlmIChJTlRFTF9QQ0hfVFlQRShkZXZfcHJpdikgPj0gUENIX1RHUCkKIAkJaWNwX2hwZF9p cnFfc2V0dXAoZGV2X3ByaXYsIFNERV9ERElfTUFTS19UR1AsIFNERV9UQ19NQVNLX1RHUCwKLQkJ CQkgIFRHUF9ERElfSFBEX0VOQUJMRV9NQVNLLAotCQkJCSAgVEdQX1RDX0hQRF9FTkFCTEVfTUFT SywgaHBkX3RncCk7CisJCQkJICBUR1BfRERJX0hQRF9FTkFCTEVfTUFTSywgVEdQX1RDX0hQRF9F TkFCTEVfTUFTSyk7CiAJZWxzZSBpZiAoSU5URUxfUENIX1RZUEUoZGV2X3ByaXYpID49IFBDSF9J Q1ApCiAJCWljcF9ocGRfaXJxX3NldHVwKGRldl9wcml2LCBTREVfRERJX01BU0tfSUNQLCBTREVf VENfTUFTS19JQ1AsCi0JCQkJICBJQ1BfRERJX0hQRF9FTkFCTEVfTUFTSywKLQkJCQkgIElDUF9U Q19IUERfRU5BQkxFX01BU0ssIGhwZF9pY3ApOworCQkJCSAgSUNQX0RESV9IUERfRU5BQkxFX01B U0ssIElDUF9UQ19IUERfRU5BQkxFX01BU0spOwogfQogCiBzdGF0aWMgdm9pZCBzcHRfaHBkX2Rl dGVjdGlvbl9zZXR1cChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCkBAIC0zMTQ4 LDcgKzMxNzEsNyBAQCBzdGF0aWMgdm9pZCBzcHRfaHBkX2lycV9zZXR1cChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJCUk5MTVfV1JJVEUoU0hQRF9GSUxURVJfQ05ULCBTSFBE X0ZJTFRFUl9DTlRfNTAwX0FESik7CiAKIAlob3RwbHVnX2lycXMgPSBTREVfSE9UUExVR19NQVNL X1NQVDsKLQllbmFibGVkX2lycXMgPSBpbnRlbF9ocGRfZW5hYmxlZF9pcnFzKGRldl9wcml2LCBo cGRfc3B0KTsKKwllbmFibGVkX2lycXMgPSBpbnRlbF9ocGRfZW5hYmxlZF9pcnFzKGRldl9wcml2 LCBkZXZfcHJpdi0+aG90cGx1Zy5wY2hfaHBkKTsKIAogCWlieF9kaXNwbGF5X2ludGVycnVwdF91 cGRhdGUoZGV2X3ByaXYsIGhvdHBsdWdfaXJxcywgZW5hYmxlZF9pcnFzKTsKIApAQCAtMzE3Nywx NyArMzIwMCwxNyBAQCBzdGF0aWMgdm9pZCBpbGtfaHBkX2lycV9zZXR1cChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAKIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSA4KSB7 CiAJCWhvdHBsdWdfaXJxcyA9IEdFTjhfUE9SVF9EUF9BX0hPVFBMVUc7Ci0JCWVuYWJsZWRfaXJx cyA9IGludGVsX2hwZF9lbmFibGVkX2lycXMoZGV2X3ByaXYsIGhwZF9iZHcpOworCQllbmFibGVk X2lycXMgPSBpbnRlbF9ocGRfZW5hYmxlZF9pcnFzKGRldl9wcml2LCBkZXZfcHJpdi0+aG90cGx1 Zy5ocGQpOwogCiAJCWJkd191cGRhdGVfcG9ydF9pcnEoZGV2X3ByaXYsIGhvdHBsdWdfaXJxcywg ZW5hYmxlZF9pcnFzKTsKIAl9IGVsc2UgaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPj0gNykgewog CQlob3RwbHVnX2lycXMgPSBERV9EUF9BX0hPVFBMVUdfSVZCOwotCQllbmFibGVkX2lycXMgPSBp bnRlbF9ocGRfZW5hYmxlZF9pcnFzKGRldl9wcml2LCBocGRfaXZiKTsKKwkJZW5hYmxlZF9pcnFz ID0gaW50ZWxfaHBkX2VuYWJsZWRfaXJxcyhkZXZfcHJpdiwgZGV2X3ByaXYtPmhvdHBsdWcuaHBk KTsKIAogCQlpbGtfdXBkYXRlX2Rpc3BsYXlfaXJxKGRldl9wcml2LCBob3RwbHVnX2lycXMsIGVu YWJsZWRfaXJxcyk7CiAJfSBlbHNlIHsKIAkJaG90cGx1Z19pcnFzID0gREVfRFBfQV9IT1RQTFVH OwotCQllbmFibGVkX2lycXMgPSBpbnRlbF9ocGRfZW5hYmxlZF9pcnFzKGRldl9wcml2LCBocGRf aWxrKTsKKwkJZW5hYmxlZF9pcnFzID0gaW50ZWxfaHBkX2VuYWJsZWRfaXJxcyhkZXZfcHJpdiwg ZGV2X3ByaXYtPmhvdHBsdWcuaHBkKTsKIAogCQlpbGtfdXBkYXRlX2Rpc3BsYXlfaXJxKGRldl9w cml2LCBob3RwbHVnX2lycXMsIGVuYWJsZWRfaXJxcyk7CiAJfQpAQCAtMzIzOCw3ICszMjYxLDcg QEAgc3RhdGljIHZvaWQgYnh0X2hwZF9pcnFfc2V0dXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2KQogewogCXUzMiBob3RwbHVnX2lycXMsIGVuYWJsZWRfaXJxczsKIAotCWVuYWJs ZWRfaXJxcyA9IGludGVsX2hwZF9lbmFibGVkX2lycXMoZGV2X3ByaXYsIGhwZF9ieHQpOworCWVu YWJsZWRfaXJxcyA9IGludGVsX2hwZF9lbmFibGVkX2lycXMoZGV2X3ByaXYsIGRldl9wcml2LT5o b3RwbHVnLmhwZCk7CiAJaG90cGx1Z19pcnFzID0gQlhUX0RFX1BPUlRfSE9UUExVR19NQVNLOwog CiAJYmR3X3VwZGF0ZV9wb3J0X2lycShkZXZfcHJpdiwgaG90cGx1Z19pcnFzLCBlbmFibGVkX2ly cXMpOwpAQCAtMzkzMiw2ICszOTU1LDggQEAgdm9pZCBpbnRlbF9pcnFfaW5pdChzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9ICZkZXZf cHJpdi0+ZHJtOwogCWludCBpOwogCisJaW50ZWxfaHBkX2luaXRfcGlucyhkZXZfcHJpdik7CisK IAlpbnRlbF9ocGRfaW5pdF93b3JrKGRldl9wcml2KTsKIAogCUlOSVRfV09SSygmZGV2X3ByaXYt PmwzX3Bhcml0eS5lcnJvcl93b3JrLCBpdmJfcGFyaXR5X3dvcmspOwotLSAKMi4yNC4xCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFp bGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5m cmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK