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=-12.8 required=3.0 tests=BAYES_00, 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 DE6E2C388F9 for ; Tue, 27 Oct 2020 22:11:34 +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 92B8D21D24 for ; Tue, 27 Oct 2020 22:11:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 92B8D21D24 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 2836A6E218; Tue, 27 Oct 2020 22:11:34 +0000 (UTC) Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 97AA56E20A for ; Tue, 27 Oct 2020 22:11:24 +0000 (UTC) IronPort-SDR: GQ8XcSTsu2s5MLmL2ARNyhrSm5B7ksDOclujvM2Aux5+MO3yV0XZXphqFHlKqSQG7DCthLXLTi jkhOOmgLZs1g== X-IronPort-AV: E=McAfee;i="6000,8403,9787"; a="168299464" X-IronPort-AV: E=Sophos;i="5.77,424,1596524400"; d="scan'208";a="168299464" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Oct 2020 15:11:23 -0700 IronPort-SDR: N/exyjmyvaiBNmgjmUFfmSxhovES9nRn5nAQgEZPuurYJMBrm3oYN2ddcp79GCBfLugD0zeZ6f TLcAypy4ci4A== X-IronPort-AV: E=Sophos;i="5.77,424,1596524400"; d="scan'208";a="323114121" Received: from labuser-z97x-ud5h.jf.intel.com ([10.165.21.211]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-SHA; 27 Oct 2020 15:11:23 -0700 From: Manasi Navare To: intel-gfx@lists.freedesktop.org Date: Tue, 27 Oct 2020 15:13:09 -0700 Message-Id: <20201027221312.16518-2-manasi.d.navare@intel.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20201027221312.16518-1-manasi.d.navare@intel.com> References: <20201027221312.16518-1-manasi.d.navare@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v2 2/5] drm/i915: Add hw.pipe_mode to allow bigjoiner pipe/transcoder split 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" RnJvbTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNv bT4KCldpdGggYmlnam9pbmVyLCB0aGVyZSB3aWxsIGJlIDIgcGlwZXMgZHJpdmluZyAyIGhhbGZz IG9mIDEgdHJhbnNjb2RlciwKYmVjYXVzZSBvZiB0aGlzLCB3ZSBuZWVkIGEgcGlwZV9tb2RlIGZv ciB2YXJpb3VzIGNhbGN1bGF0aW9ucywgaW5jbHVkaW5nCmZvciBleGFtcGxlIHdhdGVybWFya3Ms IHBsYW5lIGNsaXBwaW5nLCBldGMuCgp2NzoKKiBSZW1vdmUgcmVkdW5kYW50IGNvbW1lbnQgKFZp bGxlKQoqIEp1c3Qga2VlcCBtb2RlIGluc3RlYWQgb2YgcGlwZV9tb2RlIChWaWxsZSkKdjY6Ciog cmVuYW1pbmcgaW4gc2VwYXJhdGUgZnVuY3Rpb24sIG9ubHkgcGlwZV9tb2RlIGhlcmUgKFZpbGxl KQoqIEFkZCBkZXNjcmlwdGlvbiAoTWFhcnRlbikKdjU6CiogUmViYXNlIChNYW5hc2kpCnY0Ogoq IE1hbnVhbCByZWJhc2UgKE1hbmFzaSkKdjM6CiogQ2hhbmdlIHN0YXRlIHRvIGNydGNfc3RhdGUs IGZpeCByZWJhc2UgZXJyICAoTWFuYXNpKQp2MjoKKiBNYW51YWwgUmViYXNlIChNYW5hc2kpCgpT aWduZWQtb2ZmLWJ5OiBNYWFydGVuIExhbmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXgu aW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVA aW50ZWwuY29tPgpSZXZpZXdlZC1ieTogQW5pbWVzaCBNYW5uYSA8YW5pbWVzaC5tYW5uYUBpbnRl bC5jb20+ClJldmlld2VkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXgu aW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxh eS5jICB8IDM4ICsrKysrLS0tLS0KIC4uLi9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlf dHlwZXMuaCAgICB8IDExICsrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAg ICAgICAgICAgIHwgNzYgKysrKysrKysrLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA2OCBp bnNlcnRpb25zKCspLCA1NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGlzcGxheS5jCmluZGV4IGY0MWI2ZjhiNTYxOC4uNzU2NjgzYjJhNWJlIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwpAQCAtNjE2 NywxOCArNjE2NywxNiBAQCBza2xfdXBkYXRlX3NjYWxlcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwgYm9vbCBmb3JjZV9kZXRhY2gsCiAKIHN0YXRpYyBpbnQgc2tsX3VwZGF0 ZV9zY2FsZXJfY3J0YyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQlj b25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0 YXRlLT5ody5hZGp1c3RlZF9tb2RlOworCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpw aXBlX21vZGUgPSAmY3J0Y19zdGF0ZS0+aHcucGlwZV9tb2RlOwogCWludCB3aWR0aCwgaGVpZ2h0 OwogCiAJaWYgKGNydGNfc3RhdGUtPnBjaF9wZml0LmVuYWJsZWQpIHsKIAkJd2lkdGggPSBkcm1f cmVjdF93aWR0aCgmY3J0Y19zdGF0ZS0+cGNoX3BmaXQuZHN0KTsKIAkJaGVpZ2h0ID0gZHJtX3Jl Y3RfaGVpZ2h0KCZjcnRjX3N0YXRlLT5wY2hfcGZpdC5kc3QpOwogCX0gZWxzZSB7Ci0JCXdpZHRo ID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheTsKLQkJaGVpZ2h0ID0gYWRqdXN0ZWRfbW9k ZS0+Y3J0Y192ZGlzcGxheTsKKwkJd2lkdGggPSBwaXBlX21vZGUtPmNydGNfaGRpc3BsYXk7CisJ CWhlaWdodCA9IHBpcGVfbW9kZS0+Y3J0Y192ZGlzcGxheTsKIAl9Ci0KIAlyZXR1cm4gc2tsX3Vw ZGF0ZV9zY2FsZXIoY3J0Y19zdGF0ZSwgIWNydGNfc3RhdGUtPmh3LmFjdGl2ZSwKIAkJCQkgU0tM X0NSVENfSU5ERVgsCiAJCQkJICZjcnRjX3N0YXRlLT5zY2FsZXJfc3RhdGUuc2NhbGVyX2lkLApA QCAtODE5Miw3ICs4MTkwLDcgQEAgc3RhdGljIGJvb2wgaW50ZWxfY3J0Y19zdXBwb3J0c19kb3Vi bGVfd2lkZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKIAogc3RhdGljIHUzMiBpbGtf cGlwZV9waXhlbF9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl KQogewotCXUzMiBwaXhlbF9yYXRlID0gY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRj X2Nsb2NrOworCXUzMiBwaXhlbF9yYXRlID0gY3J0Y19zdGF0ZS0+aHcucGlwZV9tb2RlLmNydGNf Y2xvY2s7CiAJdW5zaWduZWQgaW50IHBpcGVfdywgcGlwZV9oLCBwZml0X3csIHBmaXRfaDsKIAog CS8qCkBAIC04MjI5LDcgKzgyMjcsNyBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2NvbXB1dGVf cGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlpZiAoSEFT X0dNQ0goZGV2X3ByaXYpKQogCQkvKiBGSVhNRSBjYWxjdWxhdGUgcHJvcGVyIHBpcGUgcGl4ZWwg cmF0ZSBmb3IgR01DSCBwZml0ICovCiAJCWNydGNfc3RhdGUtPnBpeGVsX3JhdGUgPQotCQkJY3J0 Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOworCQkJY3J0Y19zdGF0ZS0+aHcu cGlwZV9tb2RlLmNydGNfY2xvY2s7CiAJZWxzZQogCQljcnRjX3N0YXRlLT5waXhlbF9yYXRlID0K IAkJCWlsa19waXBlX3BpeGVsX3JhdGUoY3J0Y19zdGF0ZSk7CkBAIC04MjM5LDcgKzgyMzcsNyBA QCBzdGF0aWMgaW50IGludGVsX2NydGNfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMg KmNydGMsCiAJCQkJICAgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7 CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNl LmRldik7Ci0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPSAm cGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKnBpcGVfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcucGlwZV9tb2RlOwogCWludCBjbG9j a19saW1pdCA9IGRldl9wcml2LT5tYXhfZG90Y2xrX2ZyZXE7CiAKIAlpZiAoSU5URUxfR0VOKGRl dl9wcml2KSA8IDQpIHsKQEAgLTgyNTAsMTYgKzgyNDgsMTYgQEAgc3RhdGljIGludCBpbnRlbF9j cnRjX2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkgKiBpcyA+IDkw JSBvZiB0aGUgKGRpc3BsYXkpIGNvcmUgc3BlZWQuCiAJCSAqLwogCQlpZiAoaW50ZWxfY3J0Y19z dXBwb3J0c19kb3VibGVfd2lkZShjcnRjKSAmJgotCQkgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19j bG9jayA+IGNsb2NrX2xpbWl0KSB7CisJCSAgICBwaXBlX21vZGUtPmNydGNfY2xvY2sgPiBjbG9j a19saW1pdCkgewogCQkJY2xvY2tfbGltaXQgPSBkZXZfcHJpdi0+bWF4X2RvdGNsa19mcmVxOwog CQkJcGlwZV9jb25maWctPmRvdWJsZV93aWRlID0gdHJ1ZTsKIAkJfQogCX0KIAotCWlmIChhZGp1 c3RlZF9tb2RlLT5jcnRjX2Nsb2NrID4gY2xvY2tfbGltaXQpIHsKKwlpZiAocGlwZV9tb2RlLT5j cnRjX2Nsb2NrID4gY2xvY2tfbGltaXQpIHsKIAkJZHJtX2RiZ19rbXMoJmRldl9wcml2LT5kcm0s CiAJCQkgICAgInJlcXVlc3RlZCBwaXhlbCBjbG9jayAoJWQga0h6KSB0b28gaGlnaCAobWF4OiAl ZCBrSHosIGRvdWJsZSB3aWRlOiAlcylcbiIsCi0JCQkgICAgYWRqdXN0ZWRfbW9kZS0+Y3J0Y19j bG9jaywgY2xvY2tfbGltaXQsCisJCQkgICAgcGlwZV9tb2RlLT5jcnRjX2Nsb2NrLCBjbG9ja19s aW1pdCwKIAkJCSAgICB5ZXNubyhwaXBlX2NvbmZpZy0+ZG91YmxlX3dpZGUpKTsKIAkJcmV0dXJu IC1FSU5WQUw7CiAJfQpAQCAtODMwMiw3ICs4MzAwLDcgQEAgc3RhdGljIGludCBpbnRlbF9jcnRj X2NvbXB1dGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCSAqIFdhUHJ1bmVNb2Rl V2l0aEluY29ycmVjdEhzeW5jT2Zmc2V0OmN0ZyxlbGssaWxrLHNuYixpdmIsdmx2LGhzdy4KIAkg Ki8KIAlpZiAoKElOVEVMX0dFTihkZXZfcHJpdikgPiA0IHx8IElTX0c0WChkZXZfcHJpdikpICYm Ci0JCWFkanVzdGVkX21vZGUtPmNydGNfaHN5bmNfc3RhcnQgPT0gYWRqdXN0ZWRfbW9kZS0+Y3J0 Y19oZGlzcGxheSkKKwkJcGlwZV9tb2RlLT5jcnRjX2hzeW5jX3N0YXJ0ID09IHBpcGVfbW9kZS0+ Y3J0Y19oZGlzcGxheSkKIAkJcmV0dXJuIC1FSU5WQUw7CiAKIAlpbnRlbF9jcnRjX2NvbXB1dGVf cGl4ZWxfcmF0ZShwaXBlX2NvbmZpZyk7CkBAIC0xMjgyMSwxNSArMTI4MTksMTUgQEAgc3RhdGlj IGJvb2wgYzhfcGxhbmVzX2NoYW5nZWQoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5l d19jcnRjX3N0YXRlKQogCiBzdGF0aWMgdTE2IGhzd19saW5ldGltZV93bShjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2Rl OworCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpwaXBlX21vZGUgPQorCQkmY3J0Y19z dGF0ZS0+aHcucGlwZV9tb2RlOwogCWludCBsaW5ldGltZV93bTsKIAogCWlmICghY3J0Y19zdGF0 ZS0+aHcuZW5hYmxlKQogCQlyZXR1cm4gMDsKIAotCWxpbmV0aW1lX3dtID0gRElWX1JPVU5EX0NM T1NFU1QoYWRqdXN0ZWRfbW9kZS0+Y3J0Y19odG90YWwgKiAxMDAwICogOCwKLQkJCQkJYWRqdXN0 ZWRfbW9kZS0+Y3J0Y19jbG9jayk7CisJbGluZXRpbWVfd20gPSBESVZfUk9VTkRfQ0xPU0VTVChw aXBlX21vZGUtPmNydGNfaHRvdGFsICogMTAwMCAqIDgsCisJCQkJCXBpcGVfbW9kZS0+Y3J0Y19j bG9jayk7CiAKIAlyZXR1cm4gbWluKGxpbmV0aW1lX3dtLCAweDFmZik7CiB9CkBAIC0xMzQ1OSw4 ICsxMzQ1Nyw5IEBAIGludGVsX2NydGNfY29weV91YXBpX3RvX2h3X3N0YXRlKHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCWNydGNfc3RhdGUtPmh3LmVuYWJsZSA9IGNydGNf c3RhdGUtPnVhcGkuZW5hYmxlOwogCWNydGNfc3RhdGUtPmh3LmFjdGl2ZSA9IGNydGNfc3RhdGUt PnVhcGkuYWN0aXZlOwogCWNydGNfc3RhdGUtPmh3Lm1vZGUgPSBjcnRjX3N0YXRlLT51YXBpLm1v ZGU7Ci0JY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZSA9IGNydGNfc3RhdGUtPnVhcGkuYWRq dXN0ZWRfbW9kZTsKKwljcnRjX3N0YXRlLT5ody5waXBlX21vZGUgPSBjcnRjX3N0YXRlLT5ody5h ZGp1c3RlZF9tb2RlID0gY3J0Y19zdGF0ZS0+dWFwaS5hZGp1c3RlZF9tb2RlOwogCWNydGNfc3Rh dGUtPmh3LnNjYWxpbmdfZmlsdGVyID0gY3J0Y19zdGF0ZS0+dWFwaS5zY2FsaW5nX2ZpbHRlcjsK KwogCWludGVsX2NydGNfY29weV91YXBpX3RvX2h3X3N0YXRlX25vbW9kZXNldChjcnRjX3N0YXRl KTsKIH0KIApAQCAtMTM2NTcsNiArMTM2NTYsOSBAQCBpbnRlbF9tb2Rlc2V0X3BpcGVfY29uZmln KHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIAkJICAgICJodyBtYXggYnBw OiAlaSwgcGlwZSBicHA6ICVpLCBkaXRoZXJpbmc6ICVpXG4iLAogCQkgICAgYmFzZV9icHAsIHBp cGVfY29uZmlnLT5waXBlX2JwcCwgcGlwZV9jb25maWctPmRpdGhlcik7CiAKKwkvKiB3aXRob3V0 IGJpZ2pvaW5lciwgcGlwZV9tb2RlID09IGFkanVzdGVkX21vZGUgKi8KKwlwaXBlX2NvbmZpZy0+ aHcucGlwZV9tb2RlID0gcGlwZV9jb25maWctPmh3LmFkanVzdGVkX21vZGU7CisKIAlyZXR1cm4g MDsKIH0KIApAQCAtMTg5MTQsNiArMTg5MTYsOCBAQCBzdGF0aWMgdm9pZCBpbnRlbF9tb2Rlc2V0 X3JlYWRvdXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJCSAqLwogCQkJY3J0 Y19zdGF0ZS0+aW5oZXJpdGVkID0gdHJ1ZTsKIAorCQkJY3J0Y19zdGF0ZS0+aHcucGlwZV9tb2Rl ID0gY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKKwogCQkJaW50ZWxfY3J0Y19jb21wdXRl X3BpeGVsX3JhdGUoY3J0Y19zdGF0ZSk7CiAKIAkJCWludGVsX2NydGNfdXBkYXRlX2FjdGl2ZV90 aW1pbmdzKGNydGNfc3RhdGUpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2Rpc3BsYXlfdHlwZXMuaAppbmRleCBmNmYwNjI2NjQ5ZTAuLmI1MjZhZmVlNTk1YyAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5 cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5 cGVzLmgKQEAgLTgxNywxNSArODE3LDIyIEBAIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKIAkg KiBUaGUgZm9sbG93aW5nIG1lbWJlcnMgYXJlIHVzZWQgdG8gdmVyaWZ5IHRoZSBoYXJkd2FyZSBz dGF0ZToKIAkgKiAtIGVuYWJsZQogCSAqIC0gYWN0aXZlCi0JICogLSBtb2RlIC8gYWRqdXN0ZWRf bW9kZQorCSAqIC0gbW9kZS9hZGp1c3RlZF9tb2RlCiAJICogLSBjb2xvciBwcm9wZXJ0eSBibG9i cy4KIAkgKgogCSAqIER1cmluZyBpbml0aWFsIGh3IHJlYWRvdXQsIHRoZXkgbmVlZCB0byBiZSBj b3BpZWQgdG8gdWFwaS4KKwkgKgorCSAqIEJpZ2pvaW5lciB3aWxsIGFsbG93IGEgdHJhbnNjb2Rl ciBtb2RlIHRoYXQgc3BhbnMgMiBwaXBlczsKKwkgKiBVc2UgdGhlIHBpcGVfbW9kZSBmb3IgY2Fs Y3VsYXRpb25zIGxpa2Ugd2F0ZXJtYXJrcywgcGlwZQorCSAqIHNjYWxlciwgYW5kIGJhbmR3aWR0 aC4KKwkgKgorCSAqIFVzZSBhZGp1c3RlZF9tb2RlIGZvciB0aGluZ3MgdGhhdCBuZWVkIHRvIGtu b3cgdGhlIGZ1bGwKKwkgKiBtb2RlIG9uIHRoZSB0cmFuc2NvZGVyLCB3aGljaCBzcGFucyBhbGwg cGlwZXMuCiAJICovCiAJc3RydWN0IHsKIAkJYm9vbCBhY3RpdmUsIGVuYWJsZTsKIAkJc3RydWN0 IGRybV9wcm9wZXJ0eV9ibG9iICpkZWdhbW1hX2x1dCwgKmdhbW1hX2x1dCwgKmN0bTsKLQkJc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgbW9kZSwgYWRqdXN0ZWRfbW9kZTsKKwkJc3RydWN0IGRybV9k aXNwbGF5X21vZGUgbW9kZSwgcGlwZV9tb2RlLCBhZGp1c3RlZF9tb2RlOwogCQllbnVtIGRybV9z Y2FsaW5nX2ZpbHRlciBzY2FsaW5nX2ZpbHRlcjsKIAl9IGh3OwogCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cG0uYwppbmRleCAwZWYwMWEwMWVmOGQuLjE4ZTUyNzYzZGZlYyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9wbS5jCkBAIC04OTksMTIgKzg5OSwxMiBAQCBzdGF0aWMgdm9pZCBwbnZfdXBkYXRlX3dtKHN0 cnVjdCBpbnRlbF9jcnRjICp1bnVzZWRfY3J0YykKIAogCWNydGMgPSBzaW5nbGVfZW5hYmxlZF9j cnRjKGRldl9wcml2KTsKIAlpZiAoY3J0YykgewotCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCQkmY3J0Yy0+Y29uZmlnLT5ody5hZGp1c3RlZF9tb2Rl OworCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqcGlwZV9tb2RlID0KKwkJCSZjcnRj LT5jb25maWctPmh3LnBpcGVfbW9kZTsKIAkJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIgPQogCQkJY3J0Yy0+YmFzZS5wcmltYXJ5LT5zdGF0ZS0+ZmI7CiAJCWludCBjcHAgPSBmYi0+ Zm9ybWF0LT5jcHBbMF07Ci0JCWludCBjbG9jayA9IGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2s7 CisJCWludCBjbG9jayA9IHBpcGVfbW9kZS0+Y3J0Y19jbG9jazsKIAogCQkvKiBEaXNwbGF5IFNS ICovCiAJCXdtID0gaW50ZWxfY2FsY3VsYXRlX3dtKGNsb2NrLCAmcG52X2Rpc3BsYXlfd20sCkBA IC0xMTM1LDggKzExMzUsOCBAQCBzdGF0aWMgdTE2IGc0eF9jb21wdXRlX3dtKGNvbnN0IHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogewogCXN0cnVjdCBpbnRlbF9wbGFuZSAq cGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+dWFwaS5wbGFuZSk7CiAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShwbGFuZS0+YmFzZS5kZXYpOwot CWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJmNydGNf c3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg KnBpcGVfbW9kZSA9CisJCSZjcnRjX3N0YXRlLT5ody5waXBlX21vZGU7CiAJdW5zaWduZWQgaW50 IGxhdGVuY3kgPSBkZXZfcHJpdi0+d20ucHJpX2xhdGVuY3lbbGV2ZWxdICogMTA7CiAJdW5zaWdu ZWQgaW50IGNsb2NrLCBodG90YWwsIGNwcCwgd2lkdGgsIHdtOwogCkBAIC0xMTYzLDggKzExNjMs OCBAQCBzdGF0aWMgdTE2IGc0eF9jb21wdXRlX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlLAogCSAgICBsZXZlbCAhPSBHNFhfV01fTEVWRUxfTk9STUFMKQogCQlj cHAgPSBtYXgoY3BwLCA0dSk7CiAKLQljbG9jayA9IGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2s7 Ci0JaHRvdGFsID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19odG90YWw7CisJY2xvY2sgPSBwaXBlX21v ZGUtPmNydGNfY2xvY2s7CisJaHRvdGFsID0gcGlwZV9tb2RlLT5jcnRjX2h0b3RhbDsKIAogCXdp ZHRoID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT51YXBpLmRzdCk7CiAKQEAgLTE2NjAs OCArMTY2MCw4IEBAIHN0YXRpYyB1MTYgdmx2X2NvbXB1dGVfd21fbGV2ZWwoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiB7CiAJc3RydWN0IGludGVsX3BsYW5lICpw bGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT51YXBpLnBsYW5lKTsKIAlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNlLmRldik7Ci0J Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0Y19z dGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq cGlwZV9tb2RlID0KKwkJJmNydGNfc3RhdGUtPmh3LnBpcGVfbW9kZTsKIAl1bnNpZ25lZCBpbnQg Y2xvY2ssIGh0b3RhbCwgY3BwLCB3aWR0aCwgd207CiAKIAlpZiAoZGV2X3ByaXYtPndtLnByaV9s YXRlbmN5W2xldmVsXSA9PSAwKQpAQCAtMTY3MSw4ICsxNjcxLDggQEAgc3RhdGljIHUxNiB2bHZf Y29tcHV0ZV93bV9sZXZlbChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSwKIAkJcmV0dXJuIDA7CiAKIAljcHAgPSBwbGFuZV9zdGF0ZS0+aHcuZmItPmZvcm1hdC0+Y3Bw WzBdOwotCWNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jazsKLQlodG90YWwgPSBhZGp1 c3RlZF9tb2RlLT5jcnRjX2h0b3RhbDsKKwljbG9jayA9IHBpcGVfbW9kZS0+Y3J0Y19jbG9jazsK KwlodG90YWwgPSBwaXBlX21vZGUtPmNydGNfaHRvdGFsOwogCXdpZHRoID0gY3J0Y19zdGF0ZS0+ cGlwZV9zcmNfdzsKIAogCWlmIChwbGFuZS0+aWQgPT0gUExBTkVfQ1VSU09SKSB7CkBAIC0yMjYx LDEyICsyMjYxLDEyIEBAIHN0YXRpYyB2b2lkIGk5NjVfdXBkYXRlX3dtKHN0cnVjdCBpbnRlbF9j cnRjICp1bnVzZWRfY3J0YykKIAlpZiAoY3J0YykgewogCQkvKiBzZWxmLXJlZnJlc2ggaGFzIG11 Y2ggaGlnaGVyIGxhdGVuY3kgKi8KIAkJc3RhdGljIGNvbnN0IGludCBzcl9sYXRlbmN5X25zID0g MTIwMDA7Ci0JCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0K LQkJCSZjcnRjLT5jb25maWctPmh3LmFkanVzdGVkX21vZGU7CisJCWNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICpwaXBlX21vZGUgPQorCQkJJmNydGMtPmNvbmZpZy0+aHcucGlwZV9tb2Rl OwogCQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9CiAJCQljcnRjLT5iYXNlLnBy aW1hcnktPnN0YXRlLT5mYjsKLQkJaW50IGNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9j azsKLQkJaW50IGh0b3RhbCA9IGFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFsOworCQlpbnQgY2xv Y2sgPSBwaXBlX21vZGUtPmNydGNfY2xvY2s7CisJCWludCBodG90YWwgPSBwaXBlX21vZGUtPmNy dGNfaHRvdGFsOwogCQlpbnQgaGRpc3BsYXkgPSBjcnRjLT5jb25maWctPnBpcGVfc3JjX3c7CiAJ CWludCBjcHAgPSBmYi0+Zm9ybWF0LT5jcHBbMF07CiAJCWludCBlbnRyaWVzOwpAQCAtMjM0NSw4 ICsyMzQ1LDggQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfd20oc3RydWN0IGludGVsX2NydGMg KnVudXNlZF9jcnRjKQogCWZpZm9fc2l6ZSA9IGRldl9wcml2LT5kaXNwbGF5LmdldF9maWZvX3Np emUoZGV2X3ByaXYsIFBMQU5FX0EpOwogCWNydGMgPSBpbnRlbF9nZXRfY3J0Y19mb3JfcGxhbmUo ZGV2X3ByaXYsIFBMQU5FX0EpOwogCWlmIChpbnRlbF9jcnRjX2FjdGl2ZShjcnRjKSkgewotCQlj b25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCQkmY3J0Yy0+ Y29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOworCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqcGlwZV9tb2RlID0KKwkJCSZjcnRjLT5jb25maWctPmh3LnBpcGVfbW9kZTsKIAkJY29uc3Qg c3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPQogCQkJY3J0Yy0+YmFzZS5wcmltYXJ5LT5zdGF0 ZS0+ZmI7CiAJCWludCBjcHA7CkBAIC0yMzU2LDcgKzIzNTYsNyBAQCBzdGF0aWMgdm9pZCBpOXh4 X3VwZGF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqdW51c2VkX2NydGMpCiAJCWVsc2UKIAkJCWNw cCA9IGZiLT5mb3JtYXQtPmNwcFswXTsKIAotCQlwbGFuZWFfd20gPSBpbnRlbF9jYWxjdWxhdGVf d20oYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKKwkJcGxhbmVhX3dtID0gaW50ZWxfY2FsY3Vs YXRlX3dtKHBpcGVfbW9kZS0+Y3J0Y19jbG9jaywKIAkJCQkJICAgICAgIHdtX2luZm8sIGZpZm9f c2l6ZSwgY3BwLAogCQkJCQkgICAgICAgcGVzc2ltYWxfbGF0ZW5jeV9ucyk7CiAJCWVuYWJsZWQg PSBjcnRjOwpAQCAtMjM3Miw4ICsyMzcyLDggQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfd20o c3RydWN0IGludGVsX2NydGMgKnVudXNlZF9jcnRjKQogCWZpZm9fc2l6ZSA9IGRldl9wcml2LT5k aXNwbGF5LmdldF9maWZvX3NpemUoZGV2X3ByaXYsIFBMQU5FX0IpOwogCWNydGMgPSBpbnRlbF9n ZXRfY3J0Y19mb3JfcGxhbmUoZGV2X3ByaXYsIFBMQU5FX0IpOwogCWlmIChpbnRlbF9jcnRjX2Fj dGl2ZShjcnRjKSkgewotCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZSA9Ci0JCQkmY3J0Yy0+Y29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOworCQljb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqcGlwZV9tb2RlID0KKwkJCSZjcnRjLT5jb25maWctPmh3LnBp cGVfbW9kZTsKIAkJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPQogCQkJY3J0Yy0+ YmFzZS5wcmltYXJ5LT5zdGF0ZS0+ZmI7CiAJCWludCBjcHA7CkBAIC0yMzgzLDcgKzIzODMsNyBA QCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqdW51c2VkX2Ny dGMpCiAJCWVsc2UKIAkJCWNwcCA9IGZiLT5mb3JtYXQtPmNwcFswXTsKIAotCQlwbGFuZWJfd20g PSBpbnRlbF9jYWxjdWxhdGVfd20oYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKKwkJcGxhbmVi X3dtID0gaW50ZWxfY2FsY3VsYXRlX3dtKHBpcGVfbW9kZS0+Y3J0Y19jbG9jaywKIAkJCQkJICAg ICAgIHdtX2luZm8sIGZpZm9fc2l6ZSwgY3BwLAogCQkJCQkgICAgICAgcGVzc2ltYWxfbGF0ZW5j eV9ucyk7CiAJCWlmIChlbmFibGVkID09IE5VTEwpCkBAIC0yNDIxLDEyICsyNDIxLDEyIEBAIHN0 YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjICp1bnVzZWRfY3J0YykK IAlpZiAoSEFTX0ZXX0JMQyhkZXZfcHJpdikgJiYgZW5hYmxlZCkgewogCQkvKiBzZWxmLXJlZnJl c2ggaGFzIG11Y2ggaGlnaGVyIGxhdGVuY3kgKi8KIAkJc3RhdGljIGNvbnN0IGludCBzcl9sYXRl bmN5X25zID0gNjAwMDsKLQkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVk X21vZGUgPQotCQkJJmVuYWJsZWQtPmNvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKKwkJY29uc3Qg c3RydWN0IGRybV9kaXNwbGF5X21vZGUgKnBpcGVfbW9kZSA9CisJCQkmZW5hYmxlZC0+Y29uZmln LT5ody5waXBlX21vZGU7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0KIAkJ CWVuYWJsZWQtPmJhc2UucHJpbWFyeS0+c3RhdGUtPmZiOwotCQlpbnQgY2xvY2sgPSBhZGp1c3Rl ZF9tb2RlLT5jcnRjX2Nsb2NrOwotCQlpbnQgaHRvdGFsID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19o dG90YWw7CisJCWludCBjbG9jayA9IHBpcGVfbW9kZS0+Y3J0Y19jbG9jazsKKwkJaW50IGh0b3Rh bCA9IHBpcGVfbW9kZS0+Y3J0Y19odG90YWw7CiAJCWludCBoZGlzcGxheSA9IGVuYWJsZWQtPmNv bmZpZy0+cGlwZV9zcmNfdzsKIAkJaW50IGNwcDsKIAkJaW50IGVudHJpZXM7CkBAIC0yNDc0LDcg KzI0NzQsNyBAQCBzdGF0aWMgdm9pZCBpODQ1X3VwZGF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAq dW51c2VkX2NydGMpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNSh1bnVzZWRfY3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwot CWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlOworCWNvbnN0IHN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICpwaXBlX21vZGU7CiAJdTMyIGZ3YXRlcl9sbzsKIAlpbnQg cGxhbmVhX3dtOwogCkBAIC0yNDgyLDggKzI0ODIsOCBAQCBzdGF0aWMgdm9pZCBpODQ1X3VwZGF0 ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqdW51c2VkX2NydGMpCiAJaWYgKGNydGMgPT0gTlVMTCkK IAkJcmV0dXJuOwogCi0JYWRqdXN0ZWRfbW9kZSA9ICZjcnRjLT5jb25maWctPmh3LmFkanVzdGVk X21vZGU7Ci0JcGxhbmVhX3dtID0gaW50ZWxfY2FsY3VsYXRlX3dtKGFkanVzdGVkX21vZGUtPmNy dGNfY2xvY2ssCisJcGlwZV9tb2RlID0gJmNydGMtPmNvbmZpZy0+aHcucGlwZV9tb2RlOworCXBs YW5lYV93bSA9IGludGVsX2NhbGN1bGF0ZV93bShwaXBlX21vZGUtPmNydGNfY2xvY2ssCiAJCQkJ ICAgICAgICZpODQ1X3dtX2luZm8sCiAJCQkJICAgICAgIGRldl9wcml2LT5kaXNwbGF5LmdldF9m aWZvX3NpemUoZGV2X3ByaXYsIFBMQU5FX0EpLAogCQkJCSAgICAgICA0LCBwZXNzaW1hbF9sYXRl bmN5X25zKTsKQEAgLTI1NzMsNyArMjU3Myw3IEBAIHN0YXRpYyB1MzIgaWxrX2NvbXB1dGVfcHJp X3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCQlyZXR1cm4g bWV0aG9kMTsKIAogCW1ldGhvZDIgPSBpbGtfd21fbWV0aG9kMihjcnRjX3N0YXRlLT5waXhlbF9y YXRlLAotCQkJCSBjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsLAorCQkJ CSBjcnRjX3N0YXRlLT5ody5waXBlX21vZGUuY3J0Y19odG90YWwsCiAJCQkJIGRybV9yZWN0X3dp ZHRoKCZwbGFuZV9zdGF0ZS0+dWFwaS5kc3QpLAogCQkJCSBjcHAsIG1lbV92YWx1ZSk7CiAKQEAg LTI2MDEsNyArMjYwMSw3IEBAIHN0YXRpYyB1MzIgaWxrX2NvbXB1dGVfc3ByX3dtKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCiAJbWV0aG9kMSA9IGlsa193bV9t ZXRob2QxKGNydGNfc3RhdGUtPnBpeGVsX3JhdGUsIGNwcCwgbWVtX3ZhbHVlKTsKIAltZXRob2Qy ID0gaWxrX3dtX21ldGhvZDIoY3J0Y19zdGF0ZS0+cGl4ZWxfcmF0ZSwKLQkJCQkgY3J0Y19zdGF0 ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwKKwkJCQkgY3J0Y19zdGF0ZS0+aHcucGlw ZV9tb2RlLmNydGNfaHRvdGFsLAogCQkJCSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPnVh cGkuZHN0KSwKIAkJCQkgY3BwLCBtZW1fdmFsdWUpOwogCXJldHVybiBtaW4obWV0aG9kMSwgbWV0 aG9kMik7CkBAIC0yNjI2LDcgKzI2MjYsNyBAQCBzdGF0aWMgdTMyIGlsa19jb21wdXRlX2N1cl93 bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAljcHAgPSBwbGFu ZV9zdGF0ZS0+aHcuZmItPmZvcm1hdC0+Y3BwWzBdOwogCiAJcmV0dXJuIGlsa193bV9tZXRob2Qy KGNydGNfc3RhdGUtPnBpeGVsX3JhdGUsCi0JCQkgICAgICBjcnRjX3N0YXRlLT5ody5hZGp1c3Rl ZF9tb2RlLmNydGNfaHRvdGFsLAorCQkJICAgICAgY3J0Y19zdGF0ZS0+aHcucGlwZV9tb2RlLmNy dGNfaHRvdGFsLAogCQkJICAgICAgZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT51YXBpLmRz dCksCiAJCQkgICAgICBjcHAsIG1lbV92YWx1ZSk7CiB9CkBAIC0zODgzLDcgKzM4ODMsNyBAQCBz dGF0aWMgYm9vbCBza2xfY3J0Y19jYW5fZW5hYmxlX3NhZ3YoY29uc3Qgc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJaWYgKCFjcnRjX3N0YXRlLT5ody5hY3RpdmUpCiAJCXJl dHVybiB0cnVlOwogCi0JaWYgKGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuZmxhZ3MgJiBE Uk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkKKwlpZiAoY3J0Y19zdGF0ZS0+aHcucGlwZV9tb2RlLmZs YWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0UpCiAJCXJldHVybiBmYWxzZTsKIAogCWludGVs X2F0b21pY19jcnRjX3N0YXRlX2Zvcl9lYWNoX3BsYW5lX3N0YXRlKHBsYW5lLCBwbGFuZV9zdGF0 ZSwgY3J0Y19zdGF0ZSkgewpAQCAtNDE3NCw4ICs0MTc0LDggQEAgc2tsX2RkYl9nZXRfcGlwZV9h bGxvY2F0aW9uX2xpbWl0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJICov CiAJdG90YWxfc2xpY2VfbWFzayA9IGRidWZfc2xpY2VfbWFzazsKIAlmb3JfZWFjaF9uZXdfaW50 ZWxfY3J0Y19pbl9zdGF0ZShpbnRlbF9zdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewotCQlj b25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCQkmY3J0Y19z dGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKKwkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUg KnBpcGVfbW9kZSA9CisJCQkmY3J0Y19zdGF0ZS0+aHcucGlwZV9tb2RlOwogCQllbnVtIHBpcGUg cGlwZSA9IGNydGMtPnBpcGU7CiAJCWludCBoZGlzcGxheSwgdmRpc3BsYXk7CiAJCXUzMiBwaXBl X2RidWZfc2xpY2VfbWFzazsKQEAgLTQyMDUsNyArNDIwNSw3IEBAIHNrbF9kZGJfZ2V0X3BpcGVf YWxsb2NhdGlvbl9saW1pdHMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQlp ZiAoZGJ1Zl9zbGljZV9tYXNrICE9IHBpcGVfZGJ1Zl9zbGljZV9tYXNrKQogCQkJY29udGludWU7 CiAKLQkJZHJtX21vZGVfZ2V0X2h2X3RpbWluZyhhZGp1c3RlZF9tb2RlLCAmaGRpc3BsYXksICZ2 ZGlzcGxheSk7CisJCWRybV9tb2RlX2dldF9odl90aW1pbmcocGlwZV9tb2RlLCAmaGRpc3BsYXks ICZ2ZGlzcGxheSk7CiAKIAkJdG90YWxfd2lkdGhfaW5fcmFuZ2UgKz0gaGRpc3BsYXk7CiAKQEAg LTUwOTMsNyArNTA5Myw3IEBAIGludGVsX2dldF9saW5ldGltZV91cyhjb25zdCBzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlpZiAoZHJtX1dBUk5fT04oJmRldl9wcml2LT5k cm0sIHBpeGVsX3JhdGUgPT0gMCkpCiAJCXJldHVybiB1MzJfdG9fZml4ZWQxNigwKTsKIAotCWNy dGNfaHRvdGFsID0gY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbDsKKwlj cnRjX2h0b3RhbCA9IGNydGNfc3RhdGUtPmh3LnBpcGVfbW9kZS5jcnRjX2h0b3RhbDsKIAlsaW5l dGltZV91cyA9IGRpdl9maXhlZDE2KGNydGNfaHRvdGFsICogMTAwMCwgcGl4ZWxfcmF0ZSk7CiAK IAlyZXR1cm4gbGluZXRpbWVfdXM7CkBAIC01MjgyLDE0ICs1MjgyLDE0IEBAIHN0YXRpYyB2b2lk IHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAogCW1ldGhvZDEgPSBza2xfd21fbWV0aG9kMShkZXZfcHJpdiwgd3AtPnBsYW5lX3Bp eGVsX3JhdGUsCiAJCQkJIHdwLT5jcHAsIGxhdGVuY3ksIHdwLT5kYnVmX2Jsb2NrX3NpemUpOwog CW1ldGhvZDIgPSBza2xfd21fbWV0aG9kMih3cC0+cGxhbmVfcGl4ZWxfcmF0ZSwKLQkJCQkgY3J0 Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwKKwkJCQkgY3J0Y19zdGF0ZS0+ aHcucGlwZV9tb2RlLmNydGNfaHRvdGFsLAogCQkJCSBsYXRlbmN5LAogCQkJCSB3cC0+cGxhbmVf YmxvY2tzX3Blcl9saW5lKTsKIAogCWlmICh3cC0+eV90aWxlZCkgewogCQlzZWxlY3RlZF9yZXN1 bHQgPSBtYXhfZml4ZWQxNihtZXRob2QyLCB3cC0+eV90aWxlX21pbmltdW0pOwogCX0gZWxzZSB7 Ci0JCWlmICgod3AtPmNwcCAqIGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19odG90 YWwgLworCQlpZiAoKHdwLT5jcHAgKiBjcnRjX3N0YXRlLT5ody5waXBlX21vZGUuY3J0Y19odG90 YWwgLwogCQkgICAgIHdwLT5kYnVmX2Jsb2NrX3NpemUgPCAxKSAmJgogCQkgICAgICh3cC0+cGxh bmVfYnl0ZXNfcGVyX2xpbmUgLyB3cC0+ZGJ1Zl9ibG9ja19zaXplIDwgMSkpIHsKIAkJCXNlbGVj dGVkX3Jlc3VsdCA9IG1ldGhvZDI7Ci0tIAoyLjE5LjEKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=