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 2061DC4742C for ; Thu, 12 Nov 2020 02:37:50 +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 AC92E207BB for ; Thu, 12 Nov 2020 02:37:49 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org AC92E207BB 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 B73AF6E0EB; Thu, 12 Nov 2020 02:37:43 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4A9276E046 for ; Thu, 12 Nov 2020 02:37:42 +0000 (UTC) IronPort-SDR: aDMOAKL0WdWCHOtl4nkJbfFY4cgoYuDLDFE4rPMLfU65nkMkof/+rJOVab8ra12bPCtjAGTjgg /bY8MNlPUX7w== X-IronPort-AV: E=McAfee;i="6000,8403,9802"; a="188239729" X-IronPort-AV: E=Sophos;i="5.77,471,1596524400"; d="scan'208";a="188239729" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Nov 2020 18:37:40 -0800 IronPort-SDR: H6VglwLgBMERnDCv2Pxp822KS3MUhlOoK/25zrNI4FDwqb2Bz3GLwCFapbAnKNEwXRudm71LHA heCk+WeXg/0w== X-IronPort-AV: E=Sophos;i="5.77,471,1596524400"; d="scan'208";a="323474510" Received: from labuser-z97x-ud5h.jf.intel.com ([10.165.21.211]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-SHA; 11 Nov 2020 18:37:40 -0800 From: Manasi Navare To: intel-gfx@lists.freedesktop.org Date: Wed, 11 Nov 2020 18:39:51 -0800 Message-Id: <20201112023954.12301-3-manasi.d.navare@intel.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20201112023954.12301-1-manasi.d.navare@intel.com> References: <20201112023954.12301-1-manasi.d.navare@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [CI v10 3/6] 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 LCBwbGFuZSBjbGlwcGluZywgZXRjLgoKdjEyOgoqIFJlbW92ZSB0aGUgd3JhcHBlciBmb3Igbm93 IHRvIGdldCBnb29kIENJCnYxMToKKiBzZXQgcGlwZSBtb2RlIG9ubHkgaWYgYWN0aXZlIChNYW5h c2kpCnYxMDoKKiByZW1vdmUgcmVkdW5kYW50IHBpcGVfbW9kZSBhc3NpZ25tZW50IChWaWxsZSkK djk6CiogcGlwZV9tb2RlIGluIHN0YXRlIGR1bXAgbmQgc3RhdGUgY2hlY2sgKFZpbGxlKQp2ODoK KiBBZGQgcGlwZV9tb2RlIGluIHJlYWRvdXQgaW4gdmVyaWZ5X2NydGNfc3RhdGUgKFZpbGxlKQp2 NzoKKiBSZW1vdmUgcmVkdW5kYW50IGNvbW1lbnQgKFZpbGxlKQoqIEp1c3Qga2VlcCBtb2RlIGlu c3RlYWQgb2YgcGlwZV9tb2RlIChWaWxsZSkKdjY6CiogcmVuYW1pbmcgaW4gc2VwYXJhdGUgZnVu Y3Rpb24sIG9ubHkgcGlwZV9tb2RlIGhlcmUgKFZpbGxlKQoqIEFkZCBkZXNjcmlwdGlvbiAoTWFh cnRlbikKdjU6CiogUmViYXNlIChNYW5hc2kpCnY0OgoqIE1hbnVhbCByZWJhc2UgKE1hbmFzaSkK djM6CiogQ2hhbmdlIHN0YXRlIHRvIGNydGNfc3RhdGUsIGZpeCByZWJhc2UgZXJyICAoTWFuYXNp KQp2MjoKKiBNYW51YWwgUmViYXNlIChNYW5hc2kpCgpTaWduZWQtb2ZmLWJ5OiBNYWFydGVuIExh bmtob3JzdCA8bWFhcnRlbi5sYW5raG9yc3RAbGludXguaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5 OiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgpSZXZpZXdlZC1ieTog QW5pbWVzaCBNYW5uYSA8YW5pbWVzaC5tYW5uYUBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBWaWxs ZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgotLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jICB8IDUxICsrKysrKysrLS0tLS0K IC4uLi9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaCAgICB8IDExICsrLQog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgICAgICAgICAgIHwgNzYgKysrKysr KysrLS0tLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCA4MSBpbnNlcnRpb25zKCspLCA1NyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5j CmluZGV4IGFkNTgzYTQ5MGIyNS4uZDA0MjQ5ZTE1MmIwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwpAQCAtNjA2NywxOCArNjA2NywxNiBAQCBza2xf dXBkYXRlX3NjYWxlcihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwgYm9vbCBm b3JjZV9kZXRhY2gsCiAKIHN0YXRpYyBpbnQgc2tsX3VwZGF0ZV9zY2FsZXJfY3J0YyhzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2Rl OworCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpwaXBlX21vZGUgPSAmY3J0Y19zdGF0 ZS0+aHcucGlwZV9tb2RlOwogCWludCB3aWR0aCwgaGVpZ2h0OwogCiAJaWYgKGNydGNfc3RhdGUt PnBjaF9wZml0LmVuYWJsZWQpIHsKIAkJd2lkdGggPSBkcm1fcmVjdF93aWR0aCgmY3J0Y19zdGF0 ZS0+cGNoX3BmaXQuZHN0KTsKIAkJaGVpZ2h0ID0gZHJtX3JlY3RfaGVpZ2h0KCZjcnRjX3N0YXRl LT5wY2hfcGZpdC5kc3QpOwogCX0gZWxzZSB7Ci0JCXdpZHRoID0gYWRqdXN0ZWRfbW9kZS0+Y3J0 Y19oZGlzcGxheTsKLQkJaGVpZ2h0ID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y192ZGlzcGxheTsKKwkJ d2lkdGggPSBwaXBlX21vZGUtPmNydGNfaGRpc3BsYXk7CisJCWhlaWdodCA9IHBpcGVfbW9kZS0+ Y3J0Y192ZGlzcGxheTsKIAl9Ci0KIAlyZXR1cm4gc2tsX3VwZGF0ZV9zY2FsZXIoY3J0Y19zdGF0 ZSwgIWNydGNfc3RhdGUtPmh3LmFjdGl2ZSwKIAkJCQkgU0tMX0NSVENfSU5ERVgsCiAJCQkJICZj cnRjX3N0YXRlLT5zY2FsZXJfc3RhdGUuc2NhbGVyX2lkLApAQCAtODA5Miw3ICs4MDkwLDcgQEAg c3RhdGljIGJvb2wgaW50ZWxfY3J0Y19zdXBwb3J0c19kb3VibGVfd2lkZShjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0YyAqY3J0YykKIAogc3RhdGljIHUzMiBpbGtfcGlwZV9waXhlbF9yYXRlKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCXUzMiBwaXhlbF9yYXRl ID0gY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrOworCXUzMiBwaXhlbF9y YXRlID0gY3J0Y19zdGF0ZS0+aHcucGlwZV9tb2RlLmNydGNfY2xvY2s7CiAJdW5zaWduZWQgaW50 IHBpcGVfdywgcGlwZV9oLCBwZml0X3csIHBmaXRfaDsKIAogCS8qCkBAIC04MTI1LDcgKzgxMjMs MTEgQEAgc3RhdGljIHUzMiBpbGtfcGlwZV9waXhlbF9yYXRlKGNvbnN0IHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQogc3RhdGljIHZvaWQgaW50ZWxfZW5jb2Rlcl9nZXRfY29u ZmlnKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyLAogCQkJCSAgICAgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CisJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKnBp cGVfbW9kZSA9ICZjcnRjX3N0YXRlLT5ody5waXBlX21vZGU7CisKIAllbmNvZGVyLT5nZXRfY29u ZmlnKGVuY29kZXIsIGNydGNfc3RhdGUpOworCisJKnBpcGVfbW9kZSA9IGNydGNfc3RhdGUtPmh3 LmFkanVzdGVkX21vZGU7CiB9CiAKIHN0YXRpYyB2b2lkIGludGVsX2NydGNfY29tcHV0ZV9waXhl bF9yYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQpAQCAtODEzNSw3ICs4 MTM3LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0Y19jb21wdXRlX3BpeGVsX3JhdGUoc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJaWYgKEhBU19HTUNIKGRldl9wcml2KSkK IAkJLyogRklYTUUgY2FsY3VsYXRlIHByb3BlciBwaXBlIHBpeGVsIHJhdGUgZm9yIEdNQ0ggcGZp dCAqLwogCQljcnRjX3N0YXRlLT5waXhlbF9yYXRlID0KLQkJCWNydGNfc3RhdGUtPmh3LmFkanVz dGVkX21vZGUuY3J0Y19jbG9jazsKKwkJCWNydGNfc3RhdGUtPmh3LnBpcGVfbW9kZS5jcnRjX2Ns b2NrOwogCWVsc2UKIAkJY3J0Y19zdGF0ZS0+cGl4ZWxfcmF0ZSA9CiAJCQlpbGtfcGlwZV9waXhl bF9yYXRlKGNydGNfc3RhdGUpOwpAQCAtODE0NSw5ICs4MTQ3LDExIEBAIHN0YXRpYyBpbnQgaW50 ZWxfY3J0Y19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAkJCQkgICAg IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZykKIHsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNydGMtPmJhc2UuZGV2KTsKLQljb25zdCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcu YWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqcGlwZV9tb2RlID0gJnBp cGVfY29uZmlnLT5ody5waXBlX21vZGU7CiAJaW50IGNsb2NrX2xpbWl0ID0gZGV2X3ByaXYtPm1h eF9kb3RjbGtfZnJlcTsKIAorCSpwaXBlX21vZGUgPSBwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRf bW9kZTsKKwogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgNCkgewogCQljbG9ja19saW1pdCA9 IGRldl9wcml2LT5tYXhfY2RjbGtfZnJlcSAqIDkgLyAxMDsKIApAQCAtODE1NiwxNiArODE2MCwx NiBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2Ny dGMgKmNydGMsCiAJCSAqIGlzID4gOTAlIG9mIHRoZSAoZGlzcGxheSkgY29yZSBzcGVlZC4KIAkJ ICovCiAJCWlmIChpbnRlbF9jcnRjX3N1cHBvcnRzX2RvdWJsZV93aWRlKGNydGMpICYmCi0JCSAg ICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrID4gY2xvY2tfbGltaXQpIHsKKwkJICAgIHBpcGVf bW9kZS0+Y3J0Y19jbG9jayA+IGNsb2NrX2xpbWl0KSB7CiAJCQljbG9ja19saW1pdCA9IGRldl9w cml2LT5tYXhfZG90Y2xrX2ZyZXE7CiAJCQlwaXBlX2NvbmZpZy0+ZG91YmxlX3dpZGUgPSB0cnVl OwogCQl9CiAJfQogCi0JaWYgKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2sgPiBjbG9ja19saW1p dCkgeworCWlmIChwaXBlX21vZGUtPmNydGNfY2xvY2sgPiBjbG9ja19saW1pdCkgewogCQlkcm1f ZGJnX2ttcygmZGV2X3ByaXYtPmRybSwKIAkJCSAgICAicmVxdWVzdGVkIHBpeGVsIGNsb2NrICgl ZCBrSHopIHRvbyBoaWdoIChtYXg6ICVkIGtIeiwgZG91YmxlIHdpZGU6ICVzKVxuIiwKLQkJCSAg ICBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLCBjbG9ja19saW1pdCwKKwkJCSAgICBwaXBlX21v ZGUtPmNydGNfY2xvY2ssIGNsb2NrX2xpbWl0LAogCQkJICAgIHllc25vKHBpcGVfY29uZmlnLT5k b3VibGVfd2lkZSkpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC04MjA4LDcgKzgyMTIsNyBA QCBzdGF0aWMgaW50IGludGVsX2NydGNfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMg KmNydGMsCiAJICogV2FQcnVuZU1vZGVXaXRoSW5jb3JyZWN0SHN5bmNPZmZzZXQ6Y3RnLGVsayxp bGssc25iLGl2Yix2bHYsaHN3LgogCSAqLwogCWlmICgoSU5URUxfR0VOKGRldl9wcml2KSA+IDQg fHwgSVNfRzRYKGRldl9wcml2KSkgJiYKLQkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oc3luY19zdGFy dCA9PSBhZGp1c3RlZF9tb2RlLT5jcnRjX2hkaXNwbGF5KQorCSAgICBwaXBlX21vZGUtPmNydGNf aHN5bmNfc3RhcnQgPT0gcGlwZV9tb2RlLT5jcnRjX2hkaXNwbGF5KQogCQlyZXR1cm4gLUVJTlZB TDsKIAogCWludGVsX2NydGNfY29tcHV0ZV9waXhlbF9yYXRlKHBpcGVfY29uZmlnKTsKQEAgLTEy NzQ5LDE1ICsxMjc1MywxNSBAQCBzdGF0aWMgYm9vbCBjOF9wbGFuZXNfY2hhbmdlZChjb25zdCBz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqbmV3X2NydGNfc3RhdGUpCiAKIHN0YXRpYyB1MTYgaHN3 X2xpbmV0aW1lX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog ewotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJmNy dGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21v ZGUgKnBpcGVfbW9kZSA9CisJCSZjcnRjX3N0YXRlLT5ody5waXBlX21vZGU7CiAJaW50IGxpbmV0 aW1lX3dtOwogCiAJaWYgKCFjcnRjX3N0YXRlLT5ody5lbmFibGUpCiAJCXJldHVybiAwOwogCi0J bGluZXRpbWVfd20gPSBESVZfUk9VTkRfQ0xPU0VTVChhZGp1c3RlZF9tb2RlLT5jcnRjX2h0b3Rh bCAqIDEwMDAgKiA4LAotCQkJCQlhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrKTsKKwlsaW5ldGlt ZV93bSA9IERJVl9ST1VORF9DTE9TRVNUKHBpcGVfbW9kZS0+Y3J0Y19odG90YWwgKiAxMDAwICog OCwKKwkJCQkJcGlwZV9tb2RlLT5jcnRjX2Nsb2NrKTsKIAogCXJldHVybiBtaW4obGluZXRpbWVf d20sIDB4MWZmKTsKIH0KQEAgLTEzMjQ0LDcgKzEzMjQ4LDEwIEBAIHN0YXRpYyB2b2lkIGludGVs X2R1bXBfcGlwZV9jb25maWcoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29u ZmlnLAogCWRybV9tb2RlX2RlYnVnX3ByaW50bW9kZWxpbmUoJnBpcGVfY29uZmlnLT5ody5tb2Rl KTsKIAlkcm1fZGJnX2ttcygmZGV2X3ByaXYtPmRybSwgImFkanVzdGVkIG1vZGU6XG4iKTsKIAlk cm1fbW9kZV9kZWJ1Z19wcmludG1vZGVsaW5lKCZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9k ZSk7CisJZHJtX2RiZ19rbXMoJmRldl9wcml2LT5kcm0sICJwaXBlIG1vZGU6XG4iKTsKKwlkcm1f bW9kZV9kZWJ1Z19wcmludG1vZGVsaW5lKCZwaXBlX2NvbmZpZy0+aHcucGlwZV9tb2RlKTsKIAlp bnRlbF9kdW1wX2NydGNfdGltaW5ncyhkZXZfcHJpdiwgJnBpcGVfY29uZmlnLT5ody5hZGp1c3Rl ZF9tb2RlKTsKKwlpbnRlbF9kdW1wX2NydGNfdGltaW5ncyhkZXZfcHJpdiwgJnBpcGVfY29uZmln LT5ody5waXBlX21vZGUpOwogCWRybV9kYmdfa21zKCZkZXZfcHJpdi0+ZHJtLAogCQkgICAgInBv cnQgY2xvY2s6ICVkLCBwaXBlIHNyYyBzaXplOiAlZHglZCwgcGl4ZWwgcmF0ZSAlZFxuIiwKIAkJ ICAgIHBpcGVfY29uZmlnLT5wb3J0X2Nsb2NrLApAQCAtMTMzODcsOCArMTMzOTQsOSBAQCBpbnRl bF9jcnRjX2NvcHlfdWFwaV90b19od19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSkKIAljcnRjX3N0YXRlLT5ody5lbmFibGUgPSBjcnRjX3N0YXRlLT51YXBpLmVuYWJs ZTsKIAljcnRjX3N0YXRlLT5ody5hY3RpdmUgPSBjcnRjX3N0YXRlLT51YXBpLmFjdGl2ZTsKIAlj cnRjX3N0YXRlLT5ody5tb2RlID0gY3J0Y19zdGF0ZS0+dWFwaS5tb2RlOwotCWNydGNfc3RhdGUt Pmh3LmFkanVzdGVkX21vZGUgPSBjcnRjX3N0YXRlLT51YXBpLmFkanVzdGVkX21vZGU7CisJY3J0 Y19zdGF0ZS0+aHcucGlwZV9tb2RlID0gY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZSA9IGNy dGNfc3RhdGUtPnVhcGkuYWRqdXN0ZWRfbW9kZTsKIAljcnRjX3N0YXRlLT5ody5zY2FsaW5nX2Zp bHRlciA9IGNydGNfc3RhdGUtPnVhcGkuc2NhbGluZ19maWx0ZXI7CisKIAlpbnRlbF9jcnRjX2Nv cHlfdWFwaV90b19od19zdGF0ZV9ub21vZGVzZXQoY3J0Y19zdGF0ZSk7CiB9CiAKQEAgLTEzNTg1 LDYgKzEzNTkzLDkgQEAgaW50ZWxfbW9kZXNldF9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqcGlwZV9jb25maWcpCiAJCSAgICAiaHcgbWF4IGJwcDogJWksIHBpcGUgYnBwOiAl aSwgZGl0aGVyaW5nOiAlaVxuIiwKIAkJICAgIGJhc2VfYnBwLCBwaXBlX2NvbmZpZy0+cGlwZV9i cHAsIHBpcGVfY29uZmlnLT5kaXRoZXIpOwogCisJLyogd2l0aG91dCBiaWdqb2luZXIsIHBpcGVf bW9kZSA9PSBhZGp1c3RlZF9tb2RlICovCisJcGlwZV9jb25maWctPmh3LnBpcGVfbW9kZSA9IHBp cGVfY29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOworCiAJcmV0dXJuIDA7CiB9CiAKQEAgLTEzOTkz LDYgKzE0MDA0LDEwIEBAIGludGVsX3BpcGVfY29uZmlnX2NvbXBhcmUoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmN1cnJlbnRfY29uZmlnLAogCiAJUElQRV9DT05GX0NIRUNLX1gob3V0 cHV0X3R5cGVzKTsKIAorCVBJUEVfQ09ORl9DSEVDS19JKGh3LnBpcGVfbW9kZS5jcnRjX2hkaXNw bGF5KTsKKwlQSVBFX0NPTkZfQ0hFQ0tfSShody5waXBlX21vZGUuY3J0Y19oZGlzcGxheSk7CisJ UElQRV9DT05GX0NIRUNLX0koaHcucGlwZV9tb2RlLmNydGNfaGRpc3BsYXkpOworCVBJUEVfQ09O Rl9DSEVDS19JKGh3LnBpcGVfbW9kZS5jcnRjX2hkaXNwbGF5KTsKIAlQSVBFX0NPTkZfQ0hFQ0tf SShody5hZGp1c3RlZF9tb2RlLmNydGNfaGRpc3BsYXkpOwogCVBJUEVfQ09ORl9DSEVDS19JKGh3 LmFkanVzdGVkX21vZGUuY3J0Y19odG90YWwpOwogCVBJUEVfQ09ORl9DSEVDS19JKGh3LmFkanVz dGVkX21vZGUuY3J0Y19oYmxhbmtfc3RhcnQpOwpAQCAtMTg4NDAsNiArMTg4NTUsOCBAQCBzdGF0 aWMgdm9pZCBpbnRlbF9tb2Rlc2V0X3JlYWRvdXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2Ug KmRldikKIAkJCSAqLwogCQkJY3J0Y19zdGF0ZS0+aW5oZXJpdGVkID0gdHJ1ZTsKIAorCQkJY3J0 Y19zdGF0ZS0+aHcucGlwZV9tb2RlID0gY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKKwog CQkJaW50ZWxfY3J0Y19jb21wdXRlX3BpeGVsX3JhdGUoY3J0Y19zdGF0ZSk7CiAKIAkJCWludGVs X2NydGNfdXBkYXRlX2FjdGl2ZV90aW1pbmdzKGNydGNfc3RhdGUpOwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaAppbmRleCA2ZTcyYzlk NTI4NDMuLmE5YmVlMjJjZDU0NiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgKQEAgLTgxNywxNSArODE3LDIyIEBAIHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlIHsKIAkgKiBUaGUgZm9sbG93aW5nIG1lbWJlcnMgYXJlIHVzZWQgdG8g dmVyaWZ5IHRoZSBoYXJkd2FyZSBzdGF0ZToKIAkgKiAtIGVuYWJsZQogCSAqIC0gYWN0aXZlCi0J ICogLSBtb2RlIC8gYWRqdXN0ZWRfbW9kZQorCSAqIC0gbW9kZS9hZGp1c3RlZF9tb2RlCiAJICog LSBjb2xvciBwcm9wZXJ0eSBibG9icy4KIAkgKgogCSAqIER1cmluZyBpbml0aWFsIGh3IHJlYWRv dXQsIHRoZXkgbmVlZCB0byBiZSBjb3BpZWQgdG8gdWFwaS4KKwkgKgorCSAqIEJpZ2pvaW5lciB3 aWxsIGFsbG93IGEgdHJhbnNjb2RlciBtb2RlIHRoYXQgc3BhbnMgMiBwaXBlczsKKwkgKiBVc2Ug dGhlIHBpcGVfbW9kZSBmb3IgY2FsY3VsYXRpb25zIGxpa2Ugd2F0ZXJtYXJrcywgcGlwZQorCSAq IHNjYWxlciwgYW5kIGJhbmR3aWR0aC4KKwkgKgorCSAqIFVzZSBhZGp1c3RlZF9tb2RlIGZvciB0 aGluZ3MgdGhhdCBuZWVkIHRvIGtub3cgdGhlIGZ1bGwKKwkgKiBtb2RlIG9uIHRoZSB0cmFuc2Nv ZGVyLCB3aGljaCBzcGFucyBhbGwgcGlwZXMuCiAJICovCiAJc3RydWN0IHsKIAkJYm9vbCBhY3Rp dmUsIGVuYWJsZTsKIAkJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpkZWdhbW1hX2x1dCwgKmdh bW1hX2x1dCwgKmN0bTsKLQkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgbW9kZSwgYWRqdXN0ZWRf bW9kZTsKKwkJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgbW9kZSwgcGlwZV9tb2RlLCBhZGp1c3Rl ZF9tb2RlOwogCQllbnVtIGRybV9zY2FsaW5nX2ZpbHRlciBzY2FsaW5nX2ZpbHRlcjsKIAl9IGh3 OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYwppbmRleCBiYmVjNTZmOTc4MzIuLjRkOWM2OWFlMDM5 YiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCkBAIC04OTksMTIgKzg5OSwxMiBAQCBzdGF0aWMg dm9pZCBwbnZfdXBkYXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjICp1bnVzZWRfY3J0YykKIAogCWNy dGMgPSBzaW5nbGVfZW5hYmxlZF9jcnRjKGRldl9wcml2KTsKIAlpZiAoY3J0YykgewotCQljb25z dCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCQkmY3J0Yy0+Y29u ZmlnLT5ody5hZGp1c3RlZF9tb2RlOworCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq cGlwZV9tb2RlID0KKwkJCSZjcnRjLT5jb25maWctPmh3LnBpcGVfbW9kZTsKIAkJY29uc3Qgc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPQogCQkJY3J0Yy0+YmFzZS5wcmltYXJ5LT5zdGF0ZS0+ ZmI7CiAJCWludCBjcHAgPSBmYi0+Zm9ybWF0LT5jcHBbMF07Ci0JCWludCBjbG9jayA9IGFkanVz dGVkX21vZGUtPmNydGNfY2xvY2s7CisJCWludCBjbG9jayA9IHBpcGVfbW9kZS0+Y3J0Y19jbG9j azsKIAogCQkvKiBEaXNwbGF5IFNSICovCiAJCXdtID0gaW50ZWxfY2FsY3VsYXRlX3dtKGNsb2Nr LCAmcG52X2Rpc3BsYXlfd20sCkBAIC0xMTM1LDggKzExMzUsOCBAQCBzdGF0aWMgdTE2IGc0eF9j b21wdXRlX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogewog CXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZV9zdGF0ZS0+ dWFwaS5wbGFuZSk7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShwbGFuZS0+YmFzZS5kZXYpOwotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1 c3RlZF9tb2RlID0KLQkJJmNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGU7CisJY29uc3Qgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKnBpcGVfbW9kZSA9CisJCSZjcnRjX3N0YXRlLT5ody5waXBl X21vZGU7CiAJdW5zaWduZWQgaW50IGxhdGVuY3kgPSBkZXZfcHJpdi0+d20ucHJpX2xhdGVuY3lb bGV2ZWxdICogMTA7CiAJdW5zaWduZWQgaW50IGNsb2NrLCBodG90YWwsIGNwcCwgd2lkdGgsIHdt OwogCkBAIC0xMTYzLDggKzExNjMsOCBAQCBzdGF0aWMgdTE2IGc0eF9jb21wdXRlX3dtKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCSAgICBsZXZlbCAhPSBHNFhf V01fTEVWRUxfTk9STUFMKQogCQljcHAgPSBtYXgoY3BwLCA0dSk7CiAKLQljbG9jayA9IGFkanVz dGVkX21vZGUtPmNydGNfY2xvY2s7Ci0JaHRvdGFsID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19odG90 YWw7CisJY2xvY2sgPSBwaXBlX21vZGUtPmNydGNfY2xvY2s7CisJaHRvdGFsID0gcGlwZV9tb2Rl LT5jcnRjX2h0b3RhbDsKIAogCXdpZHRoID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT51 YXBpLmRzdCk7CiAKQEAgLTE2NjAsOCArMTY2MCw4IEBAIHN0YXRpYyB1MTYgdmx2X2NvbXB1dGVf d21fbGV2ZWwoY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiB7CiAJ c3RydWN0IGludGVsX3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT51 YXBpLnBsYW5lKTsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KHBsYW5lLT5iYXNlLmRldik7Ci0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVz dGVkX21vZGUgPQotCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKKwljb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqcGlwZV9tb2RlID0KKwkJJmNydGNfc3RhdGUtPmh3LnBpcGVf bW9kZTsKIAl1bnNpZ25lZCBpbnQgY2xvY2ssIGh0b3RhbCwgY3BwLCB3aWR0aCwgd207CiAKIAlp ZiAoZGV2X3ByaXYtPndtLnByaV9sYXRlbmN5W2xldmVsXSA9PSAwKQpAQCAtMTY3MSw4ICsxNjcx LDggQEAgc3RhdGljIHUxNiB2bHZfY29tcHV0ZV93bV9sZXZlbChjb25zdCBzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIAkJcmV0dXJuIDA7CiAKIAljcHAgPSBwbGFuZV9zdGF0 ZS0+aHcuZmItPmZvcm1hdC0+Y3BwWzBdOwotCWNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19j bG9jazsKLQlodG90YWwgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2h0b3RhbDsKKwljbG9jayA9IHBp cGVfbW9kZS0+Y3J0Y19jbG9jazsKKwlodG90YWwgPSBwaXBlX21vZGUtPmNydGNfaHRvdGFsOwog CXdpZHRoID0gY3J0Y19zdGF0ZS0+cGlwZV9zcmNfdzsKIAogCWlmIChwbGFuZS0+aWQgPT0gUExB TkVfQ1VSU09SKSB7CkBAIC0yMjYxLDEyICsyMjYxLDEyIEBAIHN0YXRpYyB2b2lkIGk5NjVfdXBk YXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjICp1bnVzZWRfY3J0YykKIAlpZiAoY3J0YykgewogCQkv KiBzZWxmLXJlZnJlc2ggaGFzIG11Y2ggaGlnaGVyIGxhdGVuY3kgKi8KIAkJc3RhdGljIGNvbnN0 IGludCBzcl9sYXRlbmN5X25zID0gMTIwMDA7Ci0JCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9t b2RlICphZGp1c3RlZF9tb2RlID0KLQkJCSZjcnRjLT5jb25maWctPmh3LmFkanVzdGVkX21vZGU7 CisJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpwaXBlX21vZGUgPQorCQkJJmNydGMt PmNvbmZpZy0+aHcucGlwZV9tb2RlOwogCQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpm YiA9CiAJCQljcnRjLT5iYXNlLnByaW1hcnktPnN0YXRlLT5mYjsKLQkJaW50IGNsb2NrID0gYWRq dXN0ZWRfbW9kZS0+Y3J0Y19jbG9jazsKLQkJaW50IGh0b3RhbCA9IGFkanVzdGVkX21vZGUtPmNy dGNfaHRvdGFsOworCQlpbnQgY2xvY2sgPSBwaXBlX21vZGUtPmNydGNfY2xvY2s7CisJCWludCBo dG90YWwgPSBwaXBlX21vZGUtPmNydGNfaHRvdGFsOwogCQlpbnQgaGRpc3BsYXkgPSBjcnRjLT5j b25maWctPnBpcGVfc3JjX3c7CiAJCWludCBjcHAgPSBmYi0+Zm9ybWF0LT5jcHBbMF07CiAJCWlu dCBlbnRyaWVzOwpAQCAtMjM0NSw4ICsyMzQ1LDggQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVf d20oc3RydWN0IGludGVsX2NydGMgKnVudXNlZF9jcnRjKQogCWZpZm9fc2l6ZSA9IGRldl9wcml2 LT5kaXNwbGF5LmdldF9maWZvX3NpemUoZGV2X3ByaXYsIFBMQU5FX0EpOwogCWNydGMgPSBpbnRl bF9nZXRfY3J0Y19mb3JfcGxhbmUoZGV2X3ByaXYsIFBMQU5FX0EpOwogCWlmIChpbnRlbF9jcnRj X2FjdGl2ZShjcnRjKSkgewotCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0 ZWRfbW9kZSA9Ci0JCQkmY3J0Yy0+Y29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOworCQljb25zdCBz dHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqcGlwZV9tb2RlID0KKwkJCSZjcnRjLT5jb25maWctPmh3 LnBpcGVfbW9kZTsKIAkJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPQogCQkJY3J0 Yy0+YmFzZS5wcmltYXJ5LT5zdGF0ZS0+ZmI7CiAJCWludCBjcHA7CkBAIC0yMzU2LDcgKzIzNTYs NyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqdW51c2Vk X2NydGMpCiAJCWVsc2UKIAkJCWNwcCA9IGZiLT5mb3JtYXQtPmNwcFswXTsKIAotCQlwbGFuZWFf d20gPSBpbnRlbF9jYWxjdWxhdGVfd20oYWRqdXN0ZWRfbW9kZS0+Y3J0Y19jbG9jaywKKwkJcGxh bmVhX3dtID0gaW50ZWxfY2FsY3VsYXRlX3dtKHBpcGVfbW9kZS0+Y3J0Y19jbG9jaywKIAkJCQkJ ICAgICAgIHdtX2luZm8sIGZpZm9fc2l6ZSwgY3BwLAogCQkJCQkgICAgICAgcGVzc2ltYWxfbGF0 ZW5jeV9ucyk7CiAJCWVuYWJsZWQgPSBjcnRjOwpAQCAtMjM3Miw4ICsyMzcyLDggQEAgc3RhdGlj IHZvaWQgaTl4eF91cGRhdGVfd20oc3RydWN0IGludGVsX2NydGMgKnVudXNlZF9jcnRjKQogCWZp Zm9fc2l6ZSA9IGRldl9wcml2LT5kaXNwbGF5LmdldF9maWZvX3NpemUoZGV2X3ByaXYsIFBMQU5F X0IpOwogCWNydGMgPSBpbnRlbF9nZXRfY3J0Y19mb3JfcGxhbmUoZGV2X3ByaXYsIFBMQU5FX0Ip OwogCWlmIChpbnRlbF9jcnRjX2FjdGl2ZShjcnRjKSkgewotCQljb25zdCBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0JCQkmY3J0Yy0+Y29uZmlnLT5ody5hZGp1c3Rl ZF9tb2RlOworCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqcGlwZV9tb2RlID0KKwkJ CSZjcnRjLT5jb25maWctPmh3LnBpcGVfbW9kZTsKIAkJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1 ZmZlciAqZmIgPQogCQkJY3J0Yy0+YmFzZS5wcmltYXJ5LT5zdGF0ZS0+ZmI7CiAJCWludCBjcHA7 CkBAIC0yMzgzLDcgKzIzODMsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV93bShzdHJ1Y3Qg aW50ZWxfY3J0YyAqdW51c2VkX2NydGMpCiAJCWVsc2UKIAkJCWNwcCA9IGZiLT5mb3JtYXQtPmNw cFswXTsKIAotCQlwbGFuZWJfd20gPSBpbnRlbF9jYWxjdWxhdGVfd20oYWRqdXN0ZWRfbW9kZS0+ Y3J0Y19jbG9jaywKKwkJcGxhbmViX3dtID0gaW50ZWxfY2FsY3VsYXRlX3dtKHBpcGVfbW9kZS0+ Y3J0Y19jbG9jaywKIAkJCQkJICAgICAgIHdtX2luZm8sIGZpZm9fc2l6ZSwgY3BwLAogCQkJCQkg ICAgICAgcGVzc2ltYWxfbGF0ZW5jeV9ucyk7CiAJCWlmIChlbmFibGVkID09IE5VTEwpCkBAIC0y NDIxLDEyICsyNDIxLDEyIEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3dtKHN0cnVjdCBpbnRl bF9jcnRjICp1bnVzZWRfY3J0YykKIAlpZiAoSEFTX0ZXX0JMQyhkZXZfcHJpdikgJiYgZW5hYmxl ZCkgewogCQkvKiBzZWxmLXJlZnJlc2ggaGFzIG11Y2ggaGlnaGVyIGxhdGVuY3kgKi8KIAkJc3Rh dGljIGNvbnN0IGludCBzcl9sYXRlbmN5X25zID0gNjAwMDsKLQkJY29uc3Qgc3RydWN0IGRybV9k aXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkJJmVuYWJsZWQtPmNvbmZpZy0+aHcuYWRq dXN0ZWRfbW9kZTsKKwkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKnBpcGVfbW9kZSA9 CisJCQkmZW5hYmxlZC0+Y29uZmlnLT5ody5waXBlX21vZGU7CiAJCWNvbnN0IHN0cnVjdCBkcm1f ZnJhbWVidWZmZXIgKmZiID0KIAkJCWVuYWJsZWQtPmJhc2UucHJpbWFyeS0+c3RhdGUtPmZiOwot CQlpbnQgY2xvY2sgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrOwotCQlpbnQgaHRvdGFsID0g YWRqdXN0ZWRfbW9kZS0+Y3J0Y19odG90YWw7CisJCWludCBjbG9jayA9IHBpcGVfbW9kZS0+Y3J0 Y19jbG9jazsKKwkJaW50IGh0b3RhbCA9IHBpcGVfbW9kZS0+Y3J0Y19odG90YWw7CiAJCWludCBo ZGlzcGxheSA9IGVuYWJsZWQtPmNvbmZpZy0+cGlwZV9zcmNfdzsKIAkJaW50IGNwcDsKIAkJaW50 IGVudHJpZXM7CkBAIC0yNDc0LDcgKzI0NzQsNyBAQCBzdGF0aWMgdm9pZCBpODQ1X3VwZGF0ZV93 bShzdHJ1Y3QgaW50ZWxfY3J0YyAqdW51c2VkX2NydGMpCiB7CiAJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNSh1bnVzZWRfY3J0Yy0+YmFzZS5kZXYpOwogCXN0cnVj dCBpbnRlbF9jcnRjICpjcnRjOwotCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1 c3RlZF9tb2RlOworCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpwaXBlX21vZGU7CiAJ dTMyIGZ3YXRlcl9sbzsKIAlpbnQgcGxhbmVhX3dtOwogCkBAIC0yNDgyLDggKzI0ODIsOCBAQCBz dGF0aWMgdm9pZCBpODQ1X3VwZGF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqdW51c2VkX2NydGMp CiAJaWYgKGNydGMgPT0gTlVMTCkKIAkJcmV0dXJuOwogCi0JYWRqdXN0ZWRfbW9kZSA9ICZjcnRj LT5jb25maWctPmh3LmFkanVzdGVkX21vZGU7Ci0JcGxhbmVhX3dtID0gaW50ZWxfY2FsY3VsYXRl X3dtKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2ssCisJcGlwZV9tb2RlID0gJmNydGMtPmNvbmZp Zy0+aHcucGlwZV9tb2RlOworCXBsYW5lYV93bSA9IGludGVsX2NhbGN1bGF0ZV93bShwaXBlX21v ZGUtPmNydGNfY2xvY2ssCiAJCQkJICAgICAgICZpODQ1X3dtX2luZm8sCiAJCQkJICAgICAgIGRl dl9wcml2LT5kaXNwbGF5LmdldF9maWZvX3NpemUoZGV2X3ByaXYsIFBMQU5FX0EpLAogCQkJCSAg ICAgICA0LCBwZXNzaW1hbF9sYXRlbmN5X25zKTsKQEAgLTI1NzMsNyArMjU3Myw3IEBAIHN0YXRp YyB1MzIgaWxrX2NvbXB1dGVfcHJpX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAogCQlyZXR1cm4gbWV0aG9kMTsKIAogCW1ldGhvZDIgPSBpbGtfd21fbWV0aG9k MihjcnRjX3N0YXRlLT5waXhlbF9yYXRlLAotCQkJCSBjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9t b2RlLmNydGNfaHRvdGFsLAorCQkJCSBjcnRjX3N0YXRlLT5ody5waXBlX21vZGUuY3J0Y19odG90 YWwsCiAJCQkJIGRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+dWFwaS5kc3QpLAogCQkJCSBj cHAsIG1lbV92YWx1ZSk7CiAKQEAgLTI2MDEsNyArMjYwMSw3IEBAIHN0YXRpYyB1MzIgaWxrX2Nv bXB1dGVfc3ByX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAog CiAJbWV0aG9kMSA9IGlsa193bV9tZXRob2QxKGNydGNfc3RhdGUtPnBpeGVsX3JhdGUsIGNwcCwg bWVtX3ZhbHVlKTsKIAltZXRob2QyID0gaWxrX3dtX21ldGhvZDIoY3J0Y19zdGF0ZS0+cGl4ZWxf cmF0ZSwKLQkJCQkgY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3RhbCwKKwkJ CQkgY3J0Y19zdGF0ZS0+aHcucGlwZV9tb2RlLmNydGNfaHRvdGFsLAogCQkJCSBkcm1fcmVjdF93 aWR0aCgmcGxhbmVfc3RhdGUtPnVhcGkuZHN0KSwKIAkJCQkgY3BwLCBtZW1fdmFsdWUpOwogCXJl dHVybiBtaW4obWV0aG9kMSwgbWV0aG9kMik7CkBAIC0yNjI2LDcgKzI2MjYsNyBAQCBzdGF0aWMg dTMyIGlsa19jb21wdXRlX2N1cl93bShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0 Y19zdGF0ZSwKIAljcHAgPSBwbGFuZV9zdGF0ZS0+aHcuZmItPmZvcm1hdC0+Y3BwWzBdOwogCiAJ cmV0dXJuIGlsa193bV9tZXRob2QyKGNydGNfc3RhdGUtPnBpeGVsX3JhdGUsCi0JCQkgICAgICBj cnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsLAorCQkJICAgICAgY3J0Y19z dGF0ZS0+aHcucGlwZV9tb2RlLmNydGNfaHRvdGFsLAogCQkJICAgICAgZHJtX3JlY3Rfd2lkdGgo JnBsYW5lX3N0YXRlLT51YXBpLmRzdCksCiAJCQkgICAgICBjcHAsIG1lbV92YWx1ZSk7CiB9CkBA IC0zODgzLDcgKzM4ODMsNyBAQCBzdGF0aWMgYm9vbCBza2xfY3J0Y19jYW5fZW5hYmxlX3NhZ3Yo Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJaWYgKCFjcnRjX3N0 YXRlLT5ody5hY3RpdmUpCiAJCXJldHVybiB0cnVlOwogCi0JaWYgKGNydGNfc3RhdGUtPmh3LmFk anVzdGVkX21vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkKKwlpZiAoY3J0Y19z dGF0ZS0+aHcucGlwZV9tb2RlLmZsYWdzICYgRFJNX01PREVfRkxBR19JTlRFUkxBQ0UpCiAJCXJl dHVybiBmYWxzZTsKIAogCWludGVsX2F0b21pY19jcnRjX3N0YXRlX2Zvcl9lYWNoX3BsYW5lX3N0 YXRlKHBsYW5lLCBwbGFuZV9zdGF0ZSwgY3J0Y19zdGF0ZSkgewpAQCAtNDE3NCw4ICs0MTc0LDgg QEAgc2tsX2RkYl9nZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYsCiAJICovCiAJdG90YWxfc2xpY2VfbWFzayA9IGRidWZfc2xpY2VfbWFz azsKIAlmb3JfZWFjaF9uZXdfaW50ZWxfY3J0Y19pbl9zdGF0ZShpbnRlbF9zdGF0ZSwgY3J0Yywg Y3J0Y19zdGF0ZSwgaSkgewotCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0 ZWRfbW9kZSA9Ci0JCQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKKwkJY29uc3Qgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKnBpcGVfbW9kZSA9CisJCQkmY3J0Y19zdGF0ZS0+aHcucGlw ZV9tb2RlOwogCQllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7CiAJCWludCBoZGlzcGxheSwg dmRpc3BsYXk7CiAJCXUzMiBwaXBlX2RidWZfc2xpY2VfbWFzazsKQEAgLTQyMDUsNyArNDIwNSw3 IEBAIHNrbF9kZGJfZ2V0X3BpcGVfYWxsb2NhdGlvbl9saW1pdHMoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAogCQlpZiAoZGJ1Zl9zbGljZV9tYXNrICE9IHBpcGVfZGJ1Zl9zbGlj ZV9tYXNrKQogCQkJY29udGludWU7CiAKLQkJZHJtX21vZGVfZ2V0X2h2X3RpbWluZyhhZGp1c3Rl ZF9tb2RlLCAmaGRpc3BsYXksICZ2ZGlzcGxheSk7CisJCWRybV9tb2RlX2dldF9odl90aW1pbmco cGlwZV9tb2RlLCAmaGRpc3BsYXksICZ2ZGlzcGxheSk7CiAKIAkJdG90YWxfd2lkdGhfaW5fcmFu Z2UgKz0gaGRpc3BsYXk7CiAKQEAgLTUwOTMsNyArNTA5Myw3IEBAIGludGVsX2dldF9saW5ldGlt ZV91cyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlpZiAoZHJt X1dBUk5fT04oJmRldl9wcml2LT5kcm0sIHBpeGVsX3JhdGUgPT0gMCkpCiAJCXJldHVybiB1MzJf dG9fZml4ZWQxNigwKTsKIAotCWNydGNfaHRvdGFsID0gY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRf bW9kZS5jcnRjX2h0b3RhbDsKKwljcnRjX2h0b3RhbCA9IGNydGNfc3RhdGUtPmh3LnBpcGVfbW9k ZS5jcnRjX2h0b3RhbDsKIAlsaW5ldGltZV91cyA9IGRpdl9maXhlZDE2KGNydGNfaHRvdGFsICog MTAwMCwgcGl4ZWxfcmF0ZSk7CiAKIAlyZXR1cm4gbGluZXRpbWVfdXM7CkBAIC01MjgyLDE0ICs1 MjgyLDE0IEBAIHN0YXRpYyB2b2lkIHNrbF9jb21wdXRlX3BsYW5lX3dtKGNvbnN0IHN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCW1ldGhvZDEgPSBza2xfd21fbWV0aG9kMShk ZXZfcHJpdiwgd3AtPnBsYW5lX3BpeGVsX3JhdGUsCiAJCQkJIHdwLT5jcHAsIGxhdGVuY3ksIHdw LT5kYnVmX2Jsb2NrX3NpemUpOwogCW1ldGhvZDIgPSBza2xfd21fbWV0aG9kMih3cC0+cGxhbmVf cGl4ZWxfcmF0ZSwKLQkJCQkgY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5jcnRjX2h0b3Rh bCwKKwkJCQkgY3J0Y19zdGF0ZS0+aHcucGlwZV9tb2RlLmNydGNfaHRvdGFsLAogCQkJCSBsYXRl bmN5LAogCQkJCSB3cC0+cGxhbmVfYmxvY2tzX3Blcl9saW5lKTsKIAogCWlmICh3cC0+eV90aWxl ZCkgewogCQlzZWxlY3RlZF9yZXN1bHQgPSBtYXhfZml4ZWQxNihtZXRob2QyLCB3cC0+eV90aWxl X21pbmltdW0pOwogCX0gZWxzZSB7Ci0JCWlmICgod3AtPmNwcCAqIGNydGNfc3RhdGUtPmh3LmFk anVzdGVkX21vZGUuY3J0Y19odG90YWwgLworCQlpZiAoKHdwLT5jcHAgKiBjcnRjX3N0YXRlLT5o dy5waXBlX21vZGUuY3J0Y19odG90YWwgLwogCQkgICAgIHdwLT5kYnVmX2Jsb2NrX3NpemUgPCAx KSAmJgogCQkgICAgICh3cC0+cGxhbmVfYnl0ZXNfcGVyX2xpbmUgLyB3cC0+ZGJ1Zl9ibG9ja19z aXplIDwgMSkpIHsKIAkJCXNlbGVjdGVkX3Jlc3VsdCA9IG1ldGhvZDI7Ci0tIAoyLjE5LjEKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=