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 483C8C55179 for ; Thu, 29 Oct 2020 19:35:14 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id DADC3207BC for ; Thu, 29 Oct 2020 19:35:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DADC3207BC 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 1D8C36E8F8; Thu, 29 Oct 2020 19:35:10 +0000 (UTC) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by gabe.freedesktop.org (Postfix) with ESMTPS id 56B776E8EF for ; Thu, 29 Oct 2020 19:35:01 +0000 (UTC) IronPort-SDR: Jbb6qKJPLrSX3PyXDkZhQYr0j2coy8+MHta8Ae7+wp+/+luvC1hdnFM8iit2XE3P98WH5nBCQl 8hz2FtJb+BBg== X-IronPort-AV: E=McAfee;i="6000,8403,9789"; a="156272320" X-IronPort-AV: E=Sophos;i="5.77,430,1596524400"; d="scan'208";a="156272320" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 29 Oct 2020 12:34:49 -0700 IronPort-SDR: dfSMkaf8vsMcm2830idFSIWMdNPhl1hDTRkzrEb4ZC4BxONX6yaTe6+ZQVjdvFeBWmk17f7HP9 YMzSQhLmUeMA== X-IronPort-AV: E=Sophos;i="5.77,430,1596524400"; d="scan'208";a="323820136" 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; 29 Oct 2020 12:34:49 -0700 From: Manasi Navare To: intel-gfx@lists.freedesktop.org Date: Thu, 29 Oct 2020 12:36:38 -0700 Message-Id: <20201029193641.23199-3-manasi.d.navare@intel.com> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20201029193641.23199-1-manasi.d.navare@intel.com> References: <20201029193641.23199-1-manasi.d.navare@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v4 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 LCBwbGFuZSBjbGlwcGluZywgZXRjLgoKdjg6CiogQWRkIHBpcGVfbW9kZSBpbiByZWFkb3V0IGlu IHZlcmlmeV9jcnRjX3N0YXRlIChWaWxsZSkKdjc6CiogUmVtb3ZlIHJlZHVuZGFudCBjb21tZW50 IChWaWxsZSkKKiBKdXN0IGtlZXAgbW9kZSBpbnN0ZWFkIG9mIHBpcGVfbW9kZSAoVmlsbGUpCnY2 OgoqIHJlbmFtaW5nIGluIHNlcGFyYXRlIGZ1bmN0aW9uLCBvbmx5IHBpcGVfbW9kZSBoZXJlIChW aWxsZSkKKiBBZGQgZGVzY3JpcHRpb24gKE1hYXJ0ZW4pCnY1OgoqIFJlYmFzZSAoTWFuYXNpKQp2 NDoKKiBNYW51YWwgcmViYXNlIChNYW5hc2kpCnYzOgoqIENoYW5nZSBzdGF0ZSB0byBjcnRjX3N0 YXRlLCBmaXggcmViYXNlIGVyciAgKE1hbmFzaSkKdjI6CiogTWFudWFsIFJlYmFzZSAoTWFuYXNp KQoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxp bnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogTWFuYXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2 YXJlQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuaW1lc2ggTWFubmEgPGFuaW1lc2gubWFubmFA aW50ZWwuY29tPgpSZXZpZXdlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxp bnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rp c3BsYXkuYyAgfCA0MiArKysrKy0tLS0tCiAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNw bGF5X3R5cGVzLmggICAgfCAxMSArKy0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMg ICAgICAgICAgICAgICB8IDc2ICsrKysrKysrKy0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwg NzIgaW5zZXJ0aW9ucygrKSwgNTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwppbmRleCAzZGJjYzAyNjc4YjMuLjUwNTIyYzhhNmZm MCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5 LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKQEAg LTYxNjcsMTggKzYxNjcsMTYgQEAgc2tsX3VwZGF0ZV9zY2FsZXIoc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsIGJvb2wgZm9yY2VfZGV0YWNoLAogCiBzdGF0aWMgaW50IHNrbF91 cGRhdGVfc2NhbGVyX2NydGMoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7 Ci0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQotCQkmY3J0 Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqcGlwZV9tb2RlID0gJmNydGNfc3RhdGUtPmh3LnBpcGVfbW9kZTsKIAlpbnQgd2lkdGgsIGhl aWdodDsKIAogCWlmIChjcnRjX3N0YXRlLT5wY2hfcGZpdC5lbmFibGVkKSB7CiAJCXdpZHRoID0g ZHJtX3JlY3Rfd2lkdGgoJmNydGNfc3RhdGUtPnBjaF9wZml0LmRzdCk7CiAJCWhlaWdodCA9IGRy bV9yZWN0X2hlaWdodCgmY3J0Y19zdGF0ZS0+cGNoX3BmaXQuZHN0KTsKIAl9IGVsc2UgewotCQl3 aWR0aCA9IGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXk7Ci0JCWhlaWdodCA9IGFkanVzdGVk X21vZGUtPmNydGNfdmRpc3BsYXk7CisJCXdpZHRoID0gcGlwZV9tb2RlLT5jcnRjX2hkaXNwbGF5 OworCQloZWlnaHQgPSBwaXBlX21vZGUtPmNydGNfdmRpc3BsYXk7CiAJfQotCiAJcmV0dXJuIHNr bF91cGRhdGVfc2NhbGVyKGNydGNfc3RhdGUsICFjcnRjX3N0YXRlLT5ody5hY3RpdmUsCiAJCQkJ IFNLTF9DUlRDX0lOREVYLAogCQkJCSAmY3J0Y19zdGF0ZS0+c2NhbGVyX3N0YXRlLnNjYWxlcl9p ZCwKQEAgLTgxOTIsNyArODE5MCw3IEBAIHN0YXRpYyBib29sIGludGVsX2NydGNfc3VwcG9ydHNf ZG91YmxlX3dpZGUoY29uc3Qgc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAKIHN0YXRpYyB1MzIg aWxrX3BpcGVfcGl4ZWxfcmF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSkKIHsKLQl1MzIgcGl4ZWxfcmF0ZSA9IGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUu Y3J0Y19jbG9jazsKKwl1MzIgcGl4ZWxfcmF0ZSA9IGNydGNfc3RhdGUtPmh3LnBpcGVfbW9kZS5j cnRjX2Nsb2NrOwogCXVuc2lnbmVkIGludCBwaXBlX3csIHBpcGVfaCwgcGZpdF93LCBwZml0X2g7 CiAKIAkvKgpAQCAtODIyNSw3ICs4MjIzLDExIEBAIHN0YXRpYyB1MzIgaWxrX3BpcGVfcGl4ZWxf cmF0ZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHN0YXRpYyB2 b2lkIGludGVsX2VuY29kZXJfZ2V0X2NvbmZpZyhzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl ciwKIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogeworCXN0 cnVjdCBkcm1fZGlzcGxheV9tb2RlICpwaXBlX21vZGUgPSAmY3J0Y19zdGF0ZS0+aHcucGlwZV9t b2RlOworCiAJZW5jb2Rlci0+Z2V0X2NvbmZpZyhlbmNvZGVyLCBjcnRjX3N0YXRlKTsKKworCSpw aXBlX21vZGUgPSBjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOwogfQogCiBzdGF0aWMgdm9p ZCBpbnRlbF9jcnRjX2NvbXB1dGVfcGl4ZWxfcmF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKQEAgLTgyMzUsNyArODIzNyw3IEBAIHN0YXRpYyB2b2lkIGludGVsX2NydGNf Y29tcHV0ZV9waXhlbF9yYXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQog CWlmIChIQVNfR01DSChkZXZfcHJpdikpCiAJCS8qIEZJWE1FIGNhbGN1bGF0ZSBwcm9wZXIgcGlw ZSBwaXhlbCByYXRlIGZvciBHTUNIIHBmaXQgKi8KIAkJY3J0Y19zdGF0ZS0+cGl4ZWxfcmF0ZSA9 Ci0JCQljcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7CisJCQljcnRjX3N0 YXRlLT5ody5waXBlX21vZGUuY3J0Y19jbG9jazsKIAllbHNlCiAJCWNydGNfc3RhdGUtPnBpeGVs X3JhdGUgPQogCQkJaWxrX3BpcGVfcGl4ZWxfcmF0ZShjcnRjX3N0YXRlKTsKQEAgLTgyNDUsNyAr ODI0Nyw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19jb21wdXRlX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2Nv bmZpZykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNy dGMtPmJhc2UuZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRf bW9kZSA9ICZwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKKwljb25zdCBzdHJ1Y3QgZHJt X2Rpc3BsYXlfbW9kZSAqcGlwZV9tb2RlID0gJnBpcGVfY29uZmlnLT5ody5waXBlX21vZGU7CiAJ aW50IGNsb2NrX2xpbWl0ID0gZGV2X3ByaXYtPm1heF9kb3RjbGtfZnJlcTsKIAogCWlmIChJTlRF TF9HRU4oZGV2X3ByaXYpIDwgNCkgewpAQCAtODI1NiwxNiArODI1OCwxNiBAQCBzdGF0aWMgaW50 IGludGVsX2NydGNfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJCSAq IGlzID4gOTAlIG9mIHRoZSAoZGlzcGxheSkgY29yZSBzcGVlZC4KIAkJICovCiAJCWlmIChpbnRl bF9jcnRjX3N1cHBvcnRzX2RvdWJsZV93aWRlKGNydGMpICYmCi0JCSAgICBhZGp1c3RlZF9tb2Rl LT5jcnRjX2Nsb2NrID4gY2xvY2tfbGltaXQpIHsKKwkJICAgIHBpcGVfbW9kZS0+Y3J0Y19jbG9j ayA+IGNsb2NrX2xpbWl0KSB7CiAJCQljbG9ja19saW1pdCA9IGRldl9wcml2LT5tYXhfZG90Y2xr X2ZyZXE7CiAJCQlwaXBlX2NvbmZpZy0+ZG91YmxlX3dpZGUgPSB0cnVlOwogCQl9CiAJfQogCi0J aWYgKGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2sgPiBjbG9ja19saW1pdCkgeworCWlmIChwaXBl X21vZGUtPmNydGNfY2xvY2sgPiBjbG9ja19saW1pdCkgewogCQlkcm1fZGJnX2ttcygmZGV2X3By aXYtPmRybSwKIAkJCSAgICAicmVxdWVzdGVkIHBpeGVsIGNsb2NrICglZCBrSHopIHRvbyBoaWdo IChtYXg6ICVkIGtIeiwgZG91YmxlIHdpZGU6ICVzKVxuIiwKLQkJCSAgICBhZGp1c3RlZF9tb2Rl LT5jcnRjX2Nsb2NrLCBjbG9ja19saW1pdCwKKwkJCSAgICBwaXBlX21vZGUtPmNydGNfY2xvY2ss IGNsb2NrX2xpbWl0LAogCQkJICAgIHllc25vKHBpcGVfY29uZmlnLT5kb3VibGVfd2lkZSkpOwog CQlyZXR1cm4gLUVJTlZBTDsKIAl9CkBAIC04MzA4LDcgKzgzMTAsNyBAQCBzdGF0aWMgaW50IGlu dGVsX2NydGNfY29tcHV0ZV9jb25maWcoc3RydWN0IGludGVsX2NydGMgKmNydGMsCiAJICogV2FQ cnVuZU1vZGVXaXRoSW5jb3JyZWN0SHN5bmNPZmZzZXQ6Y3RnLGVsayxpbGssc25iLGl2Yix2bHYs aHN3LgogCSAqLwogCWlmICgoSU5URUxfR0VOKGRldl9wcml2KSA+IDQgfHwgSVNfRzRYKGRldl9w cml2KSkgJiYKLQkJYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oc3luY19zdGFydCA9PSBhZGp1c3RlZF9t b2RlLT5jcnRjX2hkaXNwbGF5KQorCQlwaXBlX21vZGUtPmNydGNfaHN5bmNfc3RhcnQgPT0gcGlw ZV9tb2RlLT5jcnRjX2hkaXNwbGF5KQogCQlyZXR1cm4gLUVJTlZBTDsKIAogCWludGVsX2NydGNf Y29tcHV0ZV9waXhlbF9yYXRlKHBpcGVfY29uZmlnKTsKQEAgLTEyODI3LDE1ICsxMjgyOSwxNSBA QCBzdGF0aWMgYm9vbCBjOF9wbGFuZXNfY2hhbmdlZChjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19z dGF0ZSAqbmV3X2NydGNfc3RhdGUpCiAKIHN0YXRpYyB1MTYgaHN3X2xpbmV0aW1lX3dtKGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogewotCWNvbnN0IHN0cnVjdCBk cm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJJmNydGNfc3RhdGUtPmh3LmFkanVz dGVkX21vZGU7CisJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKnBpcGVfbW9kZSA9CisJ CSZjcnRjX3N0YXRlLT5ody5waXBlX21vZGU7CiAJaW50IGxpbmV0aW1lX3dtOwogCiAJaWYgKCFj cnRjX3N0YXRlLT5ody5lbmFibGUpCiAJCXJldHVybiAwOwogCi0JbGluZXRpbWVfd20gPSBESVZf Uk9VTkRfQ0xPU0VTVChhZGp1c3RlZF9tb2RlLT5jcnRjX2h0b3RhbCAqIDEwMDAgKiA4LAotCQkJ CQlhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrKTsKKwlsaW5ldGltZV93bSA9IERJVl9ST1VORF9D TE9TRVNUKHBpcGVfbW9kZS0+Y3J0Y19odG90YWwgKiAxMDAwICogOCwKKwkJCQkJcGlwZV9tb2Rl LT5jcnRjX2Nsb2NrKTsKIAogCXJldHVybiBtaW4obGluZXRpbWVfd20sIDB4MWZmKTsKIH0KQEAg LTEzNDY1LDggKzEzNDY3LDkgQEAgaW50ZWxfY3J0Y19jb3B5X3VhcGlfdG9faHdfc3RhdGUoc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiAJY3J0Y19zdGF0ZS0+aHcuZW5hYmxl ID0gY3J0Y19zdGF0ZS0+dWFwaS5lbmFibGU7CiAJY3J0Y19zdGF0ZS0+aHcuYWN0aXZlID0gY3J0 Y19zdGF0ZS0+dWFwaS5hY3RpdmU7CiAJY3J0Y19zdGF0ZS0+aHcubW9kZSA9IGNydGNfc3RhdGUt PnVhcGkubW9kZTsKLQljcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlID0gY3J0Y19zdGF0ZS0+ dWFwaS5hZGp1c3RlZF9tb2RlOworCWNydGNfc3RhdGUtPmh3LnBpcGVfbW9kZSA9IGNydGNfc3Rh dGUtPmh3LmFkanVzdGVkX21vZGUgPSBjcnRjX3N0YXRlLT51YXBpLmFkanVzdGVkX21vZGU7CiAJ Y3J0Y19zdGF0ZS0+aHcuc2NhbGluZ19maWx0ZXIgPSBjcnRjX3N0YXRlLT51YXBpLnNjYWxpbmdf ZmlsdGVyOworCiAJaW50ZWxfY3J0Y19jb3B5X3VhcGlfdG9faHdfc3RhdGVfbm9tb2Rlc2V0KGNy dGNfc3RhdGUpOwogfQogCkBAIC0xMzY2Myw2ICsxMzY2Niw5IEBAIGludGVsX21vZGVzZXRfcGlw ZV9jb25maWcoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnKQogCQkgICAgImh3 IG1heCBicHA6ICVpLCBwaXBlIGJwcDogJWksIGRpdGhlcmluZzogJWlcbiIsCiAJCSAgICBiYXNl X2JwcCwgcGlwZV9jb25maWctPnBpcGVfYnBwLCBwaXBlX2NvbmZpZy0+ZGl0aGVyKTsKIAorCS8q IHdpdGhvdXQgYmlnam9pbmVyLCBwaXBlX21vZGUgPT0gYWRqdXN0ZWRfbW9kZSAqLworCXBpcGVf Y29uZmlnLT5ody5waXBlX21vZGUgPSBwaXBlX2NvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKKwog CXJldHVybiAwOwogfQogCkBAIC0xODkyMCw2ICsxODkyNiw4IEBAIHN0YXRpYyB2b2lkIGludGVs X21vZGVzZXRfcmVhZG91dF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQkJICov CiAJCQljcnRjX3N0YXRlLT5pbmhlcml0ZWQgPSB0cnVlOwogCisJCQljcnRjX3N0YXRlLT5ody5w aXBlX21vZGUgPSBjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOworCiAJCQlpbnRlbF9jcnRj X2NvbXB1dGVfcGl4ZWxfcmF0ZShjcnRjX3N0YXRlKTsKIAogCQkJaW50ZWxfY3J0Y191cGRhdGVf YWN0aXZlX3RpbWluZ3MoY3J0Y19zdGF0ZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCmluZGV4IGY2ZjA2MjY2NDllMC4uYjUyNmFm ZWU1OTVjIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rp c3BsYXlfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rp c3BsYXlfdHlwZXMuaApAQCAtODE3LDE1ICs4MTcsMjIgQEAgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgewogCSAqIFRoZSBmb2xsb3dpbmcgbWVtYmVycyBhcmUgdXNlZCB0byB2ZXJpZnkgdGhlIGhh cmR3YXJlIHN0YXRlOgogCSAqIC0gZW5hYmxlCiAJICogLSBhY3RpdmUKLQkgKiAtIG1vZGUgLyBh ZGp1c3RlZF9tb2RlCisJICogLSBtb2RlL2FkanVzdGVkX21vZGUKIAkgKiAtIGNvbG9yIHByb3Bl cnR5IGJsb2JzLgogCSAqCiAJICogRHVyaW5nIGluaXRpYWwgaHcgcmVhZG91dCwgdGhleSBuZWVk IHRvIGJlIGNvcGllZCB0byB1YXBpLgorCSAqCisJICogQmlnam9pbmVyIHdpbGwgYWxsb3cgYSB0 cmFuc2NvZGVyIG1vZGUgdGhhdCBzcGFucyAyIHBpcGVzOworCSAqIFVzZSB0aGUgcGlwZV9tb2Rl IGZvciBjYWxjdWxhdGlvbnMgbGlrZSB3YXRlcm1hcmtzLCBwaXBlCisJICogc2NhbGVyLCBhbmQg YmFuZHdpZHRoLgorCSAqCisJICogVXNlIGFkanVzdGVkX21vZGUgZm9yIHRoaW5ncyB0aGF0IG5l ZWQgdG8ga25vdyB0aGUgZnVsbAorCSAqIG1vZGUgb24gdGhlIHRyYW5zY29kZXIsIHdoaWNoIHNw YW5zIGFsbCBwaXBlcy4KIAkgKi8KIAlzdHJ1Y3QgewogCQlib29sIGFjdGl2ZSwgZW5hYmxlOwog CQlzdHJ1Y3QgZHJtX3Byb3BlcnR5X2Jsb2IgKmRlZ2FtbWFfbHV0LCAqZ2FtbWFfbHV0LCAqY3Rt OwotCQlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBtb2RlLCBhZGp1c3RlZF9tb2RlOworCQlzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSBtb2RlLCBwaXBlX21vZGUsIGFkanVzdGVkX21vZGU7CiAJCWVu dW0gZHJtX3NjYWxpbmdfZmlsdGVyIHNjYWxpbmdfZmlsdGVyOwogCX0gaHc7CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9wbS5jCmluZGV4IGY1NDM3NWIxMTk2NC4uOTg5OGMyNTdkM2UwIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmMKQEAgLTg5OSwxMiArODk5LDEyIEBAIHN0YXRpYyB2b2lkIHBudl91cGRh dGVfd20oc3RydWN0IGludGVsX2NydGMgKnVudXNlZF9jcnRjKQogCiAJY3J0YyA9IHNpbmdsZV9l bmFibGVkX2NydGMoZGV2X3ByaXYpOwogCWlmIChjcnRjKSB7Ci0JCWNvbnN0IHN0cnVjdCBkcm1f ZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJCSZjcnRjLT5jb25maWctPmh3LmFkanVz dGVkX21vZGU7CisJCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpwaXBlX21vZGUgPQor CQkJJmNydGMtPmNvbmZpZy0+aHcucGlwZV9tb2RlOwogCQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiA9CiAJCQljcnRjLT5iYXNlLnByaW1hcnktPnN0YXRlLT5mYjsKIAkJaW50IGNw cCA9IGZiLT5mb3JtYXQtPmNwcFswXTsKLQkJaW50IGNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+Y3J0 Y19jbG9jazsKKwkJaW50IGNsb2NrID0gcGlwZV9tb2RlLT5jcnRjX2Nsb2NrOwogCiAJCS8qIERp c3BsYXkgU1IgKi8KIAkJd20gPSBpbnRlbF9jYWxjdWxhdGVfd20oY2xvY2ssICZwbnZfZGlzcGxh eV93bSwKQEAgLTExMzUsOCArMTEzNSw4IEBAIHN0YXRpYyB1MTYgZzR4X2NvbXB1dGVfd20oY29u c3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiB7CiAJc3RydWN0IGludGVs X3BsYW5lICpwbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lX3N0YXRlLT51YXBpLnBsYW5lKTsK IAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHBsYW5lLT5iYXNl LmRldik7Ci0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGUgPQot CQkmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqcGlwZV9tb2RlID0KKwkJJmNydGNfc3RhdGUtPmh3LnBpcGVfbW9kZTsKIAl1bnNp Z25lZCBpbnQgbGF0ZW5jeSA9IGRldl9wcml2LT53bS5wcmlfbGF0ZW5jeVtsZXZlbF0gKiAxMDsK IAl1bnNpZ25lZCBpbnQgY2xvY2ssIGh0b3RhbCwgY3BwLCB3aWR0aCwgd207CiAKQEAgLTExNjMs OCArMTE2Myw4IEBAIHN0YXRpYyB1MTYgZzR4X2NvbXB1dGVfd20oY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJICAgIGxldmVsICE9IEc0WF9XTV9MRVZFTF9OT1JN QUwpCiAJCWNwcCA9IG1heChjcHAsIDR1KTsKIAotCWNsb2NrID0gYWRqdXN0ZWRfbW9kZS0+Y3J0 Y19jbG9jazsKLQlodG90YWwgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2h0b3RhbDsKKwljbG9jayA9 IHBpcGVfbW9kZS0+Y3J0Y19jbG9jazsKKwlodG90YWwgPSBwaXBlX21vZGUtPmNydGNfaHRvdGFs OwogCiAJd2lkdGggPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPnVhcGkuZHN0KTsKIApA QCAtMTY2MCw4ICsxNjYwLDggQEAgc3RhdGljIHUxNiB2bHZfY29tcHV0ZV93bV9sZXZlbChjb25z dCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKIHsKIAlzdHJ1Y3QgaW50ZWxf cGxhbmUgKnBsYW5lID0gdG9faW50ZWxfcGxhbmUocGxhbmVfc3RhdGUtPnVhcGkucGxhbmUpOwog CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUocGxhbmUtPmJhc2Uu ZGV2KTsKLQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZSA9Ci0J CSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOworCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxh eV9tb2RlICpwaXBlX21vZGUgPQorCQkmY3J0Y19zdGF0ZS0+aHcucGlwZV9tb2RlOwogCXVuc2ln bmVkIGludCBjbG9jaywgaHRvdGFsLCBjcHAsIHdpZHRoLCB3bTsKIAogCWlmIChkZXZfcHJpdi0+ d20ucHJpX2xhdGVuY3lbbGV2ZWxdID09IDApCkBAIC0xNjcxLDggKzE2NzEsOCBAQCBzdGF0aWMg dTE2IHZsdl9jb21wdXRlX3dtX2xldmVsKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlLAogCQlyZXR1cm4gMDsKIAogCWNwcCA9IHBsYW5lX3N0YXRlLT5ody5mYi0+Zm9y bWF0LT5jcHBbMF07Ci0JY2xvY2sgPSBhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrOwotCWh0b3Rh bCA9IGFkanVzdGVkX21vZGUtPmNydGNfaHRvdGFsOworCWNsb2NrID0gcGlwZV9tb2RlLT5jcnRj X2Nsb2NrOworCWh0b3RhbCA9IHBpcGVfbW9kZS0+Y3J0Y19odG90YWw7CiAJd2lkdGggPSBjcnRj X3N0YXRlLT5waXBlX3NyY193OwogCiAJaWYgKHBsYW5lLT5pZCA9PSBQTEFORV9DVVJTT1IpIHsK QEAgLTIyNjEsMTIgKzIyNjEsMTIgQEAgc3RhdGljIHZvaWQgaTk2NV91cGRhdGVfd20oc3RydWN0 IGludGVsX2NydGMgKnVudXNlZF9jcnRjKQogCWlmIChjcnRjKSB7CiAJCS8qIHNlbGYtcmVmcmVz aCBoYXMgbXVjaCBoaWdoZXIgbGF0ZW5jeSAqLwogCQlzdGF0aWMgY29uc3QgaW50IHNyX2xhdGVu Y3lfbnMgPSAxMjAwMDsKLQkJY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVk X21vZGUgPQotCQkJJmNydGMtPmNvbmZpZy0+aHcuYWRqdXN0ZWRfbW9kZTsKKwkJY29uc3Qgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgKnBpcGVfbW9kZSA9CisJCQkmY3J0Yy0+Y29uZmlnLT5ody5w aXBlX21vZGU7CiAJCWNvbnN0IHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiID0KIAkJCWNydGMt PmJhc2UucHJpbWFyeS0+c3RhdGUtPmZiOwotCQlpbnQgY2xvY2sgPSBhZGp1c3RlZF9tb2RlLT5j cnRjX2Nsb2NrOwotCQlpbnQgaHRvdGFsID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19odG90YWw7CisJ CWludCBjbG9jayA9IHBpcGVfbW9kZS0+Y3J0Y19jbG9jazsKKwkJaW50IGh0b3RhbCA9IHBpcGVf bW9kZS0+Y3J0Y19odG90YWw7CiAJCWludCBoZGlzcGxheSA9IGNydGMtPmNvbmZpZy0+cGlwZV9z cmNfdzsKIAkJaW50IGNwcCA9IGZiLT5mb3JtYXQtPmNwcFswXTsKIAkJaW50IGVudHJpZXM7CkBA IC0yMzQ1LDggKzIzNDUsOCBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0ZV93bShzdHJ1Y3QgaW50 ZWxfY3J0YyAqdW51c2VkX2NydGMpCiAJZmlmb19zaXplID0gZGV2X3ByaXYtPmRpc3BsYXkuZ2V0 X2ZpZm9fc2l6ZShkZXZfcHJpdiwgUExBTkVfQSk7CiAJY3J0YyA9IGludGVsX2dldF9jcnRjX2Zv cl9wbGFuZShkZXZfcHJpdiwgUExBTkVfQSk7CiAJaWYgKGludGVsX2NydGNfYWN0aXZlKGNydGMp KSB7Ci0JCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJ CSZjcnRjLT5jb25maWctPmh3LmFkanVzdGVkX21vZGU7CisJCWNvbnN0IHN0cnVjdCBkcm1fZGlz cGxheV9tb2RlICpwaXBlX21vZGUgPQorCQkJJmNydGMtPmNvbmZpZy0+aHcucGlwZV9tb2RlOwog CQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9CiAJCQljcnRjLT5iYXNlLnByaW1h cnktPnN0YXRlLT5mYjsKIAkJaW50IGNwcDsKQEAgLTIzNTYsNyArMjM1Niw3IEBAIHN0YXRpYyB2 b2lkIGk5eHhfdXBkYXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjICp1bnVzZWRfY3J0YykKIAkJZWxz ZQogCQkJY3BwID0gZmItPmZvcm1hdC0+Y3BwWzBdOwogCi0JCXBsYW5lYV93bSA9IGludGVsX2Nh bGN1bGF0ZV93bShhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAorCQlwbGFuZWFfd20gPSBpbnRl bF9jYWxjdWxhdGVfd20ocGlwZV9tb2RlLT5jcnRjX2Nsb2NrLAogCQkJCQkgICAgICAgd21faW5m bywgZmlmb19zaXplLCBjcHAsCiAJCQkJCSAgICAgICBwZXNzaW1hbF9sYXRlbmN5X25zKTsKIAkJ ZW5hYmxlZCA9IGNydGM7CkBAIC0yMzcyLDggKzIzNzIsOCBAQCBzdGF0aWMgdm9pZCBpOXh4X3Vw ZGF0ZV93bShzdHJ1Y3QgaW50ZWxfY3J0YyAqdW51c2VkX2NydGMpCiAJZmlmb19zaXplID0gZGV2 X3ByaXYtPmRpc3BsYXkuZ2V0X2ZpZm9fc2l6ZShkZXZfcHJpdiwgUExBTkVfQik7CiAJY3J0YyA9 IGludGVsX2dldF9jcnRjX2Zvcl9wbGFuZShkZXZfcHJpdiwgUExBTkVfQik7CiAJaWYgKGludGVs X2NydGNfYWN0aXZlKGNydGMpKSB7Ci0JCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICph ZGp1c3RlZF9tb2RlID0KLQkJCSZjcnRjLT5jb25maWctPmh3LmFkanVzdGVkX21vZGU7CisJCWNv bnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICpwaXBlX21vZGUgPQorCQkJJmNydGMtPmNvbmZp Zy0+aHcucGlwZV9tb2RlOwogCQljb25zdCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9CiAJ CQljcnRjLT5iYXNlLnByaW1hcnktPnN0YXRlLT5mYjsKIAkJaW50IGNwcDsKQEAgLTIzODMsNyAr MjM4Myw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfdXBkYXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjICp1 bnVzZWRfY3J0YykKIAkJZWxzZQogCQkJY3BwID0gZmItPmZvcm1hdC0+Y3BwWzBdOwogCi0JCXBs YW5lYl93bSA9IGludGVsX2NhbGN1bGF0ZV93bShhZGp1c3RlZF9tb2RlLT5jcnRjX2Nsb2NrLAor CQlwbGFuZWJfd20gPSBpbnRlbF9jYWxjdWxhdGVfd20ocGlwZV9tb2RlLT5jcnRjX2Nsb2NrLAog CQkJCQkgICAgICAgd21faW5mbywgZmlmb19zaXplLCBjcHAsCiAJCQkJCSAgICAgICBwZXNzaW1h bF9sYXRlbmN5X25zKTsKIAkJaWYgKGVuYWJsZWQgPT0gTlVMTCkKQEAgLTI0MjEsMTIgKzI0MjEs MTIgQEAgc3RhdGljIHZvaWQgaTl4eF91cGRhdGVfd20oc3RydWN0IGludGVsX2NydGMgKnVudXNl ZF9jcnRjKQogCWlmIChIQVNfRldfQkxDKGRldl9wcml2KSAmJiBlbmFibGVkKSB7CiAJCS8qIHNl bGYtcmVmcmVzaCBoYXMgbXVjaCBoaWdoZXIgbGF0ZW5jeSAqLwogCQlzdGF0aWMgY29uc3QgaW50 IHNyX2xhdGVuY3lfbnMgPSA2MDAwOwotCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq YWRqdXN0ZWRfbW9kZSA9Ci0JCQkmZW5hYmxlZC0+Y29uZmlnLT5ody5hZGp1c3RlZF9tb2RlOwor CQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqcGlwZV9tb2RlID0KKwkJCSZlbmFibGVk LT5jb25maWctPmh3LnBpcGVfbW9kZTsKIAkJY29uc3Qgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAq ZmIgPQogCQkJZW5hYmxlZC0+YmFzZS5wcmltYXJ5LT5zdGF0ZS0+ZmI7Ci0JCWludCBjbG9jayA9 IGFkanVzdGVkX21vZGUtPmNydGNfY2xvY2s7Ci0JCWludCBodG90YWwgPSBhZGp1c3RlZF9tb2Rl LT5jcnRjX2h0b3RhbDsKKwkJaW50IGNsb2NrID0gcGlwZV9tb2RlLT5jcnRjX2Nsb2NrOworCQlp bnQgaHRvdGFsID0gcGlwZV9tb2RlLT5jcnRjX2h0b3RhbDsKIAkJaW50IGhkaXNwbGF5ID0gZW5h YmxlZC0+Y29uZmlnLT5waXBlX3NyY193OwogCQlpbnQgY3BwOwogCQlpbnQgZW50cmllczsKQEAg LTI0NzQsNyArMjQ3NCw3IEBAIHN0YXRpYyB2b2lkIGk4NDVfdXBkYXRlX3dtKHN0cnVjdCBpbnRl bF9jcnRjICp1bnVzZWRfY3J0YykKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KHVudXNlZF9jcnRjLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2NydGMg KmNydGM7Ci0JY29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmFkanVzdGVkX21vZGU7CisJ Y29uc3Qgc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKnBpcGVfbW9kZTsKIAl1MzIgZndhdGVyX2xv OwogCWludCBwbGFuZWFfd207CiAKQEAgLTI0ODIsOCArMjQ4Miw4IEBAIHN0YXRpYyB2b2lkIGk4 NDVfdXBkYXRlX3dtKHN0cnVjdCBpbnRlbF9jcnRjICp1bnVzZWRfY3J0YykKIAlpZiAoY3J0YyA9 PSBOVUxMKQogCQlyZXR1cm47CiAKLQlhZGp1c3RlZF9tb2RlID0gJmNydGMtPmNvbmZpZy0+aHcu YWRqdXN0ZWRfbW9kZTsKLQlwbGFuZWFfd20gPSBpbnRlbF9jYWxjdWxhdGVfd20oYWRqdXN0ZWRf bW9kZS0+Y3J0Y19jbG9jaywKKwlwaXBlX21vZGUgPSAmY3J0Yy0+Y29uZmlnLT5ody5waXBlX21v ZGU7CisJcGxhbmVhX3dtID0gaW50ZWxfY2FsY3VsYXRlX3dtKHBpcGVfbW9kZS0+Y3J0Y19jbG9j aywKIAkJCQkgICAgICAgJmk4NDVfd21faW5mbywKIAkJCQkgICAgICAgZGV2X3ByaXYtPmRpc3Bs YXkuZ2V0X2ZpZm9fc2l6ZShkZXZfcHJpdiwgUExBTkVfQSksCiAJCQkJICAgICAgIDQsIHBlc3Np bWFsX2xhdGVuY3lfbnMpOwpAQCAtMjU3Myw3ICsyNTczLDcgQEAgc3RhdGljIHUzMiBpbGtfY29t cHV0ZV9wcmlfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAJ CXJldHVybiBtZXRob2QxOwogCiAJbWV0aG9kMiA9IGlsa193bV9tZXRob2QyKGNydGNfc3RhdGUt PnBpeGVsX3JhdGUsCi0JCQkJIGNydGNfc3RhdGUtPmh3LmFkanVzdGVkX21vZGUuY3J0Y19odG90 YWwsCisJCQkJIGNydGNfc3RhdGUtPmh3LnBpcGVfbW9kZS5jcnRjX2h0b3RhbCwKIAkJCQkgZHJt X3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT51YXBpLmRzdCksCiAJCQkJIGNwcCwgbWVtX3ZhbHVl KTsKIApAQCAtMjYwMSw3ICsyNjAxLDcgQEAgc3RhdGljIHUzMiBpbGtfY29tcHV0ZV9zcHJfd20o Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCiAKIAltZXRob2QxID0g aWxrX3dtX21ldGhvZDEoY3J0Y19zdGF0ZS0+cGl4ZWxfcmF0ZSwgY3BwLCBtZW1fdmFsdWUpOwog CW1ldGhvZDIgPSBpbGtfd21fbWV0aG9kMihjcnRjX3N0YXRlLT5waXhlbF9yYXRlLAotCQkJCSBj cnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsLAorCQkJCSBjcnRjX3N0YXRl LT5ody5waXBlX21vZGUuY3J0Y19odG90YWwsCiAJCQkJIGRybV9yZWN0X3dpZHRoKCZwbGFuZV9z dGF0ZS0+dWFwaS5kc3QpLAogCQkJCSBjcHAsIG1lbV92YWx1ZSk7CiAJcmV0dXJuIG1pbihtZXRo b2QxLCBtZXRob2QyKTsKQEAgLTI2MjYsNyArMjYyNiw3IEBAIHN0YXRpYyB1MzIgaWxrX2NvbXB1 dGVfY3VyX3dtKGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAogCWNw cCA9IHBsYW5lX3N0YXRlLT5ody5mYi0+Zm9ybWF0LT5jcHBbMF07CiAKIAlyZXR1cm4gaWxrX3dt X21ldGhvZDIoY3J0Y19zdGF0ZS0+cGl4ZWxfcmF0ZSwKLQkJCSAgICAgIGNydGNfc3RhdGUtPmh3 LmFkanVzdGVkX21vZGUuY3J0Y19odG90YWwsCisJCQkgICAgICBjcnRjX3N0YXRlLT5ody5waXBl X21vZGUuY3J0Y19odG90YWwsCiAJCQkgICAgICBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUt PnVhcGkuZHN0KSwKIAkJCSAgICAgIGNwcCwgbWVtX3ZhbHVlKTsKIH0KQEAgLTM4ODMsNyArMzg4 Myw3IEBAIHN0YXRpYyBib29sIHNrbF9jcnRjX2Nhbl9lbmFibGVfc2Fndihjb25zdCBzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIAlpZiAoIWNydGNfc3RhdGUtPmh3LmFjdGl2 ZSkKIAkJcmV0dXJuIHRydWU7CiAKLQlpZiAoY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5m bGFncyAmIERSTV9NT0RFX0ZMQUdfSU5URVJMQUNFKQorCWlmIChjcnRjX3N0YXRlLT5ody5waXBl X21vZGUuZmxhZ3MgJiBEUk1fTU9ERV9GTEFHX0lOVEVSTEFDRSkKIAkJcmV0dXJuIGZhbHNlOwog CiAJaW50ZWxfYXRvbWljX2NydGNfc3RhdGVfZm9yX2VhY2hfcGxhbmVfc3RhdGUocGxhbmUsIHBs YW5lX3N0YXRlLCBjcnRjX3N0YXRlKSB7CkBAIC00MTc0LDggKzQxNzQsOCBAQCBza2xfZGRiX2dl dF9waXBlX2FsbG9jYXRpb25fbGltaXRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diwKIAkgKi8KIAl0b3RhbF9zbGljZV9tYXNrID0gZGJ1Zl9zbGljZV9tYXNrOwogCWZvcl9lYWNo X25ld19pbnRlbF9jcnRjX2luX3N0YXRlKGludGVsX3N0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBp KSB7Ci0JCWNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlID0KLQkJ CSZjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlOworCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3Bs YXlfbW9kZSAqcGlwZV9tb2RlID0KKwkJCSZjcnRjX3N0YXRlLT5ody5waXBlX21vZGU7CiAJCWVu dW0gcGlwZSBwaXBlID0gY3J0Yy0+cGlwZTsKIAkJaW50IGhkaXNwbGF5LCB2ZGlzcGxheTsKIAkJ dTMyIHBpcGVfZGJ1Zl9zbGljZV9tYXNrOwpAQCAtNDIwNSw3ICs0MjA1LDcgQEAgc2tsX2RkYl9n ZXRfcGlwZV9hbGxvY2F0aW9uX2xpbWl0cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYsCiAJCWlmIChkYnVmX3NsaWNlX21hc2sgIT0gcGlwZV9kYnVmX3NsaWNlX21hc2spCiAJCQlj b250aW51ZTsKIAotCQlkcm1fbW9kZV9nZXRfaHZfdGltaW5nKGFkanVzdGVkX21vZGUsICZoZGlz cGxheSwgJnZkaXNwbGF5KTsKKwkJZHJtX21vZGVfZ2V0X2h2X3RpbWluZyhwaXBlX21vZGUsICZo ZGlzcGxheSwgJnZkaXNwbGF5KTsKIAogCQl0b3RhbF93aWR0aF9pbl9yYW5nZSArPSBoZGlzcGxh eTsKIApAQCAtNTA5Myw3ICs1MDkzLDcgQEAgaW50ZWxfZ2V0X2xpbmV0aW1lX3VzKGNvbnN0IHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQogCWlmIChkcm1fV0FSTl9PTigmZGV2 X3ByaXYtPmRybSwgcGl4ZWxfcmF0ZSA9PSAwKSkKIAkJcmV0dXJuIHUzMl90b19maXhlZDE2KDAp OwogCi0JY3J0Y19odG90YWwgPSBjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaHRv dGFsOworCWNydGNfaHRvdGFsID0gY3J0Y19zdGF0ZS0+aHcucGlwZV9tb2RlLmNydGNfaHRvdGFs OwogCWxpbmV0aW1lX3VzID0gZGl2X2ZpeGVkMTYoY3J0Y19odG90YWwgKiAxMDAwLCBwaXhlbF9y YXRlKTsKIAogCXJldHVybiBsaW5ldGltZV91czsKQEAgLTUyODIsMTQgKzUyODIsMTQgQEAgc3Rh dGljIHZvaWQgc2tsX2NvbXB1dGVfcGxhbmVfd20oY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUsCiAJbWV0aG9kMSA9IHNrbF93bV9tZXRob2QxKGRldl9wcml2LCB3cC0+ cGxhbmVfcGl4ZWxfcmF0ZSwKIAkJCQkgd3AtPmNwcCwgbGF0ZW5jeSwgd3AtPmRidWZfYmxvY2tf c2l6ZSk7CiAJbWV0aG9kMiA9IHNrbF93bV9tZXRob2QyKHdwLT5wbGFuZV9waXhlbF9yYXRlLAot CQkJCSBjcnRjX3N0YXRlLT5ody5hZGp1c3RlZF9tb2RlLmNydGNfaHRvdGFsLAorCQkJCSBjcnRj X3N0YXRlLT5ody5waXBlX21vZGUuY3J0Y19odG90YWwsCiAJCQkJIGxhdGVuY3ksCiAJCQkJIHdw LT5wbGFuZV9ibG9ja3NfcGVyX2xpbmUpOwogCiAJaWYgKHdwLT55X3RpbGVkKSB7CiAJCXNlbGVj dGVkX3Jlc3VsdCA9IG1heF9maXhlZDE2KG1ldGhvZDIsIHdwLT55X3RpbGVfbWluaW11bSk7CiAJ fSBlbHNlIHsKLQkJaWYgKCh3cC0+Y3BwICogY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZS5j cnRjX2h0b3RhbCAvCisJCWlmICgod3AtPmNwcCAqIGNydGNfc3RhdGUtPmh3LnBpcGVfbW9kZS5j cnRjX2h0b3RhbCAvCiAJCSAgICAgd3AtPmRidWZfYmxvY2tfc2l6ZSA8IDEpICYmCiAJCSAgICAg KHdwLT5wbGFuZV9ieXRlc19wZXJfbGluZSAvIHdwLT5kYnVmX2Jsb2NrX3NpemUgPCAxKSkgewog CQkJc2VsZWN0ZWRfcmVzdWx0ID0gbWV0aG9kMjsKLS0gCjIuMTkuMQoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJ bnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==