From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.8 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, 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 905BDC35E01 for ; Tue, 25 Feb 2020 15:03:47 +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 6BF5C2082F for ; Tue, 25 Feb 2020 15:03:47 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6BF5C2082F 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 08F466EB18; Tue, 25 Feb 2020 15:03:47 +0000 (UTC) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id 933256EB18 for ; Tue, 25 Feb 2020 15:03:45 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Feb 2020 07:03:44 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,484,1574150400"; d="scan'208";a="231479805" Received: from slisovsk-lenovo-ideapad-720s-13ikb.fi.intel.com ([10.237.72.89]) by fmsmga008.fm.intel.com with ESMTP; 25 Feb 2020 07:03:43 -0800 From: Stanislav Lisovskiy To: intel-gfx@lists.freedesktop.org Date: Tue, 25 Feb 2020 17:00:43 +0200 Message-Id: <20200225150043.32475-1-stanislav.lisovskiy@intel.com> X-Mailer: git-send-email 2.24.1.485.gad05a3d8e5 In-Reply-To: <20200224153240.9047-8-stanislav.lisovskiy@intel.com> References: <20200224153240.9047-8-stanislav.lisovskiy@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v18 7/8] drm/i915: Restrict qgv points which don't have enough bandwidth. 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" QWNjb3JkaW5nIHRvIEJTcGVjIDUzOTk4LCB3ZSBzaG91bGQgdHJ5IHRvCnJlc3RyaWN0IHFndiBw b2ludHMsIHdoaWNoIGNhbid0IHByb3ZpZGUKZW5vdWdoIGJhbmR3aWR0aCBmb3IgZGVzaXJlZCBk aXNwbGF5IGNvbmZpZ3VyYXRpb24uCgpDdXJyZW50bHkgd2UgYXJlIGp1c3QgY29tcGFyaW5nIGFn YWluc3QgYWxsIG9mCnRob3NlIGFuZCB0YWtlIG1pbmltdW0od29yc3QgY2FzZSkuCgp2MjogRml4 ZWQgd3JvbmcgUENvZGUgcmVwbHkgbWFzaywgcmVtb3ZlZCBoYXJkY29kZWQKICAgIHZhbHVlcy4K CnYzOiBGb3JiaWQgc2ltdWx0YW5lb3VzIGxlZ2FjeSBTQUdWIFBDb2RlIHJlcXVlc3RzIGFuZAog ICAgcmVzdHJpY3RpbmcgcWd2IHBvaW50cy4gUHV0IHRoZSBhY3R1YWwgcmVzdHJpY3Rpb24KICAg IHRvIGNvbW1pdCBmdW5jdGlvbiwgYWRkZWQgc2VyaWFsaXphdGlvbih0aGFua3MgdG8gVmlsbGUp CiAgICB0byBwcmV2ZW50IGNvbW1pdCBiZWluZyBhcHBsaWVkIG91dCBvZiBvcmRlciBpbiBjYXNl IG9mCiAgICBub25ibG9ja2luZyBhbmQvb3Igbm9tb2Rlc2V0IGNvbW1pdHMuCgp2NDoKICAgIC0g TWlub3IgY29kZSByZWZhY3RvcmluZywgZml4ZWQgZmV3IHR5cG9zKHRoYW5rcyB0byBKYW1lcyBB dXNtdXMpCiAgICAtIENoYW5nZSB0aGUgbmFtaW5nIG9mIHFndiBwb2ludAogICAgICBtYXNraW5n L3VubWFza2luZyBmdW5jdGlvbnMoSmFtZXMgQXVzbXVzKS4KICAgIC0gU2ltcGxpZnkgdGhlIG1h c2tpbmcvdW5tYXNraW5nIG9wZXJhdGlvbiBpdHNlbGYsCiAgICAgIGFzIHdlIGRvbid0IG5lZWQg dG8gbWFzayBvbmx5IHNpbmdsZSBwb2ludCBwZXIgcmVxdWVzdChKYW1lcyBBdXNtdXMpCiAgICAt IFJlamVjdCBhbmQgc3RpY2sgdG8gaGlnaGVzdCBiYW5kd2lkdGggcG9pbnQgaWYgU0FHVgogICAg ICBjYW4ndCBiZSBlbmFibGVkKEJTcGVjKQoKdjU6CiAgICAtIEFkZCBuZXcgbWFpbGJveCByZXBs eSBjb2Rlcywgd2hpY2ggc2VlbXMgdG8gaGFwcGVuIGR1cmluZyBib290CiAgICAgIHRpbWUgZm9y IFRHTCBhbmQgaW5kaWNhdGUgdGhhdCBRR1Ygc2V0dGluZyBpcyBub3QgeWV0IGF2YWlsYWJsZS4K CnY2OgogICAgLSBJbmNyZWFzZSBudW1iZXIgb2Ygc3VwcG9ydGVkIFFHViBwb2ludHMgdG8gYmUg aW4gc3luYyB3aXRoIEJTcGVjLgoKdjc6IC0gUmViYXNlZCBhbmQgcmVzb2x2ZWQgY29uZmxpY3Qg dG8gZml4IGJ1aWxkIGZhaWx1cmUuCiAgICAtIEZpeCBOVU1fUUdWX1BPSU5UUyB0byA4IGFuZCBt b3ZlZCB0aGF0IHRvIGhlYWRlciBmaWxlKEphbWVzIEF1c211cykKCnY4OiAtIERvbid0IHJlcG9y dCBhbiBlcnJvciBpZiB3ZSBjYW4ndCByZXN0cmljdCBxZ3YgcG9pbnRzLCBhcyBTQUdWCiAgICAg IGNhbiBiZSBkaXNhYmxlZCBieSBCSU9TLCB3aGljaCBpcyBjb21wbGV0ZWx5IGxlZ2FsLiBTbyBk b24ndAogICAgICBtYWtlIENJIHBhbmljLiBJbnN0ZWFkIGlmIHdlIGRldGVjdCB0aGF0IHRoZXJl IGlzIG9ubHkgMSBRR1YKICAgICAgcG9pbnQgYWNjZXNzaWJsZSBqdXN0IGFuYWx5emUgaWYgd2Ug Y2FuIGZpdCB0aGUgcmVxdWlyZWQgYmFuZHdpZHRoCiAgICAgIHJlcXVpcmVtZW50cywgYnV0IG5v IG5lZWQgaW4gcmVzdHJpY3RpbmcuCgp2OTogLSBGaXggd3JvbmcgUUdWIHRyYW5zaXRpb24gaWYg d2UgaGF2ZSAwIHBsYW5lcyBhbmQgbm8gU0FHVgogICAgICBzaW11bHRhbmVvdXNseS4KCnYxMDog LSBGaXggQ0RDTEsgY29ycnVwdGlvbiwgYmVjYXVzZSBvZiBnbG9iYWwgc3RhdGUgZ2V0dGluZyBz ZXJpYWxpemVkCiAgICAgICB3aXRob3V0IG1vZGVzZXQsIHdoaWNoIGNhdXNlZCBjb3B5aW5nIG9m IG5vbi1jYWxjdWxhdGVkIGNkY2xrCiAgICAgICB0byBiZSBjb3BpZWQgdG8gZGV2X3ByaXYodGhh bmtzIHRvIFZpbGxlIGZvciB0aGUgaGludCkuCgp2MTE6IC0gUmVtb3ZlIHVubmVlZGVkIGhlYWRl cnMgYW5kIHNwYWNlcyhNYXR0aGV3IFJvcGVyKQogICAgIC0gUmVtb3ZlIHVubmVlZGVkIGludGVs X3Fndl9pbmZvIHFpIHN0cnVjdCBmcm9tIGJ3IGNoZWNrIGFuZCB6ZXJvCiAgICAgICBvdXQgdGhl IG5lZWRlZCBvbmUoTWF0dGhldyBSb3BlcikKICAgICAtIENoYW5nZWQgUUdWIGVycm9yIG1lc3Nh Z2UgdG8gaGF2ZSBtb3JlIGNsZWFyIG1lYW5pbmcoTWF0dGhldyBSb3BlcikKICAgICAtIFVzZSBz dGF0ZS0+bW9kZXNldF9zZXQgaW5zdGVhZCBvZiBhbnlfbXMoTWF0dGhldyBSb3BlcikKICAgICAt IE1vdmVkIE5VTV9TQUdWX1BPSU5UUyBmcm9tIGk5MTVfcmVnLmggdG8gaTkxNV9kcnYuaCB3aGVy ZSBpdCdzIHVzZWQKICAgICAtIEtlZXAgdXNpbmcgY3J0Y19zdGF0ZS0+aHcuYWN0aXZlIGluc3Rl YWQgb2YgLmVuYWJsZShNYXR0aGV3IFJvcGVyKQogICAgIC0gTW92ZWQgdW5yZWxhdGVkIGNoYW5n ZXMgdG8gb3RoZXIgcGF0Y2godXNpbmcgbGF0ZW5jeSBhcyBwYXJhbWV0ZXIKICAgICAgIGZvciBw bGFuZSB3bSBjYWxjdWxhdGlvbiwgbW92ZWQgdG8gU0FHViByZWZhY3RvcmluZyBwYXRjaCkKCnYx MjogLSBGaXggcmViYXNlIGNvbmZsaWN0IHdpdGggb3duIHRlbXBvcmFyeSBTQUdWL1FHViBmaXgu CiAgICAgLSBSZW1vdmUgdW5uZWNlc3NhcnkgbWFzayBiZWluZyB6ZXJvIGNoZWNrIHdoZW4gdW5t YXNraW5nCiAgICAgICBxZ3YgcG9pbnRzIGFzIHRoaXMgaXMgY29tcGxldGVseSBsZWdhbChNYXR0 IFJvcGVyKQogICAgIC0gQ2hlY2sgaWYgd2UgYXJlIHNldHRpbmcgdGhlIHNhbWUgbWFzayBhcyBh bHJlYWR5IGJlaW5nIHNldAogICAgICAgaW4gaGFyZHdhcmUgdG8gcHJldmVudCBlcnJvciBmcm9t IFBDb2RlLgogICAgIC0gRml4IGVycm9yIG1lc3NhZ2Ugd2hlbiByZXN0cmljdGluZy91bnJlc3Ry aWN0aW5nIHFndiBwb2ludHMKICAgICAgIHRvICJtYXNrL3VubWFzayIgd2hpY2ggc291bmRzIG1v cmUgYWNjdXJhdGUoTWF0dCBSb3BlcikKICAgICAtIE1vdmUgc2FndiBzdGF0dXMgc2V0dGluZyB0 byBpY2xfZ2V0X2J3X2luZm8gZnJvbSBhdG9taWMgY2hlY2sKICAgICAgIGFzIHRoaXMgc2hvdWxk IGJlIGNhbGN1bGF0ZWQgb25seSBvbmNlLihNYXR0IFJvcGVyKQogICAgIC0gRWRpdGVkIGNvbW1l bnRzIGZvciB0aGUgY2FzZSB3aGVuIHdlIGNhbid0IGVuYWJsZSBTQUdWIGFuZAogICAgICAgdXNl IG9ubHkgMSBRR1YgcG9pbnQgd2l0aCBoaWdoZXN0IGJhbmR3aWR0aCB0byBiZSBtb3JlCiAgICAg ICB1bmRlcnN0YW5kYWJsZS4oTWF0dCBSb3BlcikKCnYxMzogLSBNb3ZlZCBtYXhfZGF0YV9yYXRl IGluIGJ3IGNoZWNrIHRvIGNsb3NlciBzY29wZShWaWxsZSBTeXJqw6Rsw6QpCiAgICAgLSBDaGFu Z2VkIGNvbW1lbnQgZm9yIHplcm8gbmV3X21hc2sgaW4gcWd2IHBvaW50cyBtYXNraW5nIGZ1bmN0 aW9uCiAgICAgICB0byBiZXR0ZXIgcmVmbGVjdCByZWFsaXR5KFZpbGxlIFN5cmrDpGzDpCkKICAg ICAtIFNpbXBsaWZpZWQgYml0IG1hc2sgb3BlcmF0aW9uIGluIHFndiBwb2ludHMgbWFza2luZyBm dW5jdGlvbgogICAgICAgKFZpbGxlIFN5cmrDpGzDpCkKICAgICAtIE1vdmVkIGludGVsX3Fndl9w b2ludHNfbWFzayBjbG9zZXIgdG8gZ2VuMTEgU0FHViBkaXNhYmxpbmcsCiAgICAgICBob3dldmVy IHRoaXMgc3RpbGwgY2FuJ3QgYmUgdW5kZXIgbW9kZXNldCBjb25kaXRpb24oVmlsbGUgU3lyasOk bMOkKQogICAgIC0gUGFja2VkIHFndl9wb2ludHNfbWFzayBhcyB1OCBhbmQgbW92ZWQgY2xvc2Vy IHRvIHBpcGVfc2Fndl9tYXNrCiAgICAgICAoVmlsbGUgU3lyasOkbMOkKQogICAgIC0gRXh0cmFj dGVkIFBDb2RlIGNoYW5nZXMgdG8gc2VwYXJhdGUgcGF0Y2guKFZpbGxlIFN5cmrDpGzDpCkKICAg ICAtIE5vdyB0cmVhdCBudW1fcGxhbmVzIDAgc2FtZSBhcyAxIHRvIGF2b2lkIGNvbmZ1c2lvbiBh bmQKICAgICAgIHJldHVybmluZyBtYXhfYncgYXMgMCwgd2hpY2ggd291bGQgcHJldmVudCBjaG9v c2luZyBRR1YKICAgICAgIHBvaW50IGhhdmluZyBtYXggYmFuZHdpZHRoIGluIGNhc2UgaWYgU0FH ViBpcyBub3QgYWxsb3dlZCwKICAgICAgIGFzIHBlciBCU3BlYyhWaWxsZSBTeXJqw6Rsw6QpCiAg ICAgLSBEbyB0aGUgYWN0dWFsIHFndl9wb2ludHNfbWFzayBzd2FwIGluIHRoZSBzYW1lIHBsYWNl IGFzCiAgICAgICBhbGwgb3RoZXIgZ2xvYmFsIHN0YXRlIHBhcnRzIGxpa2UgY2RjbGsgYXJlIHN3 YXBwZWQuCiAgICAgICBJbiB0aGUgbmV4dCBwYXRjaCwgdGhpcyBhbGwgd2lsbCBiZSBtb3ZlZCB0 byBidyBzdGF0ZSBhcwogICAgICAgZ2xvYmFsIHN0YXRlLCBvbmNlIG5ldyBnbG9iYWwgc3RhdGUg cGF0Y2ggc2VyaWVzIGZyb20gVmlsbGUKICAgICAgIGxhbmRzCgp2MTQ6IC0gTm93IHVzaW5nIGds b2JhbCBzdGF0ZSB0byBzZXJpYWxpemUgYWNjZXNzIHRvIHFndiBwb2ludHMKICAgICAtIEFkZGVk IGdsb2JhbCBzdGF0ZSBsb2NraW5nIGJhY2ssIG90aGVyd2lzZSB3ZSBzZWVtIHRvIHJlYWQKICAg ICAgIGJ3IHN0YXRlIGluIGEgd3Jvbmcgd2F5LgoKdjE1OiAtIEFkZGVkIFRPRE8gY29tbWVudCBm b3IgbmVhciBhdG9taWMgZ2xvYmFsIHN0YXRlIGxvY2tpbmcgaW4KICAgICAgIGJ3IGNvZGUuCgp2 MTY6IC0gRml4ZWQgaW50ZWxfYXRvbWljX2J3XyogZnVuY3Rpb25zIHRvIGJlIGludGVsX2J3Xyog YXMgZGlzY3Vzc2VkCiAgICAgICB3aXRoIEphbmkgTmlrdWxhLgogICAgIC0gVGFrZSBid19zdGF0 ZV9jaGFuZ2VkIGZsYWcgaW50byB1c2UuCgpTaWduZWQtb2ZmLWJ5OiBTdGFuaXNsYXYgTGlzb3Zz a2l5IDxzdGFuaXNsYXYubGlzb3Zza2l5QGludGVsLmNvbT4KQ2M6IFZpbGxlIFN5cmrDpGzDpCA8 dmlsbGUuc3lyamFsYUBpbnRlbC5jb20+CkNjOiBKYW1lcyBBdXNtdXMgPGphbWVzLmF1c211c0Bp bnRlbC5jb20+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9idy5jICAg ICAgfCAxODQgKysrKysrKysrKysrKy0tLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxh eS9pbnRlbF9idy5oICAgICAgfCAgIDkgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5LmMgfCAxMjUgKysrKysrKysrKysrLQogZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9kcnYuaCAgICAgICAgICAgICAgfCAgIDMgKwogNCBmaWxlcyBjaGFuZ2VkLCAyNTUgaW5z ZXJ0aW9ucygrKSwgNjYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9idy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9idy5jCmluZGV4IGQ1YmU2MDNiOGIwMy4uNDk4NmE1NDY0NzAwIDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2J3LmMKKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9idy5jCkBAIC04LDYgKzgsOSBAQAogI2luY2x1ZGUgImlu dGVsX2J3LmgiCiAjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogI2luY2x1ZGUgImlu dGVsX3NpZGViYW5kLmgiCisjaW5jbHVkZSAiaW50ZWxfYXRvbWljLmgiCisjaW5jbHVkZSAiaW50 ZWxfcG0uaCIKKwogCiAvKiBQYXJhbWV0ZXJzIGZvciBRY2xrIEdleXNlcnZpbGxlIChRR1YpICov CiBzdHJ1Y3QgaW50ZWxfcWd2X3BvaW50IHsKQEAgLTExMyw2ICsxMTYsMjYgQEAgc3RhdGljIGlu dCBpY2xfcGNvZGVfcmVhZF9xZ3ZfcG9pbnRfaW5mbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYsCiAJcmV0dXJuIDA7CiB9CiAKK2ludCBpY2xfcGNvZGVfcmVzdHJpY3RfcWd2X3Bv aW50cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJICB1MzIgcG9pbnRz X21hc2spCit7CisJaW50IHJldDsKKworCS8qIGJzcGVjIHNheXMgdG8ga2VlcCByZXRyeWluZyBm b3IgYXQgbGVhc3QgMSBtcyAqLworCXJldCA9IHNrbF9wY29kZV9yZXF1ZXN0KGRldl9wcml2LCBJ Q0xfUENPREVfU0FHVl9ERV9NRU1fU1NfQ09ORklHLAorCQkJCXBvaW50c19tYXNrLAorCQkJCUdF TjExX1BDT0RFX1BPSU5UU19SRVNUUklDVEVEX01BU0ssCisJCQkJR0VOMTFfUENPREVfUE9JTlRT X1JFU1RSSUNURUQsCisJCQkJMSk7CisKKwlpZiAocmV0IDwgMCkgeworCQlEUk1fRVJST1IoIkZh aWxlZCB0byBkaXNhYmxlIHFndiBwb2ludHMgKCVkKVxuIiwgcmV0KTsKKwkJcmV0dXJuIHJldDsK Kwl9CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBpY2xfZ2V0X3Fndl9wb2ludHMoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJICAgICAgc3RydWN0IGludGVsX3Fn dl9pbmZvICpxaSkKIHsKQEAgLTI0MCw2ICsyNjMsMTYgQEAgc3RhdGljIGludCBpY2xfZ2V0X2J3 X2luZm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBjb25zdCBzdHJ1Y3QgaW50 ZWwKIAkJCWJyZWFrOwogCX0KIAorCS8qCisJICogSW4gY2FzZSBpZiBTQUdWIGlzIGRpc2FibGVk IGluIEJJT1MsIHdlIGFsd2F5cyBnZXQgMQorCSAqIFNBR1YgcG9pbnQsIGJ1dCB3ZSBjYW4ndCBz ZW5kIFBDb2RlIGNvbW1hbmRzIHRvIHJlc3RyaWN0IGl0CisJICogYXMgaXQgd2lsbCBmYWlsIGFu ZCBwb2ludGxlc3MgYW55d2F5LgorCSAqLworCWlmIChxaS5udW1fcG9pbnRzID09IDEpCisJCWRl dl9wcml2LT5zYWd2X3N0YXR1cyA9IEk5MTVfU0FHVl9OT1RfQ09OVFJPTExFRDsKKwllbHNlCisJ CWRldl9wcml2LT5zYWd2X3N0YXR1cyA9IEk5MTVfU0FHVl9FTkFCTEVEOworCiAJcmV0dXJuIDA7 CiB9CiAKQEAgLTI1OSw3ICsyOTIsNyBAQCBzdGF0aWMgdW5zaWduZWQgaW50IGljbF9tYXhfYnco c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQlpZiAocWd2X3BvaW50ID49IGJp LT5udW1fcWd2X3BvaW50cykKIAkJCXJldHVybiBVSU5UX01BWDsKIAotCQlpZiAobnVtX3BsYW5l cyA+PSBiaS0+bnVtX3BsYW5lcykKKwkJaWYgKG51bV9wbGFuZXMgPj0gYmktPm51bV9wbGFuZXMg fHwgIW51bV9wbGFuZXMpCiAJCQlyZXR1cm4gYmktPmRlcmF0ZWRid1txZ3ZfcG9pbnRdOwogCX0K IApAQCAtMjc3LDM0ICszMTAsNiBAQCB2b2lkIGludGVsX2J3X2luaXRfaHcoc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlpY2xfZ2V0X2J3X2luZm8oZGV2X3ByaXYsICZpY2xf c2FfaW5mbyk7CiB9CiAKLXN0YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfbWF4X2RhdGFfcmF0ZShz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCi0JCQkJCWludCBudW1fcGxhbmVzKQot ewotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExKSB7Ci0JCS8qCi0JCSAqIEFueSBidyBn cm91cCBoYXMgc2FtZSBhbW91bnQgb2YgUUdWIHBvaW50cwotCQkgKi8KLQkJY29uc3Qgc3RydWN0 IGludGVsX2J3X2luZm8gKmJpID0KLQkJCSZkZXZfcHJpdi0+bWF4X2J3WzBdOwotCQl1bnNpZ25l ZCBpbnQgbWluX2J3ID0gVUlOVF9NQVg7Ci0JCWludCBpOwotCi0JCS8qCi0JCSAqIEZJWE1FIHdp dGggU0FHViBkaXNhYmxlZCBtYXliZSB3ZSBjYW4gYXNzdW1lCi0JCSAqIHBvaW50IDEgd2lsbCBh bHdheXMgYmUgdXNlZD8gU2VlbXMgdG8gbWF0Y2gKLQkJICogdGhlIGJlaGF2aW91ciBvYnNlcnZl ZCBpbiB0aGUgd2lsZC4KLQkJICovCi0JCWZvciAoaSA9IDA7IGkgPCBiaS0+bnVtX3Fndl9wb2lu dHM7IGkrKykgewotCQkJdW5zaWduZWQgaW50IGJ3ID0gaWNsX21heF9idyhkZXZfcHJpdiwgbnVt X3BsYW5lcywgaSk7Ci0KLQkJCW1pbl9idyA9IG1pbihidywgbWluX2J3KTsKLQkJfQotCQlyZXR1 cm4gbWluX2J3OwotCX0gZWxzZSB7Ci0JCXJldHVybiBVSU5UX01BWDsKLQl9Ci19Ci0KIHN0YXRp YyB1bnNpZ25lZCBpbnQgaW50ZWxfYndfY3J0Y19udW1fYWN0aXZlX3BsYW5lcyhjb25zdCBzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKIHsKIAkvKgpAQCAtNDE4LDExICs0MjMs MTYgQEAgaW50IGludGVsX2J3X2F0b21pY19jaGVjayhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRl ICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KHN0YXRlLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm5ld19jcnRjX3N0 YXRlLCAqb2xkX2NydGNfc3RhdGU7Ci0Jc3RydWN0IGludGVsX2J3X3N0YXRlICpid19zdGF0ZSA9 IE5VTEw7Ci0JdW5zaWduZWQgaW50IGRhdGFfcmF0ZSwgbWF4X2RhdGFfcmF0ZTsKKwlzdHJ1Y3Qg aW50ZWxfYndfc3RhdGUgKm5ld19id19zdGF0ZSA9IE5VTEw7CisJc3RydWN0IGludGVsX2J3X3N0 YXRlICpvbGRfYndfc3RhdGUgPSBOVUxMOworCXVuc2lnbmVkIGludCBkYXRhX3JhdGU7CiAJdW5z aWduZWQgaW50IG51bV9hY3RpdmVfcGxhbmVzOwogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwog CWludCBpLCByZXQ7CisJdTMyIGFsbG93ZWRfcG9pbnRzID0gMDsKKwl1bnNpZ25lZCBpbnQgbWF4 X2J3X3BvaW50ID0gMCwgbWF4X2J3ID0gMDsKKwl1bnNpZ25lZCBpbnQgbnVtX3Fndl9wb2ludHMg PSBkZXZfcHJpdi0+bWF4X2J3WzBdLm51bV9xZ3ZfcG9pbnRzOworCXUzMiBtYXNrID0gKDEgPDwg bnVtX3Fndl9wb2ludHMpIC0gMTsKIAogCS8qCiAJICogRm9yIGVhcmxpZXIgR2VucyBsZXQncyBj b25zaWRlciBiYW5kd2lkdGggY2hhbmdlZCBpZiBkZGIgcmVxdWlyZW1lbnRzLApAQCAtNDMwLDEx ICs0NDAsMTEgQEAgaW50IGludGVsX2J3X2F0b21pY19jaGVjayhzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSkKIAkgKi8KIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDExKSB7CiAJ CWlmIChzdGF0ZS0+ZGRiX3N0YXRlX2NoYW5nZWQpIHsKLQkJCWJ3X3N0YXRlID0gaW50ZWxfYndf Z2V0X3N0YXRlKHN0YXRlKTsKLQkJCWlmIChJU19FUlIoYndfc3RhdGUpKQotCQkJCXJldHVybiBQ VFJfRVJSKGJ3X3N0YXRlKTsKKwkJCW5ld19id19zdGF0ZSA9IGludGVsX2J3X2dldF9zdGF0ZShz dGF0ZSk7CisJCQlpZiAoSVNfRVJSKG5ld19id19zdGF0ZSkpCisJCQkJcmV0dXJuIFBUUl9FUlIo bmV3X2J3X3N0YXRlKTsKIAotCQkJcmV0ID0gaW50ZWxfYXRvbWljX2xvY2tfZ2xvYmFsX3N0YXRl KCZid19zdGF0ZS0+YmFzZSk7CisJCQlyZXQgPSBpbnRlbF9hdG9taWNfbG9ja19nbG9iYWxfc3Rh dGUoJm5ld19id19zdGF0ZS0+YmFzZSk7CiAJCQlpZiAocmV0KQogCQkJCXJldHVybiByZXQ7CiAK QEAgLTQ2NSw0NSArNDc1LDEwNyBAQCBpbnQgaW50ZWxfYndfYXRvbWljX2NoZWNrKHN0cnVjdCBp bnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQkgICAgb2xkX2FjdGl2ZV9wbGFuZXMgPT0gbmV3 X2FjdGl2ZV9wbGFuZXMpCiAJCQljb250aW51ZTsKIAotCQlid19zdGF0ZSA9IGludGVsX2J3X2dl dF9zdGF0ZShzdGF0ZSk7Ci0JCWlmIChJU19FUlIoYndfc3RhdGUpKQotCQkJcmV0dXJuIFBUUl9F UlIoYndfc3RhdGUpOworCQluZXdfYndfc3RhdGUgPSBpbnRlbF9id19nZXRfc3RhdGUoc3RhdGUp OworCQlpZiAoSVNfRVJSKG5ld19id19zdGF0ZSkpCisJCQlyZXR1cm4gUFRSX0VSUihuZXdfYndf c3RhdGUpOwogCi0JCWJ3X3N0YXRlLT5kYXRhX3JhdGVbY3J0Yy0+cGlwZV0gPSBuZXdfZGF0YV9y YXRlOwotCQlid19zdGF0ZS0+bnVtX2FjdGl2ZV9wbGFuZXNbY3J0Yy0+cGlwZV0gPSBuZXdfYWN0 aXZlX3BsYW5lczsKKwkJbmV3X2J3X3N0YXRlLT5kYXRhX3JhdGVbY3J0Yy0+cGlwZV0gPSBuZXdf ZGF0YV9yYXRlOworCQluZXdfYndfc3RhdGUtPm51bV9hY3RpdmVfcGxhbmVzW2NydGMtPnBpcGVd ID0gbmV3X2FjdGl2ZV9wbGFuZXM7CiAKIAkJZHJtX2RiZ19rbXMoJmRldl9wcml2LT5kcm0sCiAJ CQkgICAgInBpcGUgJWMgZGF0YSByYXRlICV1IG51bSBhY3RpdmUgcGxhbmVzICV1XG4iLAogCQkJ ICAgIHBpcGVfbmFtZShjcnRjLT5waXBlKSwKLQkJCSAgICBid19zdGF0ZS0+ZGF0YV9yYXRlW2Ny dGMtPnBpcGVdLAotCQkJICAgIGJ3X3N0YXRlLT5udW1fYWN0aXZlX3BsYW5lc1tjcnRjLT5waXBl XSk7CisJCQkgICAgbmV3X2J3X3N0YXRlLT5kYXRhX3JhdGVbY3J0Yy0+cGlwZV0sCisJCQkgICAg bmV3X2J3X3N0YXRlLT5udW1fYWN0aXZlX3BsYW5lc1tjcnRjLT5waXBlXSk7CiAJfQogCi0JaWYg KCFid19zdGF0ZSkKKwlpZiAoIW5ld19id19zdGF0ZSkKIAkJcmV0dXJuIDA7CiAKLQlyZXQgPSBp bnRlbF9hdG9taWNfbG9ja19nbG9iYWxfc3RhdGUoJmJ3X3N0YXRlLT5iYXNlKTsKLQlpZiAocmV0 KQorCXJldCA9IGludGVsX2F0b21pY19sb2NrX2dsb2JhbF9zdGF0ZSgmbmV3X2J3X3N0YXRlLT5i YXNlKTsKKwlpZiAocmV0KSB7CisJCURSTV9ERUJVR19LTVMoIkNvdWxkIG5vdCBsb2NrIGdsb2Jh bCBzdGF0ZVxuIik7CiAJCXJldHVybiByZXQ7CisJfQogCi0JRFJNX0RFQlVHX0tNUygiTWFya2lu ZyBidyBzdGF0ZSBjaGFuZ2VkIGZvciBhdG9taWMgc3RhdGUgJXBcbiIsIHN0YXRlKTsKLQotCXN0 YXRlLT5id19zdGF0ZV9jaGFuZ2VkID0gdHJ1ZTsKKwlkYXRhX3JhdGUgPSBpbnRlbF9id19kYXRh X3JhdGUoZGV2X3ByaXYsIG5ld19id19zdGF0ZSk7CisJZGF0YV9yYXRlID0gRElWX1JPVU5EX1VQ KGRhdGFfcmF0ZSwgMTAwMCk7CiAKLQlkYXRhX3JhdGUgPSBpbnRlbF9id19kYXRhX3JhdGUoZGV2 X3ByaXYsIGJ3X3N0YXRlKTsKLQludW1fYWN0aXZlX3BsYW5lcyA9IGludGVsX2J3X251bV9hY3Rp dmVfcGxhbmVzKGRldl9wcml2LCBid19zdGF0ZSk7CisJbnVtX2FjdGl2ZV9wbGFuZXMgPSBpbnRl bF9id19udW1fYWN0aXZlX3BsYW5lcyhkZXZfcHJpdiwgbmV3X2J3X3N0YXRlKTsKIAotCW1heF9k YXRhX3JhdGUgPSBpbnRlbF9tYXhfZGF0YV9yYXRlKGRldl9wcml2LCBudW1fYWN0aXZlX3BsYW5l cyk7CisJZm9yIChpID0gMDsgaSA8IG51bV9xZ3ZfcG9pbnRzOyBpKyspIHsKKwkJdW5zaWduZWQg aW50IG1heF9kYXRhX3JhdGU7CiAKLQlkYXRhX3JhdGUgPSBESVZfUk9VTkRfVVAoZGF0YV9yYXRl LCAxMDAwKTsKKwkJbWF4X2RhdGFfcmF0ZSA9IGljbF9tYXhfYncoZGV2X3ByaXYsIG51bV9hY3Rp dmVfcGxhbmVzLCBpKTsKKwkJLyoKKwkJICogV2UgbmVlZCB0byBrbm93IHdoaWNoIHFndiBwb2lu dCBnaXZlcyB1cworCQkgKiBtYXhpbXVtIGJhbmR3aWR0aCBpbiBvcmRlciB0byBkaXNhYmxlIFNB R1YKKwkJICogaWYgd2UgZmluZCB0aGF0IHdlIGV4Y2VlZCBTQUdWIGJsb2NrIHRpbWUKKwkJICog d2l0aCB3YXRlcm1hcmtzLiBCeSB0aGF0IG1vbWVudCB3ZSBhbHJlYWR5CisJCSAqIGhhdmUgdGhv c2UsIGFzIGl0IGlzIGNhbGN1bGF0ZWQgZWFybGllciBpbgorCQkgKiBpbnRlbF9hdG9taWNfY2hl Y2ssCisJCSAqLworCQlpZiAobWF4X2RhdGFfcmF0ZSA+IG1heF9idykgeworCQkJbWF4X2J3X3Bv aW50ID0gaTsKKwkJCW1heF9idyA9IG1heF9kYXRhX3JhdGU7CisJCX0KKwkJaWYgKG1heF9kYXRh X3JhdGUgPj0gZGF0YV9yYXRlKQorCQkJYWxsb3dlZF9wb2ludHMgfD0gQklUKGkpOworCQlEUk1f REVCVUdfS01TKCJRR1YgcG9pbnQgJWQ6IG1heCBidyAlZCByZXF1aXJlZCAlZFxuIiwKKwkJCSAg ICAgIGksIG1heF9kYXRhX3JhdGUsIGRhdGFfcmF0ZSk7CisJfQogCi0JaWYgKGRhdGFfcmF0ZSA+ IG1heF9kYXRhX3JhdGUpIHsKLQkJZHJtX2RiZ19rbXMoJmRldl9wcml2LT5kcm0sCi0JCQkgICAg IkJhbmR3aWR0aCAldSBNQi9zIGV4Y2VlZHMgbWF4IGF2YWlsYWJsZSAlZCBNQi9zICglZCBhY3Rp dmUgcGxhbmVzKVxuIiwKLQkJCSAgICBkYXRhX3JhdGUsIG1heF9kYXRhX3JhdGUsIG51bV9hY3Rp dmVfcGxhbmVzKTsKKwkvKgorCSAqIEJTcGVjIHN0YXRlcyB0aGF0IHdlIGFsd2F5cyBzaG91bGQg aGF2ZSBhdCBsZWFzdCBvbmUgYWxsb3dlZCBwb2ludAorCSAqIGxlZnQsIHNvIGlmIHdlIGNvdWxk bid0IC0gc2ltcGx5IHJlamVjdCB0aGUgY29uZmlndXJhdGlvbiBmb3Igb2J2aW91cworCSAqIHJl YXNvbnMuCisJICovCisJaWYgKGFsbG93ZWRfcG9pbnRzID09IDApIHsKKwkJRFJNX0RFQlVHX0tN UygiTm8gUUdWIHBvaW50cyBwcm92aWRlIHN1ZmZpY2llbnQgbWVtb3J5IgorCQkJICAgICAgIiBi YW5kd2lkdGggZm9yIGRpc3BsYXkgY29uZmlndXJhdGlvbi5cbiIpOwogCQlyZXR1cm4gLUVJTlZB TDsKIAl9CiAKKwkvKgorCSAqIExlYXZlIG9ubHkgc2luZ2xlIHBvaW50IHdpdGggaGlnaGVzdCBi YW5kd2lkdGgsIGlmCisJICogd2UgY2FuJ3QgZW5hYmxlIFNBR1YgZHVlIHRvIHRoZSBpbmNyZWFz ZWQgbWVtb3J5IGxhdGVuY3kgaXQgbWF5CisJICogY2F1c2UuCisJICovCisJaWYgKCFpbnRlbF9j YW5fZW5hYmxlX3NhZ3ZfZm9yX3N0YXRlKHN0YXRlKSkgeworCQlhbGxvd2VkX3BvaW50cyA9IDEg PDwgbWF4X2J3X3BvaW50OworCQlEUk1fREVCVUdfS01TKCJObyBTQUdWLCB1c2luZyBzaW5nbGUg UUdWIHBvaW50ICVkXG4iLAorCQkJICAgICAgbWF4X2J3X3BvaW50KTsKKwl9CisJLyoKKwkgKiBX ZSBzdG9yZSB0aGUgb25lcyB3aGljaCBuZWVkIHRvIGJlIG1hc2tlZCBhcyB0aGF0IGlzIHdoYXQg UENvZGUKKwkgKiBhY3R1YWxseSBhY2NlcHRzIGFzIGEgcGFyYW1ldGVyLgorCSAqLworCW5ld19i d19zdGF0ZS0+cWd2X3BvaW50c19tYXNrID0gKH5hbGxvd2VkX3BvaW50cykgJiBtYXNrOworCisJ RFJNX0RFQlVHX0tNUygiTmV3IHN0YXRlICVwIHFndiBtYXNrICV4XG4iLAorCQkgICAgICBzdGF0 ZSwgbmV3X2J3X3N0YXRlLT5xZ3ZfcG9pbnRzX21hc2spOworCisJb2xkX2J3X3N0YXRlID0gaW50 ZWxfYndfZ2V0X29sZF9zdGF0ZShzdGF0ZSk7CisJaWYgKElTX0VSUihvbGRfYndfc3RhdGUpKSB7 CisJCURSTV9ERUJVR19LTVMoIkNvdWxkIG5vdCBnZXQgb2xkIGJ3IHN0YXRlIVxuIik7CisJCXJl dHVybiBQVFJfRVJSKG9sZF9id19zdGF0ZSk7CisJfQorCisJLyoKKwkgKiBJZiB0aGUgYWN0dWFs IG1hc2sgaGFkIGNoYW5nZWQgd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdAorCSAqIHRoZSBjb21t aXRzIGFyZSBzZXJpYWxpemVkKGluIGNhc2UgdGhpcyBpcyBhIG5vbW9kZXNldCwgbm9uYmxvY2tp bmcpCisJICovCisJaWYgKG5ld19id19zdGF0ZS0+cWd2X3BvaW50c19tYXNrICE9IG9sZF9id19z dGF0ZS0+cWd2X3BvaW50c19tYXNrKSB7CisJCXJldCA9IGludGVsX2F0b21pY19zZXJpYWxpemVf Z2xvYmFsX3N0YXRlKCZuZXdfYndfc3RhdGUtPmJhc2UpOworCQlpZiAocmV0KSB7CisJCQlEUk1f REVCVUdfS01TKCJDb3VsZCBub3Qgc2VyaWFsaXplIGdsb2JhbCBzdGF0ZVxuIik7CisJCQlyZXR1 cm4gcmV0OworCQl9CisKKwkJRFJNX0RFQlVHX0tNUygiTWFya2luZyBidyBzdGF0ZSBjaGFuZ2Vk IGZvciBhdG9taWMgc3RhdGUgJXBcbiIsIHN0YXRlKTsKKwkJc3RhdGUtPmJ3X3N0YXRlX2NoYW5n ZWQgPSB0cnVlOworCX0KKwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2J3LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2J3LmgKaW5kZXggYzMyYjUyODVjMTJmLi5iMzUyMjM4OWExODEgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYncuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2J3LmgKQEAgLTM2LDYgKzM2LDEzIEBAIHN0cnVj dCBpbnRlbF9id19zdGF0ZSB7CiAJICovCiAJYm9vbCBjYW5fc2FndjsKIAorCS8qCisJICogQ3Vy cmVudCBRR1YgcG9pbnRzIG1hc2ssIHdoaWNoIHJlc3RyaWN0cworCSAqIHNvbWUgcGFydGljdWxh ciBTQUdWIHN0YXRlcywgbm90IHRvIGNvbmZ1c2UKKwkgKiB3aXRoIHBpcGVfc2Fndl9tYXNrLgor CSAqLworCXU4IHFndl9wb2ludHNfbWFzazsKKwogCXVuc2lnbmVkIGludCBkYXRhX3JhdGVbSTkx NV9NQVhfUElQRVNdOwogCXU4IG51bV9hY3RpdmVfcGxhbmVzW0k5MTVfTUFYX1BJUEVTXTsKIH07 CkBAIC01Niw1ICs2Myw3IEBAIGludCBpbnRlbF9id19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdik7CiBpbnQgaW50ZWxfYndfYXRvbWljX2NoZWNrKHN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKnN0YXRlKTsKIHZvaWQgaW50ZWxfYndfY3J0Y191cGRhdGUoc3RydWN0IGlu dGVsX2J3X3N0YXRlICpid19zdGF0ZSwKIAkJCSAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKmNydGNfc3RhdGUpOworaW50IGljbF9wY29kZV9yZXN0cmljdF9xZ3ZfcG9pbnRzKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkgIHUzMiBwb2ludHNfbWFzayk7CiAK ICNlbmRpZiAvKiBfX0lOVEVMX0JXX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXkuYwppbmRleCA2ZGY4MzZjYmUwY2QuLmNiMWQxMGFmODhjZSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKQEAgLTE1NTA0 LDYgKzE1NTA0LDEwNSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY2xlYW51cF93b3JrKHN0 cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIAlpbnRlbF9hdG9taWNfaGVscGVyX2ZyZWVfc3RhdGUo aTkxNSk7CiB9CiAKK3N0YXRpYyB2b2lkIGludGVsX3Fndl9wb2ludHNfbWFzayhzdHJ1Y3QgaW50 ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3Rh dGUtPmJhc2UuZGV2OworCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKKwlpbnQgcmV0OworCXN0cnVjdCBpbnRlbF9id19zdGF0ZSAqbmV3X2J3X3N0YXRl ID0gTlVMTDsKKwlzdHJ1Y3QgaW50ZWxfYndfc3RhdGUgKm9sZF9id19zdGF0ZSA9IE5VTEw7CisJ dTMyIG5ld19tYXNrID0gMDsKKwl1bnNpZ25lZCBpbnQgbnVtX3Fndl9wb2ludHMgPSBkZXZfcHJp di0+bWF4X2J3WzBdLm51bV9xZ3ZfcG9pbnRzOworCXVuc2lnbmVkIGludCBtYXNrID0gKDEgPDwg bnVtX3Fndl9wb2ludHMpIC0gMTsKKworCW5ld19id19zdGF0ZSA9IGludGVsX2J3X2dldF9zdGF0 ZShzdGF0ZSk7CisJaWYgKElTX0VSUihuZXdfYndfc3RhdGUpKSB7CisJCVdBUk4oMSwgIkNvdWxk IG5vdCBnZXQgbmV3IGJ3X3N0YXRlIVxuIik7CisJCXJldHVybjsKKwl9CisKKwlvbGRfYndfc3Rh dGUgPSBpbnRlbF9id19nZXRfb2xkX3N0YXRlKHN0YXRlKTsKKwlpZiAoSVNfRVJSKG9sZF9id19z dGF0ZSkpIHsKKwkJV0FSTigxLCAiQ291bGQgbm90IGdldCBvbGQgYndfc3RhdGUhXG4iKTsKKwkJ cmV0dXJuOworCX0KKworCW5ld19tYXNrID0gb2xkX2J3X3N0YXRlLT5xZ3ZfcG9pbnRzX21hc2sg fCBuZXdfYndfc3RhdGUtPnFndl9wb2ludHNfbWFzazsKKworCS8qCisJICogSWYgbmV3IG1hc2sg aXMgemVybyAtIG1lYW5zIHRoZXJlIGlzIG5vdGhpbmcgdG8gbWFzaywKKwkgKiB3ZSBjYW4gb25s eSB1bm1hc2ssIHdoaWNoIHNob3VsZCBiZSBkb25lIGluIHVubWFzay4KKwkgKi8KKwlpZiAoIW5l d19tYXNrKQorCQlyZXR1cm47CisKKwlXQVJOX09OKG5ld19tYXNrID09IG1hc2spOworCisJLyoK KwkgKiBKdXN0IHJldHVybiBpZiB3ZSBjYW4ndCBjb250cm9sIFNBR1Ygb3IgZG9uJ3QgaGF2ZSBp dC4KKwkgKi8KKwlpZiAoIWludGVsX2hhc19zYWd2KGRldl9wcml2KSkKKwkJcmV0dXJuOworCisJ LyoKKwkgKiBSZXN0cmljdCByZXF1aXJlZCBxZ3YgcG9pbnRzIGJlZm9yZSB1cGRhdGluZyB0aGUg Y29uZmlndXJhdGlvbi4KKwkgKiBBY2NvcmRpbmcgdG8gQlNwZWMgd2UgY2FuJ3QgbWFzayBhbmQg dW5tYXNrIHFndiBwb2ludHMgYXQgdGhlIHNhbWUKKwkgKiB0aW1lLiBBbHNvIG1hc2tpbmcgc2hv dWxkIGJlIGRvbmUgYmVmb3JlIHVwZGF0aW5nIHRoZSBjb25maWd1cmF0aW9uCisJICogYW5kIHVu bWFza2luZyBhZnRlcndhcmRzLgorCSAqLworCXJldCA9IGljbF9wY29kZV9yZXN0cmljdF9xZ3Zf cG9pbnRzKGRldl9wcml2LCBuZXdfbWFzayk7CisJaWYgKHJldCA8IDApCisJCURSTV9ERUJVR19L TVMoIkNvdWxkIG5vdCBtYXNrIHJlcXVpcmVkIHFndiBwb2ludHMoJWQpXG4iLAorCQkJICAgICAg cmV0KTsKK30KKworc3RhdGljIHZvaWQgaW50ZWxfcWd2X3BvaW50c191bm1hc2soc3RydWN0IGlu dGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0 YXRlLT5iYXNlLmRldjsKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7CisJaW50IHJldDsKKwlzdHJ1Y3QgaW50ZWxfYndfc3RhdGUgKm5ld19id19zdGF0 ZSA9IE5VTEw7CisJc3RydWN0IGludGVsX2J3X3N0YXRlICpvbGRfYndfc3RhdGUgPSBOVUxMOwor CXUzMiBuZXdfbWFzayA9IDA7CisKKwluZXdfYndfc3RhdGUgPSBpbnRlbF9id19nZXRfc3RhdGUo c3RhdGUpOworCWlmIChJU19FUlIobmV3X2J3X3N0YXRlKSkgeworCQlXQVJOKDEsICJDb3VsZCBu b3QgZ2V0IG5ldyBid19zdGF0ZSFcbiIpOworCQlyZXR1cm47CisJfQorCisJb2xkX2J3X3N0YXRl ID0gaW50ZWxfYndfZ2V0X29sZF9zdGF0ZShzdGF0ZSk7CisJaWYgKElTX0VSUihvbGRfYndfc3Rh dGUpKSB7CisJCVdBUk4oMSwgIkNvdWxkIG5vdCBnZXQgbmV3IGJ3X3N0YXRlIVxuIik7CisJCXJl dHVybjsKKwl9CisKKwluZXdfbWFzayA9IG5ld19id19zdGF0ZS0+cWd2X3BvaW50c19tYXNrOwor CisJLyoKKwkgKiBKdXN0IHJldHVybiBpZiB3ZSBjYW4ndCBjb250cm9sIFNBR1Ygb3IgZG9uJ3Qg aGF2ZSBpdC4KKwkgKi8KKwlpZiAoIWludGVsX2hhc19zYWd2KGRldl9wcml2KSkKKwkJcmV0dXJu OworCisJLyoKKwkgKiBOb3RoaW5nIHRvIHVubWFzaworCSAqLworCWlmIChuZXdfbWFzayA9PSBv bGRfYndfc3RhdGUtPnFndl9wb2ludHNfbWFzaykKKwkJcmV0dXJuOworCisJLyoKKwkgKiBBbGxv dyByZXF1aXJlZCBxZ3YgcG9pbnRzIGFmdGVyIHVwZGF0aW5nIHRoZSBjb25maWd1cmF0aW9uLgor CSAqIEFjY29yZGluZyB0byBCU3BlYyB3ZSBjYW4ndCBtYXNrIGFuZCB1bm1hc2sgcWd2IHBvaW50 cyBhdCB0aGUgc2FtZQorCSAqIHRpbWUuIEFsc28gbWFza2luZyBzaG91bGQgYmUgZG9uZSBiZWZv cmUgdXBkYXRpbmcgdGhlIGNvbmZpZ3VyYXRpb24KKwkgKiBhbmQgdW5tYXNraW5nIGFmdGVyd2Fy ZHMuCisJICovCisJcmV0ID0gaWNsX3Bjb2RlX3Jlc3RyaWN0X3Fndl9wb2ludHMoZGV2X3ByaXYs IG5ld19tYXNrKTsKKwlpZiAocmV0IDwgMCkKKwkJRFJNX0RFQlVHX0tNUygiQ291bGQgbm90IHVu bWFzayByZXF1aXJlZCBxZ3YgcG9pbnRzKCVkKVxuIiwKKwkJCSAgICAgIHJldCk7Cit9CisKIHN0 YXRpYyB2b2lkIGludGVsX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0 YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gc3RhdGUtPmJhc2UuZGV2 OwpAQCAtMTU1MzcsNiArMTU2MzYsMTUgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1p dF90YWlsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCWZvcl9lYWNoX25ld19p bnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBuZXdfY3J0Y19zdGF0ZSwgaSkKIAkJY3J0 Yy0+Y29uZmlnID0gbmV3X2NydGNfc3RhdGU7CiAKKwkvKgorCSAqIE5vdyB3ZSBuZWVkIHRvIGNo ZWNrIGlmIFNBR1YgbmVlZHMgdG8gYmUgZGlzYWJsZWQoaS5lIFFHViBwb2ludHMKKwkgKiBtb2Rp ZmllZCBldmVuLCB3aGVuIG5vIG1vZGVzZXQgaXMgZG9uZShmb3IgZXhhbXBsZSBwbGFuZSB1cGRh dGVzCisJICogY2FuIG5vdyB0cmlnZ2VyIHRoYXQpLgorCSAqLworCWlmICgoSU5URUxfR0VOKGRl dl9wcml2KSA+PSAxMSkpCisJCWlmIChzdGF0ZS0+Yndfc3RhdGVfY2hhbmdlZCkKKwkJCWludGVs X3Fndl9wb2ludHNfbWFzayhzdGF0ZSk7CisKIAlpZiAoc3RhdGUtPm1vZGVzZXQpIHsKIAkJZHJt X2F0b21pY19oZWxwZXJfdXBkYXRlX2xlZ2FjeV9tb2Rlc2V0X3N0YXRlKGRldiwgJnN0YXRlLT5i YXNlKTsKIApAQCAtMTU1NDYsMTIgKzE1NjU0LDkgQEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWlj X2NvbW1pdF90YWlsKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCQkgKiBTS0wg d29ya2Fyb3VuZDogYnNwZWMgcmVjb21tZW5kcyB3ZSBkaXNhYmxlIHRoZSBTQUdWIHdoZW4gd2UK IAkJICogaGF2ZSBtb3JlIHRoZW4gb25lIHBpcGUgZW5hYmxlZAogCQkgKi8KLQkJaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPCAxMSkgewotCQkJaWYgKHN0YXRlLT5id19zdGF0ZV9jaGFuZ2VkKSB7 Ci0JCQkJaWYgKCFpbnRlbF9jYW5fZW5hYmxlX3NhZ3YoZGV2X3ByaXYpKQotCQkJCQlpbnRlbF9k aXNhYmxlX3NhZ3YoZGV2X3ByaXYpOwotCQkJfQotCQl9CisJCWlmICgoSU5URUxfR0VOKGRldl9w cml2KSA8IDExKSkKKwkJCWlmICghaW50ZWxfY2FuX2VuYWJsZV9zYWd2KGRldl9wcml2KSkKKwkJ CQlpbnRlbF9kaXNhYmxlX3NhZ3YoZGV2X3ByaXYpOwogCiAJCWludGVsX21vZGVzZXRfdmVyaWZ5 X2Rpc2FibGVkKGRldl9wcml2LCBzdGF0ZSk7CiAJfQpAQCAtMTU2NTIsMTAgKzE1NzU3LDEwIEBA IHN0YXRpYyB2b2lkIGludGVsX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgaW50ZWxfYXRvbWlj X3N0YXRlICpzdGF0ZSkKIAkJaW50ZWxfdmVyaWZ5X3BsYW5lcyhzdGF0ZSk7CiAKIAlpZiAoSU5U RUxfR0VOKGRldl9wcml2KSA8IDExKSB7Ci0JCWlmIChzdGF0ZS0+Yndfc3RhdGVfY2hhbmdlZCkg ewotCQkJaWYgKGludGVsX2Nhbl9lbmFibGVfc2FndihkZXZfcHJpdikpCi0JCQkJaW50ZWxfZW5h YmxlX3NhZ3YoZGV2X3ByaXYpOwotCQl9CisJCWlmIChpbnRlbF9jYW5fZW5hYmxlX3NhZ3YoZGV2 X3ByaXYpKQorCQkJaW50ZWxfZW5hYmxlX3NhZ3YoZGV2X3ByaXYpOworCX0gZWxzZSBpZiAoc3Rh dGUtPmJ3X3N0YXRlX2NoYW5nZWQpIHsKKwkJaW50ZWxfcWd2X3BvaW50c191bm1hc2soc3RhdGUp OwogCX0KIAogCWRybV9hdG9taWNfaGVscGVyX2NvbW1pdF9od19kb25lKCZzdGF0ZS0+YmFzZSk7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRleCA0MzA1Y2NjNGM2ODMuLjBhNTg5NzAwYTA3MSAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBAIC04NDEsNiArODQxLDkgQEAgZW51bSBpbnRlbF9w aXBlX2NyY19zb3VyY2UgewogCUlOVEVMX1BJUEVfQ1JDX1NPVVJDRV9NQVgsCiB9OwogCisvKiBC U3BlYyBwcmVjaXNlbHkgZGVmaW5lcyB0aGlzICovCisjZGVmaW5lIE5VTV9TQUdWX1BPSU5UUyA4 CisKICNkZWZpbmUgSU5URUxfUElQRV9DUkNfRU5UUklFU19OUgkxMjgKIHN0cnVjdCBpbnRlbF9w aXBlX2NyYyB7CiAJc3BpbmxvY2tfdCBsb2NrOwotLSAKMi4yNC4xLjQ4NS5nYWQwNWEzZDhlNQoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4 IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==