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 129EFC2D0A3 for ; Mon, 9 Nov 2020 20:10:45 +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 C6DA8206E3 for ; Mon, 9 Nov 2020 20:10:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C6DA8206E3 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 EDE5689362; Mon, 9 Nov 2020 20:10:41 +0000 (UTC) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id E973E8930B for ; Mon, 9 Nov 2020 20:10:37 +0000 (UTC) IronPort-SDR: 65/PHxdzWOwkCxHErGsE/91cThaUhCLqh1eJ9ybHp6e+B0liL3YY7KmSEbU3pRCpnnGxs4e42i q8yvMs6FO+7g== X-IronPort-AV: E=McAfee;i="6000,8403,9800"; a="157647101" X-IronPort-AV: E=Sophos;i="5.77,464,1596524400"; d="scan'208";a="157647101" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Nov 2020 12:10:37 -0800 IronPort-SDR: p824nv2U7QKtYx5/FsqruRjU+yY89iYE8H6eh00aMd33vBfzyk2wXfhk1LyjM5o+nEsCZdGmT0 Y0RyjdhQxY4g== X-IronPort-AV: E=Sophos;i="5.77,464,1596524400"; d="scan'208";a="355830358" Received: from labuser-z97x-ud5h.jf.intel.com ([10.165.21.211]) by fmsmga004-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-SHA; 09 Nov 2020 12:10:36 -0800 From: Manasi Navare To: intel-gfx@lists.freedesktop.org Date: Mon, 9 Nov 2020 12:12:43 -0800 Message-Id: <20201109201246.17117-4-manasi.d.navare@intel.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20201109201246.17117-1-manasi.d.navare@intel.com> References: <20201109201246.17117-1-manasi.d.navare@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v8 4/7] 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 bT4KCldpdGggYmlnam9pbmVyLCB0aGVyZSB3aWxsIGJlIDIgcGlwZXMgZHJpdmluZyAyIGhhbHZl cyBvZiAxIHRyYW5zY29kZXIsCmJlY2F1c2Ugb2YgdGhpcywgd2UgbmVlZCBhIHBpcGVfbW9kZSBm b3IgdmFyaW91cyBjYWxjdWxhdGlvbnMsIGluY2x1ZGluZwpmb3IgZXhhbXBsZSB3YXRlcm1hcmtz LCBwbGFuZSBjbGlwcGluZywgZXRjLgoKdjEwOgoqIHJlbW92ZSByZWR1bmRhbnQgcGlwZV9tb2Rl IGFzc2lnbm1lbnQgKFZpbGxlKQp2OToKKiBwaXBlX21vZGUgaW4gc3RhdGUgZHVtcCBuZCBzdGF0 ZSBjaGVjayAoVmlsbGUpCnY4OgoqIEFkZCBwaXBlX21vZGUgaW4gcmVhZG91dCBpbiB2ZXJpZnlf Y3J0Y19zdGF0ZSAoVmlsbGUpCnY3OgoqIFJlbW92ZSByZWR1bmRhbnQgY29tbWVudCAoVmlsbGUp CiogSnVzdCBrZWVwIG1vZGUgaW5zdGVhZCBvZiBwaXBlX21vZGUgKFZpbGxlKQp2NjoKKiByZW5h bWluZyBpbiBzZXBhcmF0ZSBmdW5jdGlvbiwgb25seSBwaXBlX21vZGUgaGVyZSAoVmlsbGUpCiog QWRkIGRlc2NyaXB0aW9uIChNYWFydGVuKQp2NToKKiBSZWJhc2UgKE1hbmFzaSkKdjQ6CiogTWFu dWFsIHJlYmFzZSAoTWFuYXNpKQp2MzoKKiBDaGFuZ2Ugc3RhdGUgdG8gY3J0Y19zdGF0ZSwgZml4 IHJlYmFzZSBlcnIgIChNYW5hc2kpCnYyOgoqIE1hbnVhbCBSZWJhc2UgKE1hbmFzaSkKClNpZ25l ZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRl bC5jb20+ClNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRl bC5jb20+ClJldmlld2VkLWJ5OiBBbmltZXNoIE1hbm5hIDxhbmltZXNoLm1hbm5hQGludGVsLmNv bT4KUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMg IHwgNTUgKysrKysrKysrLS0tLS0KIC4uLi9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlf dHlwZXMuaCAgICB8IDExICsrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAg ICAgICAgICAgIHwgNzYgKysrKysrKysrLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA4NCBp bnNlcnRpb25zKCspLCA1OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rp c3BsYXkvaW50ZWxfZGlzcGxheS5jCmluZGV4IDE1MzBmYWYxNDNmNS4uMzY3OTAyNjkxYzJjIDEw 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 CS8qCkBAIC04MjI1LDcgKzgyMjMsMTEgQEAgc3RhdGljIHUzMiBpbGtfcGlwZV9waXhlbF9yYXRl KGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogc3RhdGljIHZvaWQg aW50ZWxfZW5jb2Rlcl9nZXRfY29uZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAog CQkJCSAgICAgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CisJc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKnBpcGVfbW9kZSA9ICZjcnRjX3N0YXRlLT5ody5waXBlX21vZGU7 CisKIAllbmNvZGVyLT5nZXRfY29uZmlnKGVuY29kZXIsIGNydGNfc3RhdGUpOworCisJKnBpcGVf bW9kZSA9IGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CiB9CiAKIHN0YXRpYyB2b2lkIGlu dGVsX2NydGNfY29tcHV0ZV9waXhlbF9yYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQpAQCAtODIzNSw3ICs4MjM3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19jb21w dXRlX3BpeGVsX3JhdGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJaWYg KEhBU19HTUNIKGRldl9wcml2KSkKIAkJLyogRklYTUUgY2FsY3VsYXRlIHByb3BlciBwaXBlIHBp eGVsIHJhdGUgZm9yIEdNQ0ggcGZpdCAqLwogCQljcnRjX3N0YXRlLT5waXhlbF9yYXRlID0KLQkJ CWNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKKwkJCWNydGNfc3RhdGUt Pmh3LnBpcGVfbW9kZS5jcnRjX2Nsb2NrOwogCWVsc2UKIAkJY3J0Y19zdGF0ZS0+cGl4ZWxfcmF0 ZSA9CiAJCQlpbGtfcGlwZV9waXhlbF9yYXRlKGNydGNfc3RhdGUpOwpAQCAtODI0NSw5ICs4MjQ3 LDExIEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxf Y3J0YyAqY3J0YywKIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZp ZykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMt PmJhc2UuZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9k ZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlf bW9kZSAqcGlwZV9tb2RlID0gJnBpcGVfY29uZmlnLT5ody5waXBlX21vZGU7CiAJaW50IGNsb2Nr X2xpbWl0ID0gZGV2X3ByaXYtPm1heF9kb3RjbGtfZnJlcTsKIAorCSpwaXBlX21vZGUgPSBwaXBl X2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKKwogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwg NCkgewogCQljbG9ja19saW1pdCA9IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSAqIDkgLyAxMDsK IApAQCAtODI1NiwxNiArODI2MCwxNiBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfY29tcHV0ZV9j b25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCSAqIGlzID4gOTAlIG9mIHRoZSAoZGlz cGxheSkgY29yZSBzcGVlZC4KIAkJICovCiAJCWlmIChpbnRlbF9jcnRjX3N1cHBvcnRzX2RvdWJs ZV93aWRlKGNydGMpICYmCi0JCSAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrID4gY2xvY2tf bGltaXQpIHsKKwkJICAgIHBpcGVfbW9kZS0+Y3J0Y19jbG9jayA+IGNsb2NrX2xpbWl0KSB7CiAJ CQljbG9ja19saW1pdCA9IGRldl9wcml2LT5tYXhfZG90Y2xrX2ZyZXE7CiAJCQlwaXBlX2NvbmZp Zy0+ZG91YmxlX3dpZGUgPSB0cnVlOwogCQl9CiAJfQogCi0JaWYgKGFkanVzdGVkX21vZGUtPmNy dGNfY2xvY2sgPiBjbG9ja19saW1pdCkgeworCWlmIChwaXBlX21vZGUtPmNydGNfY2xvY2sgPiBj bG9ja19saW1pdCkgewogCQlkcm1fZGJnX2ttcygmZGV2X3ByaXYtPmRybSwKIAkJCSAgICAicmVx dWVzdGVkIHBpeGVsIGNsb2NrICglZCBrSHopIHRvbyBoaWdoIChtYXg6ICVkIGtIeiwgZG91Ymxl IHdpZGU6ICVzKVxuIiwKLQkJCSAgICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLCBjbG9ja19s aW1pdCwKKwkJCSAgICBwaXBlX21vZGUtPmNydGNfY2xvY2ssIGNsb2NrX2xpbWl0LAogCQkJICAg IHllc25vKHBpcGVfY29uZmlnLT5kb3VibGVfd2lkZSkpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9 CkBAIC04MzA4LDcgKzgzMTIsNyBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfY29tcHV0ZV9jb25m aWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJICogV2FQcnVuZU1vZGVXaXRoSW5jb3JyZWN0 SHN5bmNPZmZzZXQ6Y3RnLGVsayxpbGssc25iLGl2Yix2bHYsaHN3LgogCSAqLwogCWlmICgoSU5U RUxfR0VOKGRldl9wcml2KSA+IDQgfHwgSVNfRzRYKGRldl9wcml2KSkgJiYKLQkJYWRqdXN0ZWRf bW9kZS0+Y3J0Y19oc3luY19zdGFydCA9PSBhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5KQor CSAgICBwaXBlX21vZGUtPmNydGNfaHN5bmNfc3RhcnQgPT0gcGlwZV9tb2RlLT5jcnRjX2hkaXNw bGF5KQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCWludGVsX2NydGNfY29tcHV0ZV9waXhlbF9yYXRl KHBpcGVfY29uZmlnKTsKQEAgLTExNDgzLDggKzExNDg3LDEyIEBAIHN0YXRpYyBib29sIGludGVs X2NydGNfZ2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLAogCQkJCSAgICAg ICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiB7CiAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjcnRjLT5iYXNlLmRldik7CisJYm9vbCBy ZXQ7CiAKLQlyZXR1cm4gZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X3BpcGVfY29uZmlnKGNydGMsIHBp cGVfY29uZmlnKTsKKwlyZXQgPSBkZXZfcHJpdi0+ZGlzcGxheS5nZXRfcGlwZV9jb25maWcoY3J0 YywgcGlwZV9jb25maWcpOworCXBpcGVfY29uZmlnLT5ody5waXBlX21vZGUgPSBwaXBlX2NvbmZp Zy0+aHcuYWRqdXN0ZWRfbW9kZTsKKworCXJldHVybiByZXQ7CiB9CiAKIHN0YXRpYyB1MzIgaW50 ZWxfY3Vyc29yX2Jhc2UoY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0 ZSkKQEAgLTEyODM1LDE1ICsxMjg0MywxNSBAQCBzdGF0aWMgYm9vbCBjOF9wbGFuZXNfY2hhbmdl ZChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCiAKIHN0YXRp YyB1MTYgaHN3X2xpbmV0aW1lX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQogewotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2Rl ID0KLQkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CisJY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKnBpcGVfbW9kZSA9CisJCSZjcnRjX3N0YXRlLT5ody5waXBlX21vZGU7CiAJ aW50IGxpbmV0aW1lX3dtOwogCiAJaWYgKCFjcnRjX3N0YXRlLT5ody5lbmFibGUpCiAJCXJldHVy biAwOwogCi0JbGluZXRpbWVfd20gPSBESVZfUk9VTkRfQ0xPU0VTVChhZGp1c3RlZF9tb2RlLT5j cnRjX2h0b3RhbCAqIDEwMDAgKiA4LAotCQkJCQlhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrKTsK KwlsaW5ldGltZV93bSA9IERJVl9ST1VORF9DTE9TRVNUKHBpcGVfbW9kZS0+Y3J0Y19odG90YWwg KiAxMDAwICogOCwKKwkJCQkJcGlwZV9tb2RlLT5jcnRjX2Nsb2NrKTsKIAogCXJldHVybiBtaW4o bGluZXRpbWVfd20sIDB4MWZmKTsKIH0KQEAgLTEzMzMwLDcgKzEzMzM4LDEwIEBAIHN0YXRpYyB2 b2lkIGludGVsX2R1bXBfcGlwZV9jb25maWcoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUg KnBpcGVfY29uZmlnLAogCWRybV9tb2RlX2RlYnVnX3ByaW50bW9kZWxpbmUoJnBpcGVfY29uZmln LT5ody5tb2RlKTsKIAlkcm1fZGJnX2ttcygmZGV2X3ByaXYtPmRybSwgImFkanVzdGVkIG1vZGU6 XG4iKTsKIAlkcm1fbW9kZV9kZWJ1Z19wcmludG1vZGVsaW5lKCZwaXBlX2NvbmZpZy0+aHcuYWRq dXN0ZWRfbW9kZSk7CisJZHJtX2RiZ19rbXMoJmRldl9wcml2LT5kcm0sICJwaXBlIG1vZGU6XG4i KTsKKwlkcm1fbW9kZV9kZWJ1Z19wcmludG1vZGVsaW5lKCZwaXBlX2NvbmZpZy0+aHcucGlwZV9t b2RlKTsKIAlpbnRlbF9kdW1wX2NydGNfdGltaW5ncyhkZXZfcHJpdiwgJnBpcGVfY29uZmlnLT5o dy5hZGp1c3RlZF9tb2RlKTsKKwlpbnRlbF9kdW1wX2NydGNfdGltaW5ncyhkZXZfcHJpdiwgJnBp cGVfY29uZmlnLT5ody5waXBlX21vZGUpOwogCWRybV9kYmdfa21zKCZkZXZfcHJpdi0+ZHJtLAog CQkgICAgInBvcnQgY2xvY2s6ICVkLCBwaXBlIHNyYyBzaXplOiAlZHglZCwgcGl4ZWwgcmF0ZSAl ZFxuIiwKIAkJICAgIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLApAQCAtMTM0NzMsOCArMTM0ODQs OSBAQCBpbnRlbF9jcnRjX2NvcHlfdWFwaV90b19od19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZSkKIAljcnRjX3N0YXRlLT5ody5lbmFibGUgPSBjcnRjX3N0YXRlLT51 YXBpLmVuYWJsZTsKIAljcnRjX3N0YXRlLT5ody5hY3RpdmUgPSBjcnRjX3N0YXRlLT51YXBpLmFj dGl2ZTsKIAljcnRjX3N0YXRlLT5ody5tb2RlID0gY3J0Y19zdGF0ZS0+dWFwaS5tb2RlOwotCWNy dGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUgPSBjcnRjX3N0YXRlLT51YXBpLmFkanVzdGVkX21v ZGU7CisJY3J0Y19zdGF0ZS0+aHcucGlwZV9tb2RlID0gY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRf bW9kZSA9IGNydGNfc3RhdGUtPnVhcGkuYWRqdXN0ZWRfbW9kZTsKIAljcnRjX3N0YXRlLT5ody5z Y2FsaW5nX2ZpbHRlciA9IGNydGNfc3RhdGUtPnVhcGkuc2NhbGluZ19maWx0ZXI7CisKIAlpbnRl bF9jcnRjX2NvcHlfdWFwaV90b19od19zdGF0ZV9ub21vZGVzZXQoY3J0Y19zdGF0ZSk7CiB9CiAK QEAgLTEzNjcxLDYgKzEzNjgzLDkgQEAgaW50ZWxfbW9kZXNldF9waXBlX2NvbmZpZyhzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcpCiAJCSAgICAiaHcgbWF4IGJwcDogJWksIHBp cGUgYnBwOiAlaSwgZGl0aGVyaW5nOiAlaVxuIiwKIAkJICAgIGJhc2VfYnBwLCBwaXBlX2NvbmZp Zy0+cGlwZV9icHAsIHBpcGVfY29uZmlnLT5kaXRoZXIpOwogCisJLyogd2l0aG91dCBiaWdqb2lu ZXIsIHBpcGVfbW9kZSA9PSBhZGp1c3RlZF9tb2RlICovCisJcGlwZV9jb25maWctPmh3LnBpcGVf bW9kZSA9IHBpcGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOworCiAJcmV0dXJuIDA7CiB9CiAK QEAgLTE0MDc5LDYgKzE0MDk0LDEwIEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmN1cnJlbnRfY29uZmlnLAogCiAJUElQRV9DT05GX0NI RUNLX1gob3V0cHV0X3R5cGVzKTsKIAorCVBJUEVfQ09ORl9DSEVDS19JKGh3LnBpcGVfbW9kZS5j cnRjX2hkaXNwbGF5KTsKKwlQSVBFX0NPTkZfQ0hFQ0tfSShody5waXBlX21vZGUuY3J0Y19oZGlz cGxheSk7CisJUElQRV9DT05GX0NIRUNLX0koaHcucGlwZV9tb2RlLmNydGNfaGRpc3BsYXkpOwor CVBJUEVfQ09ORl9DSEVDS19JKGh3LnBpcGVfbW9kZS5jcnRjX2hkaXNwbGF5KTsKIAlQSVBFX0NP TkZfQ0hFQ0tfSShody5hZGp1c3RlZF9tb2RlLmNydGNfaGRpc3BsYXkpOwogCVBJUEVfQ09ORl9D SEVDS19JKGh3LmFkanVzdGVkX21vZGUuY3J0Y19odG90YWwpOwogCVBJUEVfQ09ORl9DSEVDS19J KGh3LmFkanVzdGVkX21vZGUuY3J0Y19oYmxhbmtfc3RhcnQpOwpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaAppbmRleCBmNmYwNjI2NjQ5 ZTAuLmI1MjZhZmVlNTk1YyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKQEAgLTgxNywxNSArODE3LDIyIEBAIHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlIHsKIAkgKiBUaGUgZm9sbG93aW5nIG1lbWJlcnMgYXJlIHVzZWQgdG8gdmVy aWZ5IHRoZSBoYXJkd2FyZSBzdGF0ZToKIAkgKiAtIGVuYWJsZQogCSAqIC0gYWN0aXZlCi0JICog LSBtb2RlIC8gYWRqdXN0ZWRfbW9kZQorCSAqIC0gbW9kZS9hZGp1c3RlZF9tb2RlCiAJICogLSBj b2xvciBwcm9wZXJ0eSBibG9icy4KIAkgKgogCSAqIER1cmluZyBpbml0aWFsIGh3IHJlYWRvdXQs IHRoZXkgbmVlZCB0byBiZSBjb3BpZWQgdG8gdWFwaS4KKwkgKgorCSAqIEJpZ2pvaW5lciB3aWxs IGFsbG93IGEgdHJhbnNjb2RlciBtb2RlIHRoYXQgc3BhbnMgMiBwaXBlczsKKwkgKiBVc2UgdGhl IHBpcGVfbW9kZSBmb3IgY2FsY3VsYXRpb25zIGxpa2Ugd2F0ZXJtYXJrcywgcGlwZQorCSAqIHNj YWxlciwgYW5kIGJhbmR3aWR0aC4KKwkgKgorCSAqIFVzZSBhZGp1c3RlZF9tb2RlIGZvciB0aGlu Z3MgdGhhdCBuZWVkIHRvIGtub3cgdGhlIGZ1bGwKKwkgKiBtb2RlIG9uIHRoZSB0cmFuc2NvZGVy LCB3aGljaCBzcGFucyBhbGwgcGlwZXMuCiAJICovCiAJc3RydWN0IHsKIAkJYm9vbCBhY3RpdmUs IGVuYWJsZTsKIAkJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpkZWdhbW1hX2x1dCwgKmdhbW1h X2x1dCwgKmN0bTsKLQkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgbW9kZSwgYWRqdXN0ZWRfbW9k ZTsKKwkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgbW9kZSwgcGlwZV9tb2RlLCBhZGp1c3RlZF9t b2RlOwogCQllbnVtIGRybV9zY2FsaW5nX2ZpbHRlciBzY2FsaW5nX2ZpbHRlcjsKIAl9IGh3Owog CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCBmNTQzNzViMTE5NjQuLjk4OThjMjU3ZDNlMCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC04OTksMTIgKzg5OSwxMiBAQCBzdGF0aWMgdm9p ZCBwbnZfdXBkYXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjICp1bnVzZWRfY3J0YykKIAogCWNydGMg PSBzaW5nbGVfZW5hYmxlZF9jcnRjKGRldl9wcml2KTsKIAlpZiAoY3J0YykgewotCQljb25zdCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCQkmY3J0Yy0+Y29uZmln LT5ody5hZGp1c3RlZF9tb2RlOworCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqcGlw ZV9tb2RlID0KKwkJCSZjcnRjLT5jb25maWctPmh3LnBpcGVfbW9kZTsKIAkJY29uc3Qgc3RydWN0 IGRybV9mcmFtZWJ1ZmZlciAqZmIgPQogCQkJY3J0Yy0+YmFzZS5wcmltYXJ5LT5zdGF0ZS0+ZmI7 CiAJCWludCBjcHAgPSBmYi0+Zm9ybWF0LT5jcHBbMF07Ci0JCWludCBjbG9jayA9IGFkanVzdGVk X21vZGUtPmNydGNfY2xvY2s7CisJCWludCBjbG9jayA9IHBpcGVfbW9kZS0+Y3J0Y19jbG9jazsK IAogCQkvKiBEaXNwbGF5IFNSICovCiAJCXdtID0gaW50ZWxfY2FsY3VsYXRlX3dtKGNsb2NrLCAm cG52X2Rpc3BsYXlfd20sCkBAIC0xMTM1LDggKzExMzUsOCBAQCBzdGF0aWMgdTE2IGc0eF9jb21w dXRlX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogewogCXN0 cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+dWFw aS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShw bGFuZS0+YmFzZS5kZXYpOwotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3Rl ZF9tb2RlID0KLQkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CisJY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKnBpcGVfbW9kZSA9CisJCSZjcnRjX3N0YXRlLT5ody5waXBlX21v ZGU7CiAJdW5zaWduZWQgaW50IGxhdGVuY3kgPSBkZXZfcHJpdi0+d20ucHJpX2xhdGVuY3lbbGV2 ZWxdICogMTA7CiAJdW5zaWduZWQgaW50IGNsb2NrLCBodG90YWwsIGNwcCwgd2lkdGgsIHdtOwog CkBAIC0xMTYzLDggKzExNjMsOCBAQCBzdGF0aWMgdTE2IGc0eF9jb21wdXRlX3dtKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCSAgICBsZXZlbCAhPSBHNFhfV01f TEVWRUxfTk9STUFMKQogCQljcHAgPSBtYXgoY3BwLCA0dSk7CiAKLQljbG9jayA9IGFkanVzdGVk X21vZGUtPmNydGNfY2xvY2s7Ci0JaHRvdGFsID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19odG90YWw7 CisJY2xvY2sgPSBwaXBlX21vZGUtPmNydGNfY2xvY2s7CisJaHRvdGFsID0gcGlwZV9tb2RlLT5j cnRjX2h0b3RhbDsKIAogCXdpZHRoID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT51YXBp LmRzdCk7CiAKQEAgLTE2NjAsOCArMTY2MCw4IEBAIHN0YXRpYyB1MTYgdmx2X2NvbXB1dGVfd21f bGV2ZWwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiB7CiAJc3Ry dWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT51YXBp LnBsYW5lKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBs YW5lLT5iYXNlLmRldik7Ci0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVk X21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKKwljb25zdCBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqcGlwZV9tb2RlID0KKwkJJmNydGNfc3RhdGUtPmh3LnBpcGVfbW9k ZTsKIAl1bnNpZ25lZCBpbnQgY2xvY2ssIGh0b3RhbCwgY3BwLCB3aWR0aCwgd207CiAKIAlpZiAo ZGV2X3ByaXYtPndtLnByaV9sYXRlbmN5W2xldmVsXSA9PSAwKQpAQCAtMTY3MSw4ICsxNjcxLDgg QEAgc3RhdGljIHUxNiB2bHZfY29tcHV0ZV93bV9sZXZlbChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJcmV0dXJuIDA7CiAKIAljcHAgPSBwbGFuZV9zdGF0ZS0+ aHcuZmItPmZvcm1hdC0+Y3BwWzBdOwotCWNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9j azsKLQlodG90YWwgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2h0b3RhbDsKKwljbG9jayA9IHBpcGVf bW9kZS0+Y3J0Y19jbG9jazsKKwlodG90YWwgPSBwaXBlX21vZGUtPmNydGNfaHRvdGFsOwogCXdp ZHRoID0gY3J0Y19zdGF0ZS0+cGlwZV9zcmNfdzsKIAogCWlmIChwbGFuZS0+aWQgPT0gUExBTkVf Q1VSU09SKSB7CkBAIC0yMjYxLDEyICsyMjYxLDEyIEBAIHN0YXRpYyB2b2lkIGk5NjVfdXBkYXRl X3dtKHN0cnVjdCBpbnRlbF9jcnRjICp1bnVzZWRfY3J0YykKIAlpZiAoY3J0YykgewogCQkvKiBz ZWxmLXJlZnJlc2ggaGFzIG11Y2ggaGlnaGVyIGxhdGVuY3kgKi8KIAkJc3RhdGljIGNvbnN0IGlu dCBzcl9sYXRlbmN5X25zID0gMTIwMDA7Ci0JCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICphZGp1c3RlZF9tb2RlID0KLQkJCSZjcnRjLT5jb25maWctPmh3LmFkanVzdGVkX21vZGU7CisJ CWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpwaXBlX21vZGUgPQorCQkJJmNydGMtPmNv bmZpZy0+aHcucGlwZV9tb2RlOwogCQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9 CiAJCQljcnRjLT5iYXNlLnByaW1hcnktPnN0YXRlLT5mYjsKLQkJaW50IGNsb2NrID0gYWRqdXN0 ZWRfbW9kZS0+Y3J0Y19jbG9jazsKLQkJaW50IGh0b3RhbCA9IGFkanVzdGVkX21vZGUtPmNydGNf aHRvdGFsOworCQlpbnQgY2xvY2sgPSBwaXBlX21vZGUtPmNydGNfY2xvY2s7CisJCWludCBodG90 YWwgPSBwaXBlX21vZGUtPmNydGNfaHRvdGFsOwogCQlpbnQgaGRpc3BsYXkgPSBjcnRjLT5jb25m aWctPnBpcGVfc3JjX3c7CiAJCWludCBjcHAgPSBmYi0+Zm9ybWF0LT5jcHBbMF07CiAJCWludCBl bnRyaWVzOwpAQCAtMjM0NSw4ICsyMzQ1LDggQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfd20o c3RydWN0IGludGVsX2NydGMgKnVudXNlZF9jcnRjKQogCWZpZm9fc2l6ZSA9IGRldl9wcml2LT5k aXNwbGF5LmdldF9maWZvX3NpemUoZGV2X3ByaXYsIFBMQU5FX0EpOwogCWNydGMgPSBpbnRlbF9n ZXRfY3J0Y19mb3JfcGxhbmUoZGV2X3ByaXYsIFBMQU5FX0EpOwogCWlmIChpbnRlbF9jcnRjX2Fj dGl2ZShjcnRjKSkgewotCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZSA9Ci0JCQkmY3J0Yy0+Y29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOworCQljb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqcGlwZV9tb2RlID0KKwkJCSZjcnRjLT5jb25maWctPmh3LnBp cGVfbW9kZTsKIAkJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPQogCQkJY3J0Yy0+ YmFzZS5wcmltYXJ5LT5zdGF0ZS0+ZmI7CiAJCWludCBjcHA7CkBAIC0yMzU2LDcgKzIzNTYsNyBA QCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqdW51c2VkX2Ny dGMpCiAJCWVsc2UKIAkJCWNwcCA9IGZiLT5mb3JtYXQtPmNwcFswXTsKIAotCQlwbGFuZWFfd20g PSBpbnRlbF9jYWxjdWxhdGVfd20oYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKKwkJcGxhbmVh X3dtID0gaW50ZWxfY2FsY3VsYXRlX3dtKHBpcGVfbW9kZS0+Y3J0Y19jbG9jaywKIAkJCQkJICAg ICAgIHdtX2luZm8sIGZpZm9fc2l6ZSwgY3BwLAogCQkJCQkgICAgICAgcGVzc2ltYWxfbGF0ZW5j eV9ucyk7CiAJCWVuYWJsZWQgPSBjcnRjOwpAQCAtMjM3Miw4ICsyMzcyLDggQEAgc3RhdGljIHZv aWQgaTl4eF91cGRhdGVfd20oc3RydWN0IGludGVsX2NydGMgKnVudXNlZF9jcnRjKQogCWZpZm9f c2l6ZSA9IGRldl9wcml2LT5kaXNwbGF5LmdldF9maWZvX3NpemUoZGV2X3ByaXYsIFBMQU5FX0Ip OwogCWNydGMgPSBpbnRlbF9nZXRfY3J0Y19mb3JfcGxhbmUoZGV2X3ByaXYsIFBMQU5FX0IpOwog CWlmIChpbnRlbF9jcnRjX2FjdGl2ZShjcnRjKSkgewotCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCQkmY3J0Yy0+Y29uZmlnLT5ody5hZGp1c3RlZF9t b2RlOworCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqcGlwZV9tb2RlID0KKwkJCSZj cnRjLT5jb25maWctPmh3LnBpcGVfbW9kZTsKIAkJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciAqZmIgPQogCQkJY3J0Yy0+YmFzZS5wcmltYXJ5LT5zdGF0ZS0+ZmI7CiAJCWludCBjcHA7CkBA IC0yMzgzLDcgKzIzODMsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV93bShzdHJ1Y3QgaW50 ZWxfY3J0YyAqdW51c2VkX2NydGMpCiAJCWVsc2UKIAkJCWNwcCA9IGZiLT5mb3JtYXQtPmNwcFsw XTsKIAotCQlwbGFuZWJfd20gPSBpbnRlbF9jYWxjdWxhdGVfd20oYWRqdXN0ZWRfbW9kZS0+Y3J0 Y19jbG9jaywKKwkJcGxhbmViX3dtID0gaW50ZWxfY2FsY3VsYXRlX3dtKHBpcGVfbW9kZS0+Y3J0 Y19jbG9jaywKIAkJCQkJICAgICAgIHdtX2luZm8sIGZpZm9fc2l6ZSwgY3BwLAogCQkJCQkgICAg ICAgcGVzc2ltYWxfbGF0ZW5jeV9ucyk7CiAJCWlmIChlbmFibGVkID09IE5VTEwpCkBAIC0yNDIx LDEyICsyNDIxLDEyIEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3dtKHN0cnVjdCBpbnRlbF9j cnRjICp1bnVzZWRfY3J0YykKIAlpZiAoSEFTX0ZXX0JMQyhkZXZfcHJpdikgJiYgZW5hYmxlZCkg ewogCQkvKiBzZWxmLXJlZnJlc2ggaGFzIG11Y2ggaGlnaGVyIGxhdGVuY3kgKi8KIAkJc3RhdGlj IGNvbnN0IGludCBzcl9sYXRlbmN5X25zID0gNjAwMDsKLQkJY29uc3Qgc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkJJmVuYWJsZWQtPmNvbmZpZy0+aHcuYWRqdXN0 ZWRfbW9kZTsKKwkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKnBpcGVfbW9kZSA9CisJ CQkmZW5hYmxlZC0+Y29uZmlnLT5ody5waXBlX21vZGU7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiID0KIAkJCWVuYWJsZWQtPmJhc2UucHJpbWFyeS0+c3RhdGUtPmZiOwotCQlp bnQgY2xvY2sgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrOwotCQlpbnQgaHRvdGFsID0gYWRq dXN0ZWRfbW9kZS0+Y3J0Y19odG90YWw7CisJCWludCBjbG9jayA9IHBpcGVfbW9kZS0+Y3J0Y19j bG9jazsKKwkJaW50IGh0b3RhbCA9IHBpcGVfbW9kZS0+Y3J0Y19odG90YWw7CiAJCWludCBoZGlz cGxheSA9IGVuYWJsZWQtPmNvbmZpZy0+cGlwZV9zcmNfdzsKIAkJaW50IGNwcDsKIAkJaW50IGVu dHJpZXM7CkBAIC0yNDc0LDcgKzI0NzQsNyBAQCBzdGF0aWMgdm9pZCBpODQ1X3VwZGF0ZV93bShz dHJ1Y3QgaW50ZWxfY3J0YyAqdW51c2VkX2NydGMpCiB7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNSh1bnVzZWRfY3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVjdCBp bnRlbF9jcnRjICpjcnRjOwotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3Rl ZF9tb2RlOworCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpwaXBlX21vZGU7CiAJdTMy IGZ3YXRlcl9sbzsKIAlpbnQgcGxhbmVhX3dtOwogCkBAIC0yNDgyLDggKzI0ODIsOCBAQCBzdGF0 aWMgdm9pZCBpODQ1X3VwZGF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqdW51c2VkX2NydGMpCiAJ aWYgKGNydGMgPT0gTlVMTCkKIAkJcmV0dXJuOwogCi0JYWRqdXN0ZWRfbW9kZSA9ICZjcnRjLT5j b25maWctPmh3LmFkanVzdGVkX21vZGU7Ci0JcGxhbmVhX3dtID0gaW50ZWxfY2FsY3VsYXRlX3dt KGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCisJcGlwZV9tb2RlID0gJmNydGMtPmNvbmZpZy0+ aHcucGlwZV9tb2RlOworCXBsYW5lYV93bSA9IGludGVsX2NhbGN1bGF0ZV93bShwaXBlX21vZGUt PmNydGNfY2xvY2ssCiAJCQkJICAgICAgICZpODQ1X3dtX2luZm8sCiAJCQkJICAgICAgIGRldl9w cml2LT5kaXNwbGF5LmdldF9maWZvX3NpemUoZGV2X3ByaXYsIFBMQU5FX0EpLAogCQkJCSAgICAg ICA0LCBwZXNzaW1hbF9sYXRlbmN5X25zKTsKQEAgLTI1NzMsNyArMjU3Myw3IEBAIHN0YXRpYyB1 MzIgaWxrX2NvbXB1dGVfcHJpX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlLAogCQlyZXR1cm4gbWV0aG9kMTsKIAogCW1ldGhvZDIgPSBpbGtfd21fbWV0aG9kMihj cnRjX3N0YXRlLT5waXhlbF9yYXRlLAotCQkJCSBjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2Rl LmNydGNfaHRvdGFsLAorCQkJCSBjcnRjX3N0YXRlLT5ody5waXBlX21vZGUuY3J0Y19odG90YWws CiAJCQkJIGRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+dWFwaS5kc3QpLAogCQkJCSBjcHAs IG1lbV92YWx1ZSk7CiAKQEAgLTI2MDEsNyArMjYwMSw3IEBAIHN0YXRpYyB1MzIgaWxrX2NvbXB1 dGVfc3ByX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCiAJ bWV0aG9kMSA9IGlsa193bV9tZXRob2QxKGNydGNfc3RhdGUtPnBpeGVsX3JhdGUsIGNwcCwgbWVt X3ZhbHVlKTsKIAltZXRob2QyID0gaWxrX3dtX21ldGhvZDIoY3J0Y19zdGF0ZS0+cGl4ZWxfcmF0 ZSwKLQkJCQkgY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwKKwkJCQkg Y3J0Y19zdGF0ZS0+aHcucGlwZV9tb2RlLmNydGNfaHRvdGFsLAogCQkJCSBkcm1fcmVjdF93aWR0 aCgmcGxhbmVfc3RhdGUtPnVhcGkuZHN0KSwKIAkJCQkgY3BwLCBtZW1fdmFsdWUpOwogCXJldHVy biBtaW4obWV0aG9kMSwgbWV0aG9kMik7CkBAIC0yNjI2LDcgKzI2MjYsNyBAQCBzdGF0aWMgdTMy IGlsa19jb21wdXRlX2N1cl93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSwKIAljcHAgPSBwbGFuZV9zdGF0ZS0+aHcuZmItPmZvcm1hdC0+Y3BwWzBdOwogCiAJcmV0 dXJuIGlsa193bV9tZXRob2QyKGNydGNfc3RhdGUtPnBpeGVsX3JhdGUsCi0JCQkgICAgICBjcnRj X3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsLAorCQkJICAgICAgY3J0Y19zdGF0 ZS0+aHcucGlwZV9tb2RlLmNydGNfaHRvdGFsLAogCQkJICAgICAgZHJtX3JlY3Rfd2lkdGgoJnBs YW5lX3N0YXRlLT51YXBpLmRzdCksCiAJCQkgICAgICBjcHAsIG1lbV92YWx1ZSk7CiB9CkBAIC0z ODgzLDcgKzM4ODMsNyBAQCBzdGF0aWMgYm9vbCBza2xfY3J0Y19jYW5fZW5hYmxlX3NhZ3YoY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJaWYgKCFjcnRjX3N0YXRl LT5ody5hY3RpdmUpCiAJCXJldHVybiB0cnVlOwogCi0JaWYgKGNydGNfc3RhdGUtPmh3LmFkanVz dGVkX21vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkKKwlpZiAoY3J0Y19zdGF0 ZS0+aHcucGlwZV9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0UpCiAJCXJldHVy biBmYWxzZTsKIAogCWludGVsX2F0b21pY19jcnRjX3N0YXRlX2Zvcl9lYWNoX3BsYW5lX3N0YXRl KHBsYW5lLCBwbGFuZV9zdGF0ZSwgY3J0Y19zdGF0ZSkgewpAQCAtNDE3NCw4ICs0MTc0LDggQEAg c2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYsCiAJICovCiAJdG90YWxfc2xpY2VfbWFzayA9IGRidWZfc2xpY2VfbWFzazsK IAlmb3JfZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShpbnRlbF9zdGF0ZSwgY3J0YywgY3J0 Y19zdGF0ZSwgaSkgewotCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZSA9Ci0JCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKKwkJY29uc3Qgc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKnBpcGVfbW9kZSA9CisJCQkmY3J0Y19zdGF0ZS0+aHcucGlwZV9t b2RlOwogCQllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJCWludCBoZGlzcGxheSwgdmRp c3BsYXk7CiAJCXUzMiBwaXBlX2RidWZfc2xpY2VfbWFzazsKQEAgLTQyMDUsNyArNDIwNSw3IEBA IHNrbF9kZGJfZ2V0X3BpcGVfYWxsb2NhdGlvbl9saW1pdHMoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAogCQlpZiAoZGJ1Zl9zbGljZV9tYXNrICE9IHBpcGVfZGJ1Zl9zbGljZV9t YXNrKQogCQkJY29udGludWU7CiAKLQkJZHJtX21vZGVfZ2V0X2h2X3RpbWluZyhhZGp1c3RlZF9t b2RlLCAmaGRpc3BsYXksICZ2ZGlzcGxheSk7CisJCWRybV9tb2RlX2dldF9odl90aW1pbmcocGlw ZV9tb2RlLCAmaGRpc3BsYXksICZ2ZGlzcGxheSk7CiAKIAkJdG90YWxfd2lkdGhfaW5fcmFuZ2Ug Kz0gaGRpc3BsYXk7CiAKQEAgLTUwOTMsNyArNTA5Myw3IEBAIGludGVsX2dldF9saW5ldGltZV91 cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlpZiAoZHJtX1dB Uk5fT04oJmRldl9wcml2LT5kcm0sIHBpeGVsX3JhdGUgPT0gMCkpCiAJCXJldHVybiB1MzJfdG9f Zml4ZWQxNigwKTsKIAotCWNydGNfaHRvdGFsID0gY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9k ZS5jcnRjX2h0b3RhbDsKKwljcnRjX2h0b3RhbCA9IGNydGNfc3RhdGUtPmh3LnBpcGVfbW9kZS5j cnRjX2h0b3RhbDsKIAlsaW5ldGltZV91cyA9IGRpdl9maXhlZDE2KGNydGNfaHRvdGFsICogMTAw MCwgcGl4ZWxfcmF0ZSk7CiAKIAlyZXR1cm4gbGluZXRpbWVfdXM7CkBAIC01MjgyLDE0ICs1Mjgy LDE0IEBAIHN0YXRpYyB2b2lkIHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCW1ldGhvZDEgPSBza2xfd21fbWV0aG9kMShkZXZf cHJpdiwgd3AtPnBsYW5lX3BpeGVsX3JhdGUsCiAJCQkJIHdwLT5jcHAsIGxhdGVuY3ksIHdwLT5k YnVmX2Jsb2NrX3NpemUpOwogCW1ldGhvZDIgPSBza2xfd21fbWV0aG9kMih3cC0+cGxhbmVfcGl4 ZWxfcmF0ZSwKLQkJCQkgY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwK KwkJCQkgY3J0Y19zdGF0ZS0+aHcucGlwZV9tb2RlLmNydGNfaHRvdGFsLAogCQkJCSBsYXRlbmN5 LAogCQkJCSB3cC0+cGxhbmVfYmxvY2tzX3Blcl9saW5lKTsKIAogCWlmICh3cC0+eV90aWxlZCkg ewogCQlzZWxlY3RlZF9yZXN1bHQgPSBtYXhfZml4ZWQxNihtZXRob2QyLCB3cC0+eV90aWxlX21p bmltdW0pOwogCX0gZWxzZSB7Ci0JCWlmICgod3AtPmNwcCAqIGNydGNfc3RhdGUtPmh3LmFkanVz dGVkX21vZGUuY3J0Y19odG90YWwgLworCQlpZiAoKHdwLT5jcHAgKiBjcnRjX3N0YXRlLT5ody5w aXBlX21vZGUuY3J0Y19odG90YWwgLwogCQkgICAgIHdwLT5kYnVmX2Jsb2NrX3NpemUgPCAxKSAm JgogCQkgICAgICh3cC0+cGxhbmVfYnl0ZXNfcGVyX2xpbmUgLyB3cC0+ZGJ1Zl9ibG9ja19zaXpl IDwgMSkpIHsKIAkJCXNlbGVjdGVkX3Jlc3VsdCA9IG1ldGhvZDI7Ci0tIAoyLjE5LjEKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWls aW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=