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 86947C2BA83 for ; Fri, 14 Feb 2020 11:40:13 +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 66A06217F4 for ; Fri, 14 Feb 2020 11:40:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 66A06217F4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=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 507A86E5BF; Fri, 14 Feb 2020 11:40:10 +0000 (UTC) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id E9F4B6E5BF for ; Fri, 14 Feb 2020 11:40:08 +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 fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Feb 2020 03:40:08 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,440,1574150400"; d="scan'208";a="227576854" Received: from labuser-z97x-ud5h.jf.intel.com ([10.165.21.211]) by orsmga008.jf.intel.com with ESMTP; 14 Feb 2020 03:40:07 -0800 From: Manasi Navare To: intel-gfx@lists.freedesktop.org Date: Fri, 14 Feb 2020 03:41:25 -0800 Message-Id: <20200214114126.13192-2-manasi.d.navare@intel.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20200214114126.13192-1-manasi.d.navare@intel.com> References: <20200214114126.13192-1-manasi.d.navare@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [CI v3 2/3] drm/i915/dp: Compute port sync crtc states post compute_config() 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" VGhpcyBwYXRjaCBwdXNoZXMgb3V0IHRoZSBjb21wdXRhdGlvbiBvZiBtYXN0ZXIgYW5kIHNsYXZl CnRyYW5zY29kZXJzIGluIGNydGMgc3RhdGVzIGFmdGVyIGVuY29kZXIncyBjb21wdXRlX2NvbmZp ZyBob29rLgpUaGlzIGVuc3VyZXMgdGhhdCB0aGUgYXNzaWduZWQgbWFzdGVyIHNsYXZlIGNydGNz IGhhdmUgZXhhY3Qgc2FtZQptb2RlIGFuZCB0aW1pbmdzIHdoaWNoIGlzIGEgcmVxdWlyZW1lbnQg Zm9yIFBvcnQgc3luYyBtb2RlCnRvIGJlIGVuYWJsZWQuCgp2MzoKKiBNYWtlIGNydGNfc3RhdGUg Y29uc3QsIHJlbW92ZSBjcnRjIHN0YXRlIE5VTEwgaW5pdCAoVmlsbGUpCnYyOgoqIENvcnJlY3Qg aW5kZW50YXRpb24KKiBSZW5hbWUgdG8gaW50ZWxfZGRpX3BvcnRfc3luY190cmFuc2NvZGVycyAo VmlsbGUpCiogcmVtb3ZlIHVud2FudGVkIGRlYnVnIChWaWxsZSkKClN1Z2dlc3RlZC1ieTogVmls bGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KQ2M6IFZpbGxlIFN5 cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IE1h bmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBWaWxs ZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGRpLmMgICAgIHwgMTA3ICsrKysrKysrKysrKysK IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIHwgMTU5ICstLS0t LS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTA4IGluc2VydGlvbnMoKyksIDE1OCBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2RkaS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYwppbmRl eCA1NDRlMTU2MDNlZjkuLmYyZmQ5ZjA5NzU5MSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kZGkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2RkaS5jCkBAIC00NDU1LDYgKzQ0NTUsMTEyIEBAIHN0YXRpYyBpbnQgaW50ZWxf ZGRpX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCXJldHVy biAwOwogfQogCitzdGF0aWMgYm9vbCBtb2RlX2VxdWFsKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICptb2RlMSwKKwkJICAgICAgIGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpt b2RlMikKK3sKKwlyZXR1cm4gZHJtX21vZGVfbWF0Y2gobW9kZTEsIG1vZGUyLAorCQkJICAgICAg RFJNX01PREVfTUFUQ0hfVElNSU5HUyB8CisJCQkgICAgICBEUk1fTU9ERV9NQVRDSF9GTEFHUyB8 CisJCQkgICAgICBEUk1fTU9ERV9NQVRDSF8zRF9GTEFHUykgJiYKKwkJbW9kZTEtPmNsb2NrID09 IG1vZGUyLT5jbG9jazsgLyogd2Ugd2FudCBhbiBleGFjdCBtYXRjaCAqLworfQorCitzdGF0aWMg Ym9vbCBtX25fZXF1YWwoY29uc3Qgc3RydWN0IGludGVsX2xpbmtfbV9uICptX25fMSwKKwkJICAg ICAgY29uc3Qgc3RydWN0IGludGVsX2xpbmtfbV9uICptX25fMikKK3sKKwlyZXR1cm4gbV9uXzEt PnR1ID09IG1fbl8yLT50dSAmJgorCQltX25fMS0+Z21jaF9tID09IG1fbl8yLT5nbWNoX20gJiYK KwkJbV9uXzEtPmdtY2hfbiA9PSBtX25fMi0+Z21jaF9uICYmCisJCW1fbl8xLT5saW5rX20gPT0g bV9uXzItPmxpbmtfbSAmJgorCQltX25fMS0+bGlua19uID09IG1fbl8yLT5saW5rX247Cit9CisK K3N0YXRpYyBib29sIGNydGNzX3BvcnRfc3luY19jb21wYXRpYmxlKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlMSwKKwkJCQkgICAgICAgY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUyKQoreworCXJldHVybiBjcnRjX3N0YXRlMS0+aHcuYWN0 aXZlICYmIGNydGNfc3RhdGUyLT5ody5hY3RpdmUgJiYKKwkJY3J0Y19zdGF0ZTEtPm91dHB1dF90 eXBlcyA9PSBjcnRjX3N0YXRlMi0+b3V0cHV0X3R5cGVzICYmCisJCWNydGNfc3RhdGUxLT5vdXRw dXRfZm9ybWF0ID09IGNydGNfc3RhdGUyLT5vdXRwdXRfZm9ybWF0ICYmCisJCWNydGNfc3RhdGUx LT5sYW5lX2NvdW50ID09IGNydGNfc3RhdGUyLT5sYW5lX2NvdW50ICYmCisJCWNydGNfc3RhdGUx LT5wb3J0X2Nsb2NrID09IGNydGNfc3RhdGUyLT5wb3J0X2Nsb2NrICYmCisJCW1vZGVfZXF1YWwo JmNydGNfc3RhdGUxLT5ody5hZGp1c3RlZF9tb2RlLAorCQkJICAgJmNydGNfc3RhdGUyLT5ody5h ZGp1c3RlZF9tb2RlKSAmJgorCQltX25fZXF1YWwoJmNydGNfc3RhdGUxLT5kcF9tX24sICZjcnRj X3N0YXRlMi0+ZHBfbV9uKTsKK30KKworc3RhdGljIHU4CitpbnRlbF9kZGlfcG9ydF9zeW5jX3Ry YW5zY29kZXJzKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpyZWZfY3J0Y19zdGF0ZSwK KwkJCQlpbnQgdGlsZV9ncm91cF9pZCkKK3sKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVj dG9yOworCWNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlOworCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocmVmX2NydGNfc3RhdGUt PnVhcGkuY3J0Yy0+ZGV2KTsKKwlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9CisJ CXRvX2ludGVsX2F0b21pY19zdGF0ZShyZWZfY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZSk7CisJdTgg dHJhbnNjb2RlcnMgPSAwOworCWludCBpOworCisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCAx MSkKKwkJcmV0dXJuIDA7CisKKwlpZiAoIWludGVsX2NydGNfaGFzX3R5cGUocmVmX2NydGNfc3Rh dGUsIElOVEVMX09VVFBVVF9EUCkpCisJCXJldHVybiAwOworCisJZm9yX2VhY2hfbmV3X2Nvbm5l Y3Rvcl9pbl9zdGF0ZSgmc3RhdGUtPmJhc2UsIGNvbm5lY3RvciwgY29ubl9zdGF0ZSwgaSkgewor CQlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoY29ubl9zdGF0ZS0+Y3J0 Yyk7CisJCWNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOworCisJCWlm ICghY3J0YykKKwkJCWNvbnRpbnVlOworCisJCWlmICghY29ubmVjdG9yLT5oYXNfdGlsZSB8fAor CQkgICAgY29ubmVjdG9yLT50aWxlX2dyb3VwLT5pZCAhPQorCQkgICAgdGlsZV9ncm91cF9pZCkK KwkJCWNvbnRpbnVlOworCQljcnRjX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9uZXdfY3J0Y19z dGF0ZShzdGF0ZSwKKwkJCQkJCQkgICAgIGNydGMpOworCQlpZiAoIWNydGNzX3BvcnRfc3luY19j b21wYXRpYmxlKHJlZl9jcnRjX3N0YXRlLAorCQkJCQkJY3J0Y19zdGF0ZSkpCisJCQljb250aW51 ZTsKKwkJdHJhbnNjb2RlcnMgfD0gQklUKGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyKTsKKwl9 CisKKwlyZXR1cm4gdHJhbnNjb2RlcnM7Cit9CisKK3N0YXRpYyBpbnQgaW50ZWxfZGRpX2NvbXB1 dGVfY29uZmlnX2xhdGUoc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIsCisJCQkJCSBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJCQkJIHN0cnVjdCBkcm1fY29ubmVj dG9yX3N0YXRlICpjb25uX3N0YXRlKQoreworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IgPSBjb25uX3N0YXRlLT5jb25uZWN0b3I7CisJdTggcG9ydF9zeW5jX3RyYW5zY29kZXJzID0g MDsKKworCURSTV9ERUJVR19LTVMoIltFTkNPREVSOiVkOiVzXSBbQ1JUQzolZDolc10iLAorCQkg ICAgICBlbmNvZGVyLT5iYXNlLmJhc2UuaWQsIGVuY29kZXItPmJhc2UubmFtZSwKKwkJICAgICAg Y3J0Y19zdGF0ZS0+dWFwaS5jcnRjLT5iYXNlLmlkLCBjcnRjX3N0YXRlLT51YXBpLmNydGMtPm5h bWUpOworCisJaWYgKGNvbm5lY3Rvci0+aGFzX3RpbGUpCisJCXBvcnRfc3luY190cmFuc2NvZGVy cyA9IGludGVsX2RkaV9wb3J0X3N5bmNfdHJhbnNjb2RlcnMoY3J0Y19zdGF0ZSwKKwkJCQkJCQkJ CWNvbm5lY3Rvci0+dGlsZV9ncm91cC0+aWQpOworCisJLyoKKwkgKiBFRFAgVHJhbnNjb2RlcnMg Y2Fubm90IGJlIGVuc2FsdmVkCisJICogbWFrZSB0aGVtIGEgbWFzdGVyIGFsd2F5cyB3aGVuIHBy ZXNlbnQKKwkgKi8KKwlpZiAocG9ydF9zeW5jX3RyYW5zY29kZXJzICYgQklUKFRSQU5TQ09ERVJf RURQKSkKKwkJY3J0Y19zdGF0ZS0+bWFzdGVyX3RyYW5zY29kZXIgPSBUUkFOU0NPREVSX0VEUDsK KwllbHNlCisJCWNydGNfc3RhdGUtPm1hc3Rlcl90cmFuc2NvZGVyID0gZmZzKHBvcnRfc3luY190 cmFuc2NvZGVycykgLSAxOworCisJaWYgKGNydGNfc3RhdGUtPm1hc3Rlcl90cmFuc2NvZGVyID09 IGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyKSB7CisJCWNydGNfc3RhdGUtPm1hc3Rlcl90cmFu c2NvZGVyID0gSU5WQUxJRF9UUkFOU0NPREVSOworCQljcnRjX3N0YXRlLT5zeW5jX21vZGVfc2xh dmVzX21hc2sgPQorCQkJcG9ydF9zeW5jX3RyYW5zY29kZXJzICYgfkJJVChjcnRjX3N0YXRlLT5j cHVfdHJhbnNjb2Rlcik7CisJfQorCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyB2b2lkIGludGVs X2RkaV9lbmNvZGVyX2Rlc3Ryb3koc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogewogCXN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmRpZ19wb3J0ID0gZW5jX3RvX2RpZ19wb3J0KHRvX2lu dGVsX2VuY29kZXIoZW5jb2RlcikpOwpAQCAtNDc2NCw2ICs0ODcwLDcgQEAgdm9pZCBpbnRlbF9k ZGlfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGVudW0gcG9ydCBwb3J0 KQogCWVuY29kZXItPmhvdHBsdWcgPSBpbnRlbF9kZGlfaG90cGx1ZzsKIAllbmNvZGVyLT5jb21w dXRlX291dHB1dF90eXBlID0gaW50ZWxfZGRpX2NvbXB1dGVfb3V0cHV0X3R5cGU7CiAJZW5jb2Rl ci0+Y29tcHV0ZV9jb25maWcgPSBpbnRlbF9kZGlfY29tcHV0ZV9jb25maWc7CisJZW5jb2Rlci0+ Y29tcHV0ZV9jb25maWdfbGF0ZSA9IGludGVsX2RkaV9jb21wdXRlX2NvbmZpZ19sYXRlOwogCWVu Y29kZXItPmVuYWJsZSA9IGludGVsX2VuYWJsZV9kZGk7CiAJZW5jb2Rlci0+cHJlX3BsbF9lbmFi bGUgPSBpbnRlbF9kZGlfcHJlX3BsbF9lbmFibGU7CiAJZW5jb2Rlci0+cHJlX2VuYWJsZSA9IGlu dGVsX2RkaV9wcmVfZW5hYmxlOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXkuYwppbmRleCBjZTcyNTUxYmExNmEuLmM4NjE1ZjIxMmU4ZiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKQEAgLTEyNTg5LDEyNiArMTI1 ODksNiBAQCBzdGF0aWMgYm9vbCBjOF9wbGFuZXNfY2hhbmdlZChjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCiAJcmV0dXJuICFvbGRfY3J0Y19zdGF0ZS0+Yzhf cGxhbmVzICE9ICFuZXdfY3J0Y19zdGF0ZS0+YzhfcGxhbmVzOwogfQogCi1zdGF0aWMgYm9vbAot aW50ZWxfYXRvbWljX2lzX21hc3Rlcl9jb25uZWN0b3Ioc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUpCi17Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0gY3J0Y19zdGF0ZS0+dWFw aS5jcnRjOwotCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGNydGNfc3RhdGUtPnVh cGkuc3RhdGU7Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcjsKLQlzdHJ1Y3QgZHJt X2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubmVjdG9yX3N0YXRlOwotCWludCBpOwotCi0JZm9yX2VhY2hf bmV3X2Nvbm5lY3Rvcl9pbl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yLCBjb25uZWN0b3Jfc3RhdGUs IGkpIHsKLQkJaWYgKGNvbm5lY3Rvcl9zdGF0ZS0+Y3J0YyAhPSBjcnRjKQotCQkJY29udGludWU7 Ci0JCWlmIChjb25uZWN0b3ItPmhhc190aWxlICYmCi0JCSAgICBjb25uZWN0b3ItPnRpbGVfaF9s b2MgPT0gY29ubmVjdG9yLT5udW1faF90aWxlIC0gMSAmJgotCQkgICAgY29ubmVjdG9yLT50aWxl X3ZfbG9jID09IGNvbm5lY3Rvci0+bnVtX3ZfdGlsZSAtIDEpCi0JCQlyZXR1cm4gdHJ1ZTsKLQl9 Ci0KLQlyZXR1cm4gZmFsc2U7Ci19Ci0KLXN0YXRpYyB2b2lkIHJlc2V0X3BvcnRfc3luY19tb2Rl X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQotewotCWNydGNfc3Rh dGUtPm1hc3Rlcl90cmFuc2NvZGVyID0gSU5WQUxJRF9UUkFOU0NPREVSOwotCWNydGNfc3RhdGUt PnN5bmNfbW9kZV9zbGF2ZXNfbWFzayA9IDA7Ci19Ci0KLXN0YXRpYyBpbnQgaWNsX2NvbXB1dGVf cG9ydF9zeW5jX2NydGNfc3RhdGUoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKLQkJ CQkJICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAotCQkJCQkgICAgaW50 IG51bV90aWxlZF9jb25ucykKLXsKLQlzdHJ1Y3QgZHJtX2NydGMgKmNydGMgPSBjcnRjX3N0YXRl LT51YXBpLmNydGM7Ci0Jc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUgPSB0b19pbnRl bF9hdG9taWNfc3RhdGUoY3J0Y19zdGF0ZS0+dWFwaS5zdGF0ZSk7Ci0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjX3N0YXRlLT51YXBpLmNydGMtPmRldik7 Ci0Jc3RydWN0IGRybV9jb25uZWN0b3IgKm1hc3Rlcl9jb25uZWN0b3I7Ci0Jc3RydWN0IGRybV9j b25uZWN0b3JfbGlzdF9pdGVyIGNvbm5faXRlcjsKLQlzdHJ1Y3QgZHJtX2NydGMgKm1hc3Rlcl9j cnRjID0gTlVMTDsKLQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKm1hc3Rlcl9jcnRjX3N0YXRlOwot CXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICptYXN0ZXJfcGlwZV9jb25maWc7Ci0KLQlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA8IDExKQotCQlyZXR1cm4gMDsKLQotCWlmICghaW50ZWxfY3J0Y19o YXNfdHlwZShjcnRjX3N0YXRlLCBJTlRFTF9PVVRQVVRfRFApKQotCQlyZXR1cm4gMDsKLQotCS8q Ci0JICogSW4gY2FzZSBvZiB0aWxlZCBkaXNwbGF5cyB0aGVyZSBjb3VsZCBiZSBvbmUgb3IgbW9y ZSBzbGF2ZXMgYnV0IHRoZXJlIGlzCi0JICogb25seSBvbmUgbWFzdGVyLiBMZXRzIG1ha2UgdGhl IENSVEMgdXNlZCBieSB0aGUgY29ubmVjdG9yIGNvcnJlc3BvbmRpbmcKLQkgKiB0byB0aGUgbGFz dCBob3Jpem9uYWwgYW5kIGxhc3QgdmVydGljYWwgdGlsZSBhIG1hc3Rlci9nZW5sb2NrIENSVEMu Ci0JICogQWxsIHRoZSBvdGhlciBDUlRDcyBjb3JyZXNwb25kaW5nIHRvIG90aGVyIHRpbGVzIG9m IHRoZSBzYW1lIFRpbGUgZ3JvdXAKLQkgKiBhcmUgdGhlIHNsYXZlIENSVENzIGFuZCBob2xkIGEg cG9pbnRlciB0byB0aGVpciBnZW5sb2NrIENSVEMuCi0JICogSWYgYWxsIHRpbGVzIG5vdCBwcmVz ZW50IGRvIG5vdCBtYWtlIG1hc3RlciBzbGF2ZSBhc3NpZ25tZW50cy4KLQkgKi8KLQlpZiAoIWNv bm5lY3Rvci0+aGFzX3RpbGUgfHwKLQkgICAgY3J0Y19zdGF0ZS0+aHcubW9kZS5oZGlzcGxheSAh PSBjb25uZWN0b3ItPnRpbGVfaF9zaXplIHx8Ci0JICAgIGNydGNfc3RhdGUtPmh3Lm1vZGUudmRp c3BsYXkgIT0gY29ubmVjdG9yLT50aWxlX3Zfc2l6ZSB8fAotCSAgICBudW1fdGlsZWRfY29ubnMg PCBjb25uZWN0b3ItPm51bV9oX3RpbGUgKiBjb25uZWN0b3ItPm51bV92X3RpbGUpIHsKLQkJcmVz ZXRfcG9ydF9zeW5jX21vZGVfc3RhdGUoY3J0Y19zdGF0ZSk7Ci0JCXJldHVybiAwOwotCX0KLQkv KiBMYXN0IEhvcml6b250YWwgYW5kIGxhc3QgdmVydGljYWwgdGlsZSBjb25uZWN0b3IgaXMgYSBt YXN0ZXIKLQkgKiBNYXN0ZXIncyBjcnRjIHN0YXRlIGlzIGFscmVhZHkgcG9wdWxhdGVkIGluIHNs YXZlIGZvciBwb3J0IHN5bmMKLQkgKi8KLQlpZiAoY29ubmVjdG9yLT50aWxlX2hfbG9jID09IGNv bm5lY3Rvci0+bnVtX2hfdGlsZSAtIDEgJiYKLQkgICAgY29ubmVjdG9yLT50aWxlX3ZfbG9jID09 IGNvbm5lY3Rvci0+bnVtX3ZfdGlsZSAtIDEpCi0JCXJldHVybiAwOwotCi0JLyogTG9vcCB0aHJv dWdoIGFsbCBjb25uZWN0b3JzIGFuZCBjb25maWd1cmUgdGhlIFNsYXZlIGNydGNfc3RhdGUKLQkg KiB0byBwb2ludCB0byB0aGUgY29ycmVjdCBtYXN0ZXIuCi0JICovCi0JZHJtX2Nvbm5lY3Rvcl9s aXN0X2l0ZXJfYmVnaW4oJmRldl9wcml2LT5kcm0sICZjb25uX2l0ZXIpOwotCWRybV9mb3JfZWFj aF9jb25uZWN0b3JfaXRlcihtYXN0ZXJfY29ubmVjdG9yLCAmY29ubl9pdGVyKSB7Ci0JCXN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICptYXN0ZXJfY29ubl9zdGF0ZSA9IE5VTEw7Ci0KLQkJaWYg KCEobWFzdGVyX2Nvbm5lY3Rvci0+aGFzX3RpbGUgJiYKLQkJICAgICAgbWFzdGVyX2Nvbm5lY3Rv ci0+dGlsZV9ncm91cC0+aWQgPT0gY29ubmVjdG9yLT50aWxlX2dyb3VwLT5pZCkpCi0JCQljb250 aW51ZTsKLQkJaWYgKG1hc3Rlcl9jb25uZWN0b3ItPnRpbGVfaF9sb2MgIT0gbWFzdGVyX2Nvbm5l Y3Rvci0+bnVtX2hfdGlsZSAtIDEgfHwKLQkJICAgIG1hc3Rlcl9jb25uZWN0b3ItPnRpbGVfdl9s b2MgIT0gbWFzdGVyX2Nvbm5lY3Rvci0+bnVtX3ZfdGlsZSAtIDEpCi0JCQljb250aW51ZTsKLQot CQltYXN0ZXJfY29ubl9zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2Nvbm5lY3Rvcl9zdGF0ZSgmc3Rh dGUtPmJhc2UsCi0JCQkJCQkJCSAgIG1hc3Rlcl9jb25uZWN0b3IpOwotCQlpZiAoSVNfRVJSKG1h c3Rlcl9jb25uX3N0YXRlKSkgewotCQkJZHJtX2Nvbm5lY3Rvcl9saXN0X2l0ZXJfZW5kKCZjb25u X2l0ZXIpOwotCQkJcmV0dXJuIFBUUl9FUlIobWFzdGVyX2Nvbm5fc3RhdGUpOwotCQl9Ci0JCWlm IChtYXN0ZXJfY29ubl9zdGF0ZS0+Y3J0YykgewotCQkJbWFzdGVyX2NydGMgPSBtYXN0ZXJfY29u bl9zdGF0ZS0+Y3J0YzsKLQkJCWJyZWFrOwotCQl9Ci0JfQotCWRybV9jb25uZWN0b3JfbGlzdF9p dGVyX2VuZCgmY29ubl9pdGVyKTsKLQotCWlmICghbWFzdGVyX2NydGMpIHsKLQkJZHJtX2RiZ19r bXMoJmRldl9wcml2LT5kcm0sCi0JCQkgICAgIkNvdWxkIG5vdCBmaW5kIE1hc3RlciBDUlRDIGZv ciBTbGF2ZSBDUlRDICVkXG4iLAotCQkJICAgIGNydGMtPmJhc2UuaWQpOwotCQlyZXR1cm4gLUVJ TlZBTDsKLQl9Ci0KLQltYXN0ZXJfY3J0Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2NydGNfc3Rh dGUoJnN0YXRlLT5iYXNlLAotCQkJCQkJICAgICAgbWFzdGVyX2NydGMpOwotCWlmIChJU19FUlIo bWFzdGVyX2NydGNfc3RhdGUpKQotCQlyZXR1cm4gUFRSX0VSUihtYXN0ZXJfY3J0Y19zdGF0ZSk7 Ci0KLQltYXN0ZXJfcGlwZV9jb25maWcgPSB0b19pbnRlbF9jcnRjX3N0YXRlKG1hc3Rlcl9jcnRj X3N0YXRlKTsKLQljcnRjX3N0YXRlLT5tYXN0ZXJfdHJhbnNjb2RlciA9IG1hc3Rlcl9waXBlX2Nv bmZpZy0+Y3B1X3RyYW5zY29kZXI7Ci0JbWFzdGVyX3BpcGVfY29uZmlnLT5zeW5jX21vZGVfc2xh dmVzX21hc2sgfD0KLQkJQklUKGNydGNfc3RhdGUtPmNwdV90cmFuc2NvZGVyKTsKLQlkcm1fZGJn X2ttcygmZGV2X3ByaXYtPmRybSwKLQkJICAgICJNYXN0ZXIgVHJhbnNjb2RlciA9ICVzIGFkZGVk IGZvciBTbGF2ZSBDUlRDID0gJWQsIHNsYXZlIHRyYW5zY29kZXIgYml0bWFzayA9ICVkXG4iLAot CQkgICAgdHJhbnNjb2Rlcl9uYW1lKGNydGNfc3RhdGUtPm1hc3Rlcl90cmFuc2NvZGVyKSwKLQkJ ICAgIGNydGMtPmJhc2UuaWQsCi0JCSAgICBtYXN0ZXJfcGlwZV9jb25maWctPnN5bmNfbW9kZV9z bGF2ZXNfbWFzayk7Ci0KLQlyZXR1cm4gMDsKLX0KLQogc3RhdGljIHUxNiBoc3dfbGluZXRpbWVf d20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJY29uc3Qg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQpAQCAtMTMzNTksMTUgKzEz MjM5LDYgQEAgaW50ZWxfY3J0Y19wcmVwYXJlX2NsZWFyZWRfc3RhdGUoc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJaWYgKElTX0c0WChkZXZfcHJpdikgfHwKIAkgICAgSVNf VkFMTEVZVklFVyhkZXZfcHJpdikgfHwgSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikpCiAJCXNhdmVk X3N0YXRlLT53bSA9IGNydGNfc3RhdGUtPndtOwotCS8qCi0JICogU2F2ZSB0aGUgc2xhdmUgYml0 bWFzayB3aGljaCBnZXRzIGZpbGxlZCBmb3IgbWFzdGVyIGNydGMgc3RhdGUgZHVyaW5nCi0JICog c2xhdmUgYXRvbWljIGNoZWNrIGNhbGwuIEZvciBhbGwgb3RoZXIgQ1JUQ3MgcmVzZXQgdGhlIHBv cnQgc3luYyB2YXJpYWJsZXMKLQkgKiBjcnRjX3N0YXRlLT5tYXN0ZXJfdHJhbnNjb2RlciBuZWVk cyB0byBiZSBzZXQgdG8gSU5WQUxJRAotCSAqLwotCXJlc2V0X3BvcnRfc3luY19tb2RlX3N0YXRl KHNhdmVkX3N0YXRlKTsKLQlpZiAoaW50ZWxfYXRvbWljX2lzX21hc3Rlcl9jb25uZWN0b3IoY3J0 Y19zdGF0ZSkpCi0JCXNhdmVkX3N0YXRlLT5zeW5jX21vZGVfc2xhdmVzX21hc2sgPQotCQkJY3J0 Y19zdGF0ZS0+c3luY19tb2RlX3NsYXZlc19tYXNrOwogCiAJbWVtY3B5KGNydGNfc3RhdGUsIHNh dmVkX3N0YXRlLCBzaXplb2YoKmNydGNfc3RhdGUpKTsKIAlrZnJlZShzYXZlZF9zdGF0ZSk7CkBA IC0xMzM4NSw4ICsxMzI1Niw3IEBAIGludGVsX21vZGVzZXRfcGlwZV9jb25maWcoc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpp OTE1ID0gdG9faTkxNShwaXBlX2NvbmZpZy0+dWFwaS5jcnRjLT5kZXYpOwogCXN0cnVjdCBkcm1f Y29ubmVjdG9yICpjb25uZWN0b3I7CiAJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5l Y3Rvcl9zdGF0ZTsKLQlpbnQgYmFzZV9icHAsIHJldDsKLQlpbnQgaSwgdGlsZV9ncm91cF9pZCA9 IC0xLCBudW1fdGlsZWRfY29ubnMgPSAwOworCWludCBiYXNlX2JwcCwgcmV0LCBpOwogCWJvb2wg cmV0cnkgPSB0cnVlOwogCiAJcGlwZV9jb25maWctPmNwdV90cmFuc2NvZGVyID0KQEAgLTEzNDU4 LDI0ICsxMzMyOCw2IEBAIGludGVsX21vZGVzZXRfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKnBpcGVfY29uZmlnKQogCWRybV9tb2RlX3NldF9jcnRjaW5mbygmcGlwZV9jb25m aWctPmh3LmFkanVzdGVkX21vZGUsCiAJCQkgICAgICBDUlRDX1NURVJFT19ET1VCTEUpOwogCi0J LyogR2V0IHRpbGVfZ3JvdXBfaWQgb2YgdGlsZWQgY29ubmVjdG9yICovCi0JZm9yX2VhY2hfbmV3 X2Nvbm5lY3Rvcl9pbl9zdGF0ZShzdGF0ZSwgY29ubmVjdG9yLCBjb25uZWN0b3Jfc3RhdGUsIGkp IHsKLQkJaWYgKGNvbm5lY3Rvcl9zdGF0ZS0+Y3J0YyA9PSBjcnRjICYmCi0JCSAgICBjb25uZWN0 b3ItPmhhc190aWxlKSB7Ci0JCQl0aWxlX2dyb3VwX2lkID0gY29ubmVjdG9yLT50aWxlX2dyb3Vw LT5pZDsKLQkJCWJyZWFrOwotCQl9Ci0JfQotCi0JLyogR2V0IHRvdGFsIG51bWJlciBvZiB0aWxl ZCBjb25uZWN0b3JzIGluIHN0YXRlIHRoYXQgYmVsb25nIHRvCi0JICogdGhpcyB0aWxlIGdyb3Vw LgotCSAqLwotCWZvcl9lYWNoX25ld19jb25uZWN0b3JfaW5fc3RhdGUoc3RhdGUsIGNvbm5lY3Rv ciwgY29ubmVjdG9yX3N0YXRlLCBpKSB7Ci0JCWlmIChjb25uZWN0b3ItPmhhc190aWxlICYmCi0J CSAgICBjb25uZWN0b3ItPnRpbGVfZ3JvdXAtPmlkID09IHRpbGVfZ3JvdXBfaWQpCi0JCQludW1f dGlsZWRfY29ubnMrKzsKLQl9Ci0KIAkvKiBQYXNzIG91ciBtb2RlIHRvIHRoZSBjb25uZWN0b3Jz IGFuZCB0aGUgQ1JUQyB0byBnaXZlIHRoZW0gYSBjaGFuY2UgdG8KIAkgKiBhZGp1c3QgaXQgYWNj b3JkaW5nIHRvIGxpbWl0YXRpb25zIG9yIGNvbm5lY3RvciBwcm9wZXJ0aWVzLCBhbmQgYWxzbwog CSAqIGEgY2hhbmNlIHRvIHJlamVjdCB0aGUgbW9kZSBlbnRpcmVseS4KQEAgLTEzNDg3LDE1ICsx MzMzOSw2IEBAIGludGVsX21vZGVzZXRfcGlwZV9jb25maWcoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKnBpcGVfY29uZmlnKQogCQlpZiAoY29ubmVjdG9yX3N0YXRlLT5jcnRjICE9IGNydGMpCiAJ CQljb250aW51ZTsKIAotCQlyZXQgPSBpY2xfY29tcHV0ZV9wb3J0X3N5bmNfY3J0Y19zdGF0ZShj b25uZWN0b3IsIHBpcGVfY29uZmlnLAotCQkJCQkJICAgICAgIG51bV90aWxlZF9jb25ucyk7Ci0J CWlmIChyZXQpIHsKLQkJCWRybV9kYmdfa21zKCZpOTE1LT5kcm0sCi0JCQkJICAgICJDYW5ub3Qg YXNzaWduIFN5bmMgTW9kZSBDUlRDczogJWRcbiIsCi0JCQkJICAgIHJldCk7Ci0JCQlyZXR1cm4g cmV0OwotCQl9Ci0KIAkJcmV0ID0gZW5jb2Rlci0+Y29tcHV0ZV9jb25maWcoZW5jb2RlciwgcGlw ZV9jb25maWcsCiAJCQkJCSAgICAgIGNvbm5lY3Rvcl9zdGF0ZSk7CiAJCWlmIChyZXQgPCAwKSB7 Ci0tIAoyLjE5LjEKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y ZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdm eAo=