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, 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 931C9C4725A for ; Tue, 5 May 2020 10:27:10 +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 7354D20752 for ; Tue, 5 May 2020 10:27:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7354D20752 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 5CC186E190; Tue, 5 May 2020 10:27:09 +0000 (UTC) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by gabe.freedesktop.org (Postfix) with ESMTPS id F1FA76E1A7 for ; Tue, 5 May 2020 10:27:08 +0000 (UTC) IronPort-SDR: WXR6WDJxA258yxvMlLuXO93ySklpcEJy9cbdMYpgwJ0WsCXLgPi7JjL4b+VDwgCy4BgazhpT/c 5TAiB6yQjE+w== X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 May 2020 03:27:08 -0700 IronPort-SDR: xVWfh5C1mhihZl+JrgPRUAcbWHtW8ha/8VZq2QLioO8GtRmVMKDmXCJ4PLXeakBk1ZMn2stlAl gMJIkz11t35Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,354,1583222400"; d="scan'208";a="434432060" Received: from unknown (HELO slisovsk-Lenovo-ideapad-720S-13IKB.fi.intel.com) ([10.237.72.89]) by orsmga005.jf.intel.com with ESMTP; 05 May 2020 03:27:07 -0700 From: Stanislav Lisovskiy To: intel-gfx@lists.freedesktop.org Date: Tue, 5 May 2020 13:22:46 +0300 Message-Id: <20200505102247.32452-6-stanislav.lisovskiy@intel.com> X-Mailer: git-send-email 2.24.1.485.gad05a3d8e5 In-Reply-To: <20200505102247.32452-1-stanislav.lisovskiy@intel.com> References: <20200505102247.32452-1-stanislav.lisovskiy@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v27 5/6] 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 ZV9jaGFuZ2VkIGZsYWcgaW50byB1c2UuCgp2MTc6IC0gTW92ZWQgcWd2IHBvaW50IHJlbGF0ZWQg bWFuaXB1bGF0aW9ucyBuZXh0IHRvIFNBR1YgY29kZSwgYXMKICAgICAgIHRob3NlIGFyZSBzZW1h bnRpY2FsbHkgcmVsYXRlZChWaWxsZSBTeXJqw6Rsw6QpCiAgICAgLSBSZW5hbWVkIHRob3NlIGlu dG8gaW50ZWxfc2Fndl8ocHJlKXwocG9zdClfcGxhbmVfdXBkYXRlCiAgICAgICAoVmlsbGUgU3ly asOkbMOkKQoKdjE4OiAtIE1vdmUgc2FndiByZWxhdGVkIGNhbGxzIGZyb20gY29tbWl0IHRhaWwg aW50bwogICAgICAgaW50ZWxfc2Fndl8ocHJlKXwocG9zdClfcGxhbmVfdXBkYXRlKFZpbGxlIFN5 cmrDpGzDpCkKCnYxOTogLSBVc2UgaW50ZWxfYXRvbWljX2dldF9id18ob2xkKXwobmV3KV9zdGF0 ZSB3aGljaCBpcyBpbnRlbmRlZAogICAgICAgZm9yIGNvbW1pdCB0YWlsIHN0YWdlLgoKdjIwOiAt IFJldHVybiBtYXggYmFuZHdpZHRoIGZvciAwIHBsYW5lcyhWaWxsZSkKICAgICAtIENvbnN0aWZ5 IG9sZF9id19zdGF0ZSBpbiBid19hdG9taWNfY2hlY2soVmlsbGUpCiAgICAgLSBSZW1vdmVkIHNv bWUgZGVidWdzKFZpbGxlKQogICAgIC0gQWRkZWQgZGF0YSByYXRlIHRvIGRlYnVnIHByaW50IHdo ZW4gbm8gUUdWIHBvaW50cyhWaWxsZSkKICAgICAtIFJlbW92ZWQgc29tZSBjb21tZW50cyhWaWxs ZSkKCnYyMSwgdjIyLCB2MjM6IC0gRml4ZWQgcmViYXNlIGNvbmZsaWN0Cgp2MjQ6IC0gQ2hhbmdl ZCBQQ29kZSBtYXNrIHRvIHVzZSBJQ0xfIHByZWZpeAoKU2lnbmVkLW9mZi1ieTogU3RhbmlzbGF2 IExpc292c2tpeSA8c3RhbmlzbGF2Lmxpc292c2tpeUBpbnRlbC5jb20+CkNjOiBWaWxsZSBTeXJq w6Rsw6QgPHZpbGxlLnN5cmphbGFAaW50ZWwuY29tPgpDYzogSmFtZXMgQXVzbXVzIDxqYW1lcy5h dXNtdXNAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf YncuYyAgICAgICB8IDEzOSArKysrKysrKysrKysrLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2Rpc3BsYXkvaW50ZWxfYncuaCAgICAgICB8ICAgOSArKwogLi4uL2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheV90eXBlcy5oICAgIHwgICAzICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3BtLmMgICAgICAgICAgICAgICB8ICA2NiArKysrKysrKy0KIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2ludGVsX3BtLmggICAgICAgICAgICAgICB8ICAgMiArCiA1IGZpbGVzIGNoYW5nZWQsIDE4 MSBpbnNlcnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2J3LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2J3LmMKaW5kZXggNmU3Y2MzYTRmMWFhLi5hMTkyZmQwMmM0NjMgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYncuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2J3LmMKQEAgLTgsNiArOCw5IEBACiAjaW5jbHVk ZSAiaW50ZWxfYncuaCIKICNpbmNsdWRlICJpbnRlbF9kaXNwbGF5X3R5cGVzLmgiCiAjaW5jbHVk ZSAiaW50ZWxfc2lkZWJhbmQuaCIKKyNpbmNsdWRlICJpbnRlbF9hdG9taWMuaCIKKyNpbmNsdWRl ICJpbnRlbF9wbS5oIgorCiAKIC8qIFBhcmFtZXRlcnMgZm9yIFFjbGsgR2V5c2VydmlsbGUgKFFH VikgKi8KIHN0cnVjdCBpbnRlbF9xZ3ZfcG9pbnQgewpAQCAtMTEzLDYgKzExNiwyNiBAQCBzdGF0 aWMgaW50IGljbF9wY29kZV9yZWFkX3Fndl9wb2ludF9pbmZvKHN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiwKIAlyZXR1cm4gMDsKIH0KIAoraW50IGljbF9wY29kZV9yZXN0cmljdF9x Z3ZfcG9pbnRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKKwkJCQkgIHUzMiBw b2ludHNfbWFzaykKK3sKKwlpbnQgcmV0OworCisJLyogYnNwZWMgc2F5cyB0byBrZWVwIHJldHJ5 aW5nIGZvciBhdCBsZWFzdCAxIG1zICovCisJcmV0ID0gc2tsX3Bjb2RlX3JlcXVlc3QoZGV2X3By aXYsIElDTF9QQ09ERV9TQUdWX0RFX01FTV9TU19DT05GSUcsCisJCQkJcG9pbnRzX21hc2ssCisJ CQkJSUNMX1BDT0RFX1BPSU5UU19SRVNUUklDVEVEX01BU0ssCisJCQkJSUNMX1BDT0RFX1BPSU5U U19SRVNUUklDVEVELAorCQkJCTEpOworCisJaWYgKHJldCA8IDApIHsKKwkJRFJNX0VSUk9SKCJG YWlsZWQgdG8gZGlzYWJsZSBxZ3YgcG9pbnRzICglZClcbiIsIHJldCk7CisJCXJldHVybiByZXQ7 CisJfQorCisJcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQgaWNsX2dldF9xZ3ZfcG9pbnRzKHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCSAgICAgIHN0cnVjdCBpbnRlbF9x Z3ZfaW5mbyAqcWkpCiB7CkBAIC0yNDAsNiArMjYzLDE2IEBAIHN0YXRpYyBpbnQgaWNsX2dldF9i d19pbmZvKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwgY29uc3Qgc3RydWN0IGlu dGVsCiAJCQlicmVhazsKIAl9CiAKKwkvKgorCSAqIEluIGNhc2UgaWYgU0FHViBpcyBkaXNhYmxl ZCBpbiBCSU9TLCB3ZSBhbHdheXMgZ2V0IDEKKwkgKiBTQUdWIHBvaW50LCBidXQgd2UgY2FuJ3Qg c2VuZCBQQ29kZSBjb21tYW5kcyB0byByZXN0cmljdCBpdAorCSAqIGFzIGl0IHdpbGwgZmFpbCBh bmQgcG9pbnRsZXNzIGFueXdheS4KKwkgKi8KKwlpZiAocWkubnVtX3BvaW50cyA9PSAxKQorCQlk ZXZfcHJpdi0+c2Fndl9zdGF0dXMgPSBJOTE1X1NBR1ZfTk9UX0NPTlRST0xMRUQ7CisJZWxzZQor CQlkZXZfcHJpdi0+c2Fndl9zdGF0dXMgPSBJOTE1X1NBR1ZfRU5BQkxFRDsKKwogCXJldHVybiAw OwogfQogCkBAIC0yNDgsNiArMjgxLDExIEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgaWNsX21heF9i dyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiB7CiAJaW50IGk7CiAKKwkvKgor CSAqIExldCdzIHJldHVybiBtYXggYncgZm9yIDAgcGxhbmVzCisJICovCisJbnVtX3BsYW5lcyA9 IG1heCgxLCBudW1fcGxhbmVzKTsKKwogCWZvciAoaSA9IDA7IGkgPCBBUlJBWV9TSVpFKGRldl9w cml2LT5tYXhfYncpOyBpKyspIHsKIAkJY29uc3Qgc3RydWN0IGludGVsX2J3X2luZm8gKmJpID0K IAkJCSZkZXZfcHJpdi0+bWF4X2J3W2ldOwpAQCAtMjc3LDM0ICszMTUsNiBAQCB2b2lkIGludGVs X2J3X2luaXRfaHcoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogCQlpY2xfZ2V0 X2J3X2luZm8oZGV2X3ByaXYsICZpY2xfc2FfaW5mbyk7CiB9CiAKLXN0YXRpYyB1bnNpZ25lZCBp bnQgaW50ZWxfbWF4X2RhdGFfcmF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYs Ci0JCQkJCWludCBudW1fcGxhbmVzKQotewotCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDEx KSB7Ci0JCS8qCi0JCSAqIEFueSBidyBncm91cCBoYXMgc2FtZSBhbW91bnQgb2YgUUdWIHBvaW50 cwotCQkgKi8KLQkJY29uc3Qgc3RydWN0IGludGVsX2J3X2luZm8gKmJpID0KLQkJCSZkZXZfcHJp di0+bWF4X2J3WzBdOwotCQl1bnNpZ25lZCBpbnQgbWluX2J3ID0gVUlOVF9NQVg7Ci0JCWludCBp OwotCi0JCS8qCi0JCSAqIEZJWE1FIHdpdGggU0FHViBkaXNhYmxlZCBtYXliZSB3ZSBjYW4gYXNz dW1lCi0JCSAqIHBvaW50IDEgd2lsbCBhbHdheXMgYmUgdXNlZD8gU2VlbXMgdG8gbWF0Y2gKLQkJ ICogdGhlIGJlaGF2aW91ciBvYnNlcnZlZCBpbiB0aGUgd2lsZC4KLQkJICovCi0JCWZvciAoaSA9 IDA7IGkgPCBiaS0+bnVtX3Fndl9wb2ludHM7IGkrKykgewotCQkJdW5zaWduZWQgaW50IGJ3ID0g aWNsX21heF9idyhkZXZfcHJpdiwgbnVtX3BsYW5lcywgaSk7Ci0KLQkJCW1pbl9idyA9IG1pbihi dywgbWluX2J3KTsKLQkJfQotCQlyZXR1cm4gbWluX2J3OwotCX0gZWxzZSB7Ci0JCXJldHVybiBV SU5UX01BWDsKLQl9Ci19Ci0KIHN0YXRpYyB1bnNpZ25lZCBpbnQgaW50ZWxfYndfY3J0Y19udW1f YWN0aXZlX3BsYW5lcyhjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkK IHsKIAkvKgpAQCAtNDE1LDEwICs0MjUsMTUgQEAgaW50IGludGVsX2J3X2F0b21pY19jaGVjayhz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7CiAJc3RydWN0IGludGVsX2Ny dGNfc3RhdGUgKm5ld19jcnRjX3N0YXRlLCAqb2xkX2NydGNfc3RhdGU7CiAJc3RydWN0IGludGVs X2J3X3N0YXRlICpuZXdfYndfc3RhdGUgPSBOVUxMOwotCXVuc2lnbmVkIGludCBkYXRhX3JhdGUs IG1heF9kYXRhX3JhdGU7CisJY29uc3Qgc3RydWN0IGludGVsX2J3X3N0YXRlICpvbGRfYndfc3Rh dGUgPSBOVUxMOworCXVuc2lnbmVkIGludCBkYXRhX3JhdGU7CiAJdW5zaWduZWQgaW50IG51bV9h Y3RpdmVfcGxhbmVzOwogCXN0cnVjdCBpbnRlbF9jcnRjICpjcnRjOwogCWludCBpLCByZXQ7CisJ dTMyIGFsbG93ZWRfcG9pbnRzID0gMDsKKwl1bnNpZ25lZCBpbnQgbWF4X2J3X3BvaW50ID0gMCwg bWF4X2J3ID0gMDsKKwl1bnNpZ25lZCBpbnQgbnVtX3Fndl9wb2ludHMgPSBkZXZfcHJpdi0+bWF4 X2J3WzBdLm51bV9xZ3ZfcG9pbnRzOworCXUzMiBtYXNrID0gKDEgPDwgbnVtX3Fndl9wb2ludHMp IC0gMTsKIAogCS8qIEZJWE1FIGVhcmxpZXIgZ2VucyBuZWVkIHNvbWUgY2hlY2tzIHRvbyAqLwog CWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTEpCkBAIC00NjUsMTkgKzQ4MCw3MyBAQCBpbnQg aW50ZWxfYndfYXRvbWljX2NoZWNrKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQog CQlyZXR1cm4gcmV0OwogCiAJZGF0YV9yYXRlID0gaW50ZWxfYndfZGF0YV9yYXRlKGRldl9wcml2 LCBuZXdfYndfc3RhdGUpOworCWRhdGFfcmF0ZSA9IERJVl9ST1VORF9VUChkYXRhX3JhdGUsIDEw MDApOworCiAJbnVtX2FjdGl2ZV9wbGFuZXMgPSBpbnRlbF9id19udW1fYWN0aXZlX3BsYW5lcyhk ZXZfcHJpdiwgbmV3X2J3X3N0YXRlKTsKIAotCW1heF9kYXRhX3JhdGUgPSBpbnRlbF9tYXhfZGF0 YV9yYXRlKGRldl9wcml2LCBudW1fYWN0aXZlX3BsYW5lcyk7CisJZm9yIChpID0gMDsgaSA8IG51 bV9xZ3ZfcG9pbnRzOyBpKyspIHsKKwkJdW5zaWduZWQgaW50IG1heF9kYXRhX3JhdGU7CiAKLQlk YXRhX3JhdGUgPSBESVZfUk9VTkRfVVAoZGF0YV9yYXRlLCAxMDAwKTsKKwkJbWF4X2RhdGFfcmF0 ZSA9IGljbF9tYXhfYncoZGV2X3ByaXYsIG51bV9hY3RpdmVfcGxhbmVzLCBpKTsKKwkJLyoKKwkJ ICogV2UgbmVlZCB0byBrbm93IHdoaWNoIHFndiBwb2ludCBnaXZlcyB1cworCQkgKiBtYXhpbXVt IGJhbmR3aWR0aCBpbiBvcmRlciB0byBkaXNhYmxlIFNBR1YKKwkJICogaWYgd2UgZmluZCB0aGF0 IHdlIGV4Y2VlZCBTQUdWIGJsb2NrIHRpbWUKKwkJICogd2l0aCB3YXRlcm1hcmtzLiBCeSB0aGF0 IG1vbWVudCB3ZSBhbHJlYWR5CisJCSAqIGhhdmUgdGhvc2UsIGFzIGl0IGlzIGNhbGN1bGF0ZWQg ZWFybGllciBpbgorCQkgKiBpbnRlbF9hdG9taWNfY2hlY2ssCisJCSAqLworCQlpZiAobWF4X2Rh dGFfcmF0ZSA+IG1heF9idykgeworCQkJbWF4X2J3X3BvaW50ID0gaTsKKwkJCW1heF9idyA9IG1h eF9kYXRhX3JhdGU7CisJCX0KKwkJaWYgKG1heF9kYXRhX3JhdGUgPj0gZGF0YV9yYXRlKQorCQkJ YWxsb3dlZF9wb2ludHMgfD0gQklUKGkpOworCQlEUk1fREVCVUdfS01TKCJRR1YgcG9pbnQgJWQ6 IG1heCBidyAlZCByZXF1aXJlZCAlZFxuIiwKKwkJCSAgICAgIGksIG1heF9kYXRhX3JhdGUsIGRh dGFfcmF0ZSk7CisJfQogCi0JaWYgKGRhdGFfcmF0ZSA+IG1heF9kYXRhX3JhdGUpIHsKLQkJZHJt X2RiZ19rbXMoJmRldl9wcml2LT5kcm0sCi0JCQkgICAgIkJhbmR3aWR0aCAldSBNQi9zIGV4Y2Vl ZHMgbWF4IGF2YWlsYWJsZSAlZCBNQi9zICglZCBhY3RpdmUgcGxhbmVzKVxuIiwKLQkJCSAgICBk YXRhX3JhdGUsIG1heF9kYXRhX3JhdGUsIG51bV9hY3RpdmVfcGxhbmVzKTsKKwkvKgorCSAqIEJT cGVjIHN0YXRlcyB0aGF0IHdlIGFsd2F5cyBzaG91bGQgaGF2ZSBhdCBsZWFzdCBvbmUgYWxsb3dl ZCBwb2ludAorCSAqIGxlZnQsIHNvIGlmIHdlIGNvdWxkbid0IC0gc2ltcGx5IHJlamVjdCB0aGUg Y29uZmlndXJhdGlvbiBmb3Igb2J2aW91cworCSAqIHJlYXNvbnMuCisJICovCisJaWYgKGFsbG93 ZWRfcG9pbnRzID09IDApIHsKKwkJRFJNX0RFQlVHX0tNUygiTm8gUUdWIHBvaW50cyBwcm92aWRl IHN1ZmZpY2llbnQgbWVtb3J5IgorCQkJICAgICAgIiBiYW5kd2lkdGggJWQgZm9yIGRpc3BsYXkg Y29uZmlndXJhdGlvbi5cbiIsIGRhdGFfcmF0ZSk7CiAJCXJldHVybiAtRUlOVkFMOwogCX0KIAor CS8qCisJICogTGVhdmUgb25seSBzaW5nbGUgcG9pbnQgd2l0aCBoaWdoZXN0IGJhbmR3aWR0aCwg aWYKKwkgKiB3ZSBjYW4ndCBlbmFibGUgU0FHViBkdWUgdG8gdGhlIGluY3JlYXNlZCBtZW1vcnkg bGF0ZW5jeSBpdCBtYXkKKwkgKiBjYXVzZS4KKwkgKi8KKwlpZiAoIWludGVsX2Nhbl9lbmFibGVf c2FndihuZXdfYndfc3RhdGUpKSB7CisJCWFsbG93ZWRfcG9pbnRzID0gQklUKG1heF9id19wb2lu dCk7CisJCURSTV9ERUJVR19LTVMoIk5vIFNBR1YsIHVzaW5nIHNpbmdsZSBRR1YgcG9pbnQgJWRc biIsCisJCQkgICAgICBtYXhfYndfcG9pbnQpOworCX0KKwkvKgorCSAqIFdlIHN0b3JlIHRoZSBv bmVzIHdoaWNoIG5lZWQgdG8gYmUgbWFza2VkIGFzIHRoYXQgaXMgd2hhdCBQQ29kZQorCSAqIGFj dHVhbGx5IGFjY2VwdHMgYXMgYSBwYXJhbWV0ZXIuCisJICovCisJbmV3X2J3X3N0YXRlLT5xZ3Zf cG9pbnRzX21hc2sgPSAofmFsbG93ZWRfcG9pbnRzKSAmIG1hc2s7CisKKwlvbGRfYndfc3RhdGUg PSBpbnRlbF9hdG9taWNfZ2V0X29sZF9id19zdGF0ZShzdGF0ZSk7CisJaWYgKCFvbGRfYndfc3Rh dGUpCisJCXJldHVybiAtRUlOVkFMOworCisJLyoKKwkgKiBJZiB0aGUgYWN0dWFsIG1hc2sgaGFk IGNoYW5nZWQgd2UgbmVlZCB0byBtYWtlIHN1cmUgdGhhdAorCSAqIHRoZSBjb21taXRzIGFyZSBz ZXJpYWxpemVkKGluIGNhc2UgdGhpcyBpcyBhIG5vbW9kZXNldCwgbm9uYmxvY2tpbmcpCisJICov CisJaWYgKG5ld19id19zdGF0ZS0+cWd2X3BvaW50c19tYXNrICE9IG9sZF9id19zdGF0ZS0+cWd2 X3BvaW50c19tYXNrKSB7CisJCXJldCA9IGludGVsX2F0b21pY19zZXJpYWxpemVfZ2xvYmFsX3N0 YXRlKCZuZXdfYndfc3RhdGUtPmJhc2UpOworCQlpZiAocmV0KQorCQkJcmV0dXJuIHJldDsKKwl9 CisKIAlyZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlz cGxheS9pbnRlbF9idy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9idy5o CmluZGV4IDg5OGI0YTg1Y2NhYi4uYmJjYWFhNzNlYzFiIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2J3LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF9idy5oCkBAIC0yNCw2ICsyNCwxMyBAQCBzdHJ1Y3QgaW50ZWxfYndfc3Rh dGUgewogCSAqLwogCXU4IHBpcGVfc2Fndl9yZWplY3Q7CiAKKwkvKgorCSAqIEN1cnJlbnQgUUdW IHBvaW50cyBtYXNrLCB3aGljaCByZXN0cmljdHMKKwkgKiBzb21lIHBhcnRpY3VsYXIgU0FHViBz dGF0ZXMsIG5vdCB0byBjb25mdXNlCisJICogd2l0aCBwaXBlX3NhZ3ZfbWFzay4KKwkgKi8KKwl1 OCBxZ3ZfcG9pbnRzX21hc2s7CisKIAl1bnNpZ25lZCBpbnQgZGF0YV9yYXRlW0k5MTVfTUFYX1BJ UEVTXTsKIAl1OCBudW1fYWN0aXZlX3BsYW5lc1tJOTE1X01BWF9QSVBFU107CiAKQEAgLTQ3LDUg KzU0LDcgQEAgaW50IGludGVsX2J3X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2KTsKIGludCBpbnRlbF9id19hdG9taWNfY2hlY2soc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSAqc3RhdGUpOwogdm9pZCBpbnRlbF9id19jcnRjX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfYndfc3Rh dGUgKmJ3X3N0YXRlLAogCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19z dGF0ZSk7CitpbnQgaWNsX3Bjb2RlX3Jlc3RyaWN0X3Fndl9wb2ludHMoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LAorCQkJCSAgdTMyIHBvaW50c19tYXNrKTsKIAogI2VuZGlmIC8q IF9fSU5URUxfQldfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXlfdHlwZXMuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkv aW50ZWxfZGlzcGxheV90eXBlcy5oCmluZGV4IDMyY2JiZjdkZGRjNi4uYTE2YWViMjM1NjU0IDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlw ZXMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfdHlw ZXMuaApAQCAtNjkzLDYgKzY5Myw5IEBAIHN0cnVjdCBza2xfcGxhbmVfd20gewogCWJvb2wgaXNf cGxhbmFyOwogfTsKIAorLyogQlNwZWMgcHJlY2lzZWx5IGRlZmluZXMgdGhpcyAqLworI2RlZmlu ZSBOVU1fU0FHVl9QT0lOVFMgOAorCiBzdHJ1Y3Qgc2tsX3BpcGVfd20gewogCXN0cnVjdCBza2xf cGxhbmVfd20gcGxhbmVzW0k5MTVfTUFYX1BMQU5FU107CiAJYm9vbCBjYW5fc2FndjsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jCmluZGV4IDFiOTkyNWI2NjcyYy4uNWQwYWFiNTE1ZTJhIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX3BtLmMKQEAgLTM3NjEsNyArMzc2MSwxMCBAQCBpbnRlbF9kaXNhYmxlX3Nh Z3Yoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogdm9pZCBpbnRlbF9zYWd2X3By ZV9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiB7CiAJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShzdGF0ZS0+YmFzZS5kZXYp OworCWludCByZXQ7CiAJY29uc3Qgc3RydWN0IGludGVsX2J3X3N0YXRlICpuZXdfYndfc3RhdGU7 CisJY29uc3Qgc3RydWN0IGludGVsX2J3X3N0YXRlICpvbGRfYndfc3RhdGU7CisJdTMyIG5ld19t YXNrID0gMDsKIAogCS8qCiAJICogSnVzdCByZXR1cm4gaWYgd2UgY2FuJ3QgY29udHJvbCBTQUdW IG9yIGRvbid0IGhhdmUgaXQuCkBAIC0zNzc3LDE1ICszNzgwLDQ4IEBAIHZvaWQgaW50ZWxfc2Fn dl9wcmVfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCWlm ICghbmV3X2J3X3N0YXRlKQogCQlyZXR1cm47CiAKLQlpZiAoIWludGVsX2Nhbl9lbmFibGVfc2Fn dihuZXdfYndfc3RhdGUpKQorCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpIDwgMTEgJiYgIWludGVs X2Nhbl9lbmFibGVfc2FndihuZXdfYndfc3RhdGUpKSB7CiAJCWludGVsX2Rpc2FibGVfc2Fndihk ZXZfcHJpdik7CisJCXJldHVybjsKKwl9CisKKwlvbGRfYndfc3RhdGUgPSBpbnRlbF9hdG9taWNf Z2V0X29sZF9id19zdGF0ZShzdGF0ZSk7CisJaWYgKCFvbGRfYndfc3RhdGUpCisJCXJldHVybjsK KworCS8qCisJICogTm90aGluZyB0byBtYXNrCisJICovCisJaWYgKG5ld19id19zdGF0ZS0+cWd2 X3BvaW50c19tYXNrID09IG9sZF9id19zdGF0ZS0+cWd2X3BvaW50c19tYXNrKQorCQlyZXR1cm47 CisKKwluZXdfbWFzayA9IG9sZF9id19zdGF0ZS0+cWd2X3BvaW50c19tYXNrIHwgbmV3X2J3X3N0 YXRlLT5xZ3ZfcG9pbnRzX21hc2s7CisKKwkvKgorCSAqIElmIG5ldyBtYXNrIGlzIHplcm8gLSBt ZWFucyB0aGVyZSBpcyBub3RoaW5nIHRvIG1hc2ssCisJICogd2UgY2FuIG9ubHkgdW5tYXNrLCB3 aGljaCBzaG91bGQgYmUgZG9uZSBpbiB1bm1hc2suCisJICovCisJaWYgKCFuZXdfbWFzaykKKwkJ cmV0dXJuOworCisJLyoKKwkgKiBSZXN0cmljdCByZXF1aXJlZCBxZ3YgcG9pbnRzIGJlZm9yZSB1 cGRhdGluZyB0aGUgY29uZmlndXJhdGlvbi4KKwkgKiBBY2NvcmRpbmcgdG8gQlNwZWMgd2UgY2Fu J3QgbWFzayBhbmQgdW5tYXNrIHFndiBwb2ludHMgYXQgdGhlIHNhbWUKKwkgKiB0aW1lLiBBbHNv IG1hc2tpbmcgc2hvdWxkIGJlIGRvbmUgYmVmb3JlIHVwZGF0aW5nIHRoZSBjb25maWd1cmF0aW9u CisJICogYW5kIHVubWFza2luZyBhZnRlcndhcmRzLgorCSAqLworCXJldCA9IGljbF9wY29kZV9y ZXN0cmljdF9xZ3ZfcG9pbnRzKGRldl9wcml2LCBuZXdfbWFzayk7CisJaWYgKHJldCA8IDApCisJ CWRybV9lcnIoJmRldl9wcml2LT5kcm0sICJDb3VsZCBub3QgbWFzayByZXF1aXJlZCBxZ3YgcG9p bnRzKCVkKVxuIiwgcmV0KTsKIH0KIAogdm9pZCBpbnRlbF9zYWd2X3Bvc3RfcGxhbmVfdXBkYXRl KHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoc3RhdGUtPmJhc2UuZGV2KTsKKwlpbnQgcmV0Owog CWNvbnN0IHN0cnVjdCBpbnRlbF9id19zdGF0ZSAqbmV3X2J3X3N0YXRlOwotCisJY29uc3Qgc3Ry dWN0IGludGVsX2J3X3N0YXRlICpvbGRfYndfc3RhdGU7CisJdTMyIG5ld19tYXNrID0gMDsKIAkv KgogCSAqIEp1c3QgcmV0dXJuIGlmIHdlIGNhbid0IGNvbnRyb2wgU0FHViBvciBkb24ndCBoYXZl IGl0LgogCSAqIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gc2l0dWF0aW9uIHdoZW4gd2UgaGF2ZSBT QUdWIGJ1dCBqdXN0IGNhbid0CkBAIC0zODAwLDggKzM4MzYsMzIgQEAgdm9pZCBpbnRlbF9zYWd2 X3Bvc3RfcGxhbmVfdXBkYXRlKHN0cnVjdCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogCWlm ICghbmV3X2J3X3N0YXRlKQogCQlyZXR1cm47CiAKLQlpZiAoaW50ZWxfY2FuX2VuYWJsZV9zYWd2 KG5ld19id19zdGF0ZSkpCisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCAxMSAmJiBpbnRlbF9j YW5fZW5hYmxlX3NhZ3YobmV3X2J3X3N0YXRlKSkgewogCQlpbnRlbF9lbmFibGVfc2FndihkZXZf cHJpdik7CisJCXJldHVybjsKKwl9CisKKwlvbGRfYndfc3RhdGUgPSBpbnRlbF9hdG9taWNfZ2V0 X29sZF9id19zdGF0ZShzdGF0ZSk7CisJaWYgKCFvbGRfYndfc3RhdGUpCisJCXJldHVybjsKKwor CS8qCisJICogTm90aGluZyB0byB1bm1hc2sKKwkgKi8KKwlpZiAobmV3X2J3X3N0YXRlLT5xZ3Zf cG9pbnRzX21hc2sgPT0gb2xkX2J3X3N0YXRlLT5xZ3ZfcG9pbnRzX21hc2spCisJCXJldHVybjsK KworCW5ld19tYXNrID0gbmV3X2J3X3N0YXRlLT5xZ3ZfcG9pbnRzX21hc2s7CisKKwkvKgorCSAq IEFsbG93IHJlcXVpcmVkIHFndiBwb2ludHMgYWZ0ZXIgdXBkYXRpbmcgdGhlIGNvbmZpZ3VyYXRp b24uCisJICogQWNjb3JkaW5nIHRvIEJTcGVjIHdlIGNhbid0IG1hc2sgYW5kIHVubWFzayBxZ3Yg cG9pbnRzIGF0IHRoZSBzYW1lCisJICogdGltZS4gQWxzbyBtYXNraW5nIHNob3VsZCBiZSBkb25l IGJlZm9yZSB1cGRhdGluZyB0aGUgY29uZmlndXJhdGlvbgorCSAqIGFuZCB1bm1hc2tpbmcgYWZ0 ZXJ3YXJkcy4KKwkgKi8KKwlyZXQgPSBpY2xfcGNvZGVfcmVzdHJpY3RfcWd2X3BvaW50cyhkZXZf cHJpdiwgbmV3X21hc2spOworCWlmIChyZXQgPCAwKQorCQlkcm1fZXJyKCZkZXZfcHJpdi0+ZHJt LCAiQ291bGQgbm90IHVubWFzayByZXF1aXJlZCBxZ3YgcG9pbnRzKCVkKVxuIiwgcmV0KTsKIH0K IAogc3RhdGljIGJvb2wgaW50ZWxfY3J0Y19jYW5fZW5hYmxlX3NhZ3YoY29uc3Qgc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uaAppbmRleCBm ZDFkYzQyMmU2YzUuLjRhZTkxYWQ1ZDViMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcG0uaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5oCkBAIC00 Miw2ICs0Miw4IEBAIHZvaWQgc2tsX3BpcGVfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjLAogCQkJICAgICAgc3RydWN0IHNrbF9waXBlX3dtICpvdXQpOwogdm9pZCBnNHhf d21fc2FuaXRpemUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgdmx2 X3dtX3Nhbml0aXplKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Cit2b2lkIGlu dGVsX3NhZ3ZfcHJlX3BsYW5lX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0 ZSk7Cit2b2lkIGludGVsX3NhZ3ZfcG9zdF9wbGFuZV91cGRhdGUoc3RydWN0IGludGVsX2F0b21p Y19zdGF0ZSAqc3RhdGUpOwogYm9vbCBpbnRlbF9jYW5fZW5hYmxlX3NhZ3YoY29uc3Qgc3RydWN0 IGludGVsX2J3X3N0YXRlICpid19zdGF0ZSk7CiBpbnQgaW50ZWxfZW5hYmxlX3NhZ3Yoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIGludCBpbnRlbF9kaXNhYmxlX3NhZ3Yoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKLS0gCjIuMjQuMS40ODUuZ2FkMDVhM2Q4 ZTUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=