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.7 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 9BF54C35241 for ; Fri, 13 Dec 2019 20:39:57 +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 DF006247FC for ; Fri, 13 Dec 2019 20:39:56 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org DF006247FC 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 0EEE56E90B; Fri, 13 Dec 2019 14:15:28 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 869416E8F0 for ; Fri, 13 Dec 2019 14:15:26 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Dec 2019 06:15:26 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.69,309,1571727600"; d="scan'208";a="415648342" Received: from slisovsk-lenovo-ideapad-720s-13ikb.fi.intel.com ([10.237.72.89]) by fmsmga006.fm.intel.com with ESMTP; 13 Dec 2019 06:15:24 -0800 From: Stanislav Lisovskiy To: intel-gfx@lists.freedesktop.org Date: Fri, 13 Dec 2019 16:12:30 +0200 Message-Id: <20191213141231.7330-3-stanislav.lisovskiy@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191213141231.7330-1-stanislav.lisovskiy@intel.com> References: <20191213141231.7330-1-stanislav.lisovskiy@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v12 2/3] 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 ICB1bmRlcnN0YW5kYWJsZS4oTWF0dCBSb3BlcikKClJldmlld2VkLWJ5OiBKYW1lcyBBdXNtdXMg PGphbWVzLmF1c211c0BpbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFN0YW5pc2xhdiBMaXNvdnNr aXkgPHN0YW5pc2xhdi5saXNvdnNraXlAaW50ZWwuY29tPgpDYzogVmlsbGUgU3lyasOkbMOkIDx2 aWxsZS5zeXJqYWxhQGludGVsLmNvbT4KQ2M6IEphbWVzIEF1c211cyA8amFtZXMuYXVzbXVzQGlu dGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2J3LmMgICAg ICAgfCAxNDQgKysrKysrKysrKysrKy0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2J3LmggICAgICAgfCAgIDIgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5LmMgIHwgIDg3ICsrKysrKysrKystCiAuLi4vZHJtL2k5MTUvZGlzcGxheS9p bnRlbF9kaXNwbGF5X3R5cGVzLmggICAgfCAgIDMgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaCAgICAgICAgICAgICAgIHwgICA1ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf cmVnLmggICAgICAgICAgICAgICB8ICAgNSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9z aWRlYmFuZC5jICAgICAgICAgfCAgMjcgKysrLQogNyBmaWxlcyBjaGFuZ2VkLCAyMzMgaW5zZXJ0 aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9idy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRl bF9idy5jCmluZGV4IGRjYjY2YTMzYmU5Yi4uOTVkOGQ3ZGZhNzY5IDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2J3LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9idy5jCkBAIC04LDYgKzgsOSBAQAogI2luY2x1ZGUgImludGVs X2J3LmgiCiAjaW5jbHVkZSAiaW50ZWxfZGlzcGxheV90eXBlcy5oIgogI2luY2x1ZGUgImludGVs X3NpZGViYW5kLmgiCisjaW5jbHVkZSAiaW50ZWxfYXRvbWljLmgiCisjaW5jbHVkZSAiaW50ZWxf cG0uaCIKKwogCiAvKiBQYXJhbWV0ZXJzIGZvciBRY2xrIEdleXNlcnZpbGxlIChRR1YpICovCiBz dHJ1Y3QgaW50ZWxfcWd2X3BvaW50IHsKQEAgLTExMyw2ICsxMTYsMjYgQEAgc3RhdGljIGludCBp Y2xfcGNvZGVfcmVhZF9xZ3ZfcG9pbnRfaW5mbyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCiAJcmV0dXJuIDA7CiB9CiAKK2ludCBpY2xfcGNvZGVfcmVzdHJpY3RfcWd2X3BvaW50 cyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCisJCQkJICB1MzIgcG9pbnRzX21h c2spCit7CisJaW50IHJldDsKKworCS8qIGJzcGVjIHNheXMgdG8ga2VlcCByZXRyeWluZyBmb3Ig YXQgbGVhc3QgMSBtcyAqLworCXJldCA9IHNrbF9wY29kZV9yZXF1ZXN0KGRldl9wcml2LCBJQ0xf UENPREVfU0FHVl9ERV9NRU1fU1NfQ09ORklHLAorCQkJCXBvaW50c19tYXNrLAorCQkJCUdFTjEx X1BDT0RFX1BPSU5UU19SRVNUUklDVEVEX01BU0ssCisJCQkJR0VOMTFfUENPREVfUE9JTlRTX1JF U1RSSUNURUQsCisJCQkJMSk7CisKKwlpZiAocmV0IDwgMCkgeworCQlEUk1fRVJST1IoIkZhaWxl ZCB0byBkaXNhYmxlIHFndiBwb2ludHMgKCVkKVxuIiwgcmV0KTsKKwkJcmV0dXJuIHJldDsKKwl9 CisKKwlyZXR1cm4gMDsKK30KKwogc3RhdGljIGludCBpY2xfZ2V0X3Fndl9wb2ludHMoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogCQkJICAgICAgc3RydWN0IGludGVsX3Fndl9p bmZvICpxaSkKIHsKQEAgLTIzNiw2ICsyNTksMTYgQEAgc3RhdGljIGludCBpY2xfZ2V0X2J3X2lu Zm8oc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBjb25zdCBzdHJ1Y3QgaW50ZWwK IAkJCWJyZWFrOwogCX0KIAorCS8qCisJICogSW4gY2FzZSBpZiBTQUdWIGlzIGRpc2FibGVkIGlu IEJJT1MsIHdlIGFsd2F5cyBnZXQgMQorCSAqIFNBR1YgcG9pbnQsIGJ1dCB3ZSBjYW4ndCBzZW5k IFBDb2RlIGNvbW1hbmRzIHRvIHJlc3RyaWN0IGl0CisJICogYXMgaXQgd2lsbCBmYWlsIGFuZCBw b2ludGxlc3MgYW55d2F5LgorCSAqLworCWlmIChxaS5udW1fcG9pbnRzID09IDEpCisJCWRldl9w cml2LT5zYWd2X3N0YXR1cyA9IEk5MTVfU0FHVl9OT1RfQ09OVFJPTExFRDsKKwllbHNlCisJCWRl dl9wcml2LT5zYWd2X3N0YXR1cyA9IEk5MTVfU0FHVl9FTkFCTEVEOworCiAJcmV0dXJuIDA7CiB9 CiAKQEAgLTI3MywzNCArMzA2LDYgQEAgdm9pZCBpbnRlbF9id19pbml0X2h3KHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdikKIAkJaWNsX2dldF9id19pbmZvKGRldl9wcml2LCAmaWNs X3NhX2luZm8pOwogfQogCi1zdGF0aWMgdW5zaWduZWQgaW50IGludGVsX21heF9kYXRhX3JhdGUo c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAotCQkJCQlpbnQgbnVtX3BsYW5lcykK LXsKLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkgewotCQkvKgotCQkgKiBBbnkgYncg Z3JvdXAgaGFzIHNhbWUgYW1vdW50IG9mIFFHViBwb2ludHMKLQkJICovCi0JCWNvbnN0IHN0cnVj dCBpbnRlbF9id19pbmZvICpiaSA9Ci0JCQkmZGV2X3ByaXYtPm1heF9id1swXTsKLQkJdW5zaWdu ZWQgaW50IG1pbl9idyA9IFVJTlRfTUFYOwotCQlpbnQgaTsKLQotCQkvKgotCQkgKiBGSVhNRSB3 aXRoIFNBR1YgZGlzYWJsZWQgbWF5YmUgd2UgY2FuIGFzc3VtZQotCQkgKiBwb2ludCAxIHdpbGwg YWx3YXlzIGJlIHVzZWQ/IFNlZW1zIHRvIG1hdGNoCi0JCSAqIHRoZSBiZWhhdmlvdXIgb2JzZXJ2 ZWQgaW4gdGhlIHdpbGQuCi0JCSAqLwotCQlmb3IgKGkgPSAwOyBpIDwgYmktPm51bV9xZ3ZfcG9p bnRzOyBpKyspIHsKLQkJCXVuc2lnbmVkIGludCBidyA9IGljbF9tYXhfYncoZGV2X3ByaXYsIG51 bV9wbGFuZXMsIGkpOwotCi0JCQltaW5fYncgPSBtaW4oYncsIG1pbl9idyk7Ci0JCX0KLQkJcmV0 dXJuIG1pbl9idzsKLQl9IGVsc2UgewotCQlyZXR1cm4gVUlOVF9NQVg7Ci0JfQotfQotCiBzdGF0 aWMgdW5zaWduZWQgaW50IGludGVsX2J3X2NydGNfbnVtX2FjdGl2ZV9wbGFuZXMoY29uc3Qgc3Ry dWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCiB7CiAJLyoKQEAgLTM5Miw3ICszOTcs MTEgQEAgaW50IGludGVsX2J3X2F0b21pY19jaGVjayhzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRl ICpzdGF0ZSkKIAl1bnNpZ25lZCBpbnQgZGF0YV9yYXRlLCBtYXhfZGF0YV9yYXRlOwogCXVuc2ln bmVkIGludCBudW1fYWN0aXZlX3BsYW5lczsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YzsKLQlp bnQgaTsKKwlpbnQgaSwgcmV0OworCXUzMiBhbGxvd2VkX3BvaW50cyA9IDA7CisJdW5zaWduZWQg aW50IG1heF9id19wb2ludCA9IDAsIG1heF9idyA9IDA7CisJdW5zaWduZWQgaW50IG51bV9xZ3Zf cG9pbnRzID0gZGV2X3ByaXYtPm1heF9id1swXS5udW1fcWd2X3BvaW50czsKKwl1MzIgbWFzayA9 ICgxIDw8IG51bV9xZ3ZfcG9pbnRzKSAtIDE7CiAKIAkvKiBGSVhNRSBlYXJsaWVyIGdlbnMgbmVl ZCBzb21lIGNoZWNrcyB0b28gKi8KIAlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDExKQpAQCAt NDM2LDE2ICs0NDUsODMgQEAgaW50IGludGVsX2J3X2F0b21pY19jaGVjayhzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlICpzdGF0ZSkKIAlkYXRhX3JhdGUgPSBpbnRlbF9id19kYXRhX3JhdGUoZGV2 X3ByaXYsIGJ3X3N0YXRlKTsKIAludW1fYWN0aXZlX3BsYW5lcyA9IGludGVsX2J3X251bV9hY3Rp dmVfcGxhbmVzKGRldl9wcml2LCBid19zdGF0ZSk7CiAKLQltYXhfZGF0YV9yYXRlID0gaW50ZWxf bWF4X2RhdGFfcmF0ZShkZXZfcHJpdiwgbnVtX2FjdGl2ZV9wbGFuZXMpOwotCiAJZGF0YV9yYXRl ID0gRElWX1JPVU5EX1VQKGRhdGFfcmF0ZSwgMTAwMCk7CiAKLQlpZiAoZGF0YV9yYXRlID4gbWF4 X2RhdGFfcmF0ZSkgewotCQlEUk1fREVCVUdfS01TKCJCYW5kd2lkdGggJXUgTUIvcyBleGNlZWRz IG1heCBhdmFpbGFibGUgJWQgTUIvcyAoJWQgYWN0aXZlIHBsYW5lcylcbiIsCi0JCQkgICAgICBk YXRhX3JhdGUsIG1heF9kYXRhX3JhdGUsIG51bV9hY3RpdmVfcGxhbmVzKTsKKwlmb3IgKGkgPSAw OyBpIDwgbnVtX3Fndl9wb2ludHM7IGkrKykgeworCQltYXhfZGF0YV9yYXRlID0gaWNsX21heF9i dyhkZXZfcHJpdiwgbnVtX2FjdGl2ZV9wbGFuZXMsIGkpOworCQkvKgorCQkgKiBXZSBuZWVkIHRv IGtub3cgd2hpY2ggcWd2IHBvaW50IGdpdmVzIHVzCisJCSAqIG1heGltdW0gYmFuZHdpZHRoIGlu IG9yZGVyIHRvIGRpc2FibGUgU0FHVgorCQkgKiBpZiB3ZSBmaW5kIHRoYXQgd2UgZXhjZWVkIFNB R1YgYmxvY2sgdGltZQorCQkgKiB3aXRoIHdhdGVybWFya3MuIEJ5IHRoYXQgbW9tZW50IHdlIGFs cmVhZHkKKwkJICogaGF2ZSB0aG9zZSwgYXMgaXQgaXMgY2FsY3VsYXRlZCBlYXJsaWVyIGluCisJ CSAqIGludGVsX2F0b21pY19jaGVjaywKKwkJICovCisJCWlmIChtYXhfZGF0YV9yYXRlID4gbWF4 X2J3KSB7CisJCQltYXhfYndfcG9pbnQgPSBpOworCQkJbWF4X2J3ID0gbWF4X2RhdGFfcmF0ZTsK KwkJfQorCQlpZiAobWF4X2RhdGFfcmF0ZSA+PSBkYXRhX3JhdGUpCisJCQlhbGxvd2VkX3BvaW50 cyB8PSBCSVQoaSk7CisJCURSTV9ERUJVR19LTVMoIlFHViBwb2ludCAlZDogbWF4IGJ3ICVkIHJl cXVpcmVkICVkXG4iLAorCQkJICAgICAgaSwgbWF4X2RhdGFfcmF0ZSwgZGF0YV9yYXRlKTsKKwl9 CisKKwkvKgorCSAqIEJTcGVjIHN0YXRlcyB0aGF0IHdlIGFsd2F5cyBzaG91bGQgaGF2ZSBhdCBs ZWFzdCBvbmUgYWxsb3dlZCBwb2ludAorCSAqIGxlZnQsIHNvIGlmIHdlIGNvdWxkbid0IC0gc2lt cGx5IHJlamVjdCB0aGUgY29uZmlndXJhdGlvbiBmb3Igb2J2aW91cworCSAqIHJlYXNvbnMuCisJ ICovCisJaWYgKGFsbG93ZWRfcG9pbnRzID09IDApIHsKKwkJRFJNX0RFQlVHX0tNUygiTm8gUUdW IHBvaW50cyBwcm92aWRlIHN1ZmZpY2llbnQgbWVtb3J5IgorCQkJICAgICAgIiBiYW5kd2lkdGgg Zm9yIGRpc3BsYXkgY29uZmlndXJhdGlvbi5cbiIpOwogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAK KwkvKgorCSAqIExlYXZlIG9ubHkgc2luZ2xlIHBvaW50IHdpdGggaGlnaGVzdCBiYW5kd2lkdGgs IGlmCisJICogd2UgY2FuJ3QgZW5hYmxlIFNBR1YgZHVlIHRvIHRoZSBpbmNyZWFzZWQgbWVtb3J5 IGxhdGVuY3kgaXQgbWF5CisJICogY2F1c2UuCisJICovCisJaWYgKCFpbnRlbF9jYW5fZW5hYmxl X3NhZ3Yoc3RhdGUpKSB7CisJCS8qCisJCSAqIFRoaXMgaXMgYSBzcGVjaWFsIGNhc2UsIHdoZW4g d2UgaGF2ZSAwIHBsYW5lcworCQkgKiBhbmQgU0FHViBjYW4ndCBiZSBlbmFibGVkIG1lYW5zIHRo YXQgd2Ugc2hvdWxkIGtlZXAgUUdWIHdpdGgKKwkJICogaGlnaGVzdCBiYW5kd2lkdGgsIGhvd2V2 ZXIgYWxnb3JpdGhtIHJldHVybnMgd3JvbmcgcmVzdWx0CisJCSAqIGZvciAwIHBsYW5lcyBhbmQg MCBkYXRhIHJhdGUgY2FzZSwgc28ganVzdCBzdGljayB0byBsYXN0IGNvbmZpZworCQkgKiB0aGVu LiBPdGhlcndpc2UgdXNlIHRoZSBRR1YgcG9pbnQgd2l0aCBoaWdoZXN0IEJXIGFjY29yZGluZwor CQkgKiB0byBCU3BlYy4KKwkJICovCisJCWlmICghZGF0YV9yYXRlICYmICFudW1fYWN0aXZlX3Bs YW5lcykgeworCQkJRFJNX0RFQlVHX0tNUygiTm8gU0FHViwgdXNpbmcgb2xkIFFHViBtYXNrXG4i KTsKKwkJCWFsbG93ZWRfcG9pbnRzID0gKH5kZXZfcHJpdi0+cWd2X3BvaW50c19tYXNrKSAmIG1h c2s7CisJCX0gZWxzZSB7CisJCQlhbGxvd2VkX3BvaW50cyA9IDEgPDwgbWF4X2J3X3BvaW50Owor CQkJRFJNX0RFQlVHX0tNUygiTm8gU0FHViwgdXNpbmcgc2luZ2xlIFFHViBwb2ludCAlZFxuIiwK KwkJCQkgICAgICBtYXhfYndfcG9pbnQpOworCQl9CisJfQorCS8qCisJICogV2Ugc3RvcmUgdGhl IG9uZXMgd2hpY2ggbmVlZCB0byBiZSBtYXNrZWQgYXMgdGhhdCBpcyB3aGF0IFBDb2RlCisJICog YWN0dWFsbHkgYWNjZXB0cyBhcyBhIHBhcmFtZXRlci4KKwkgKi8KKwlzdGF0ZS0+cWd2X3BvaW50 c19tYXNrID0gKH5hbGxvd2VkX3BvaW50cykgJiBtYXNrOworCisJRFJNX0RFQlVHX0tNUygiTmV3 IHN0YXRlICVwIHFndiBtYXNrICV4XG4iLAorCQkgICAgICBzdGF0ZSwgc3RhdGUtPnFndl9wb2lu dHNfbWFzayk7CisKKwkvKgorCSAqIElmIHRoZSBhY3R1YWwgbWFzayBoYWQgY2hhbmdlZCB3ZSBu ZWVkIHRvIG1ha2Ugc3VyZSB0aGF0CisJICogdGhlIGNvbW1pdHMgYXJlIHNlcmlhbGl6ZWQoaW4g Y2FzZSB0aGlzIGlzIGEgbm9tb2Rlc2V0LCBub25ibG9ja2luZykKKwkgKi8KKwlpZiAoc3RhdGUt PnFndl9wb2ludHNfbWFzayAhPSBkZXZfcHJpdi0+cWd2X3BvaW50c19tYXNrKSB7CisJCXJldCA9 IGludGVsX2F0b21pY19zZXJpYWxpemVfZ2xvYmFsX3N0YXRlKHN0YXRlKTsKKwkJaWYgKHJldCkg eworCQkJRFJNX0RFQlVHX0tNUygiQ291bGQgbm90IHNlcmlhbGl6ZSBnbG9iYWwgc3RhdGVcbiIp OworCQkJcmV0dXJuIHJldDsKKwkJfQorCX0KKwogCXJldHVybiAwOwogfQogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2J3LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9kaXNwbGF5L2ludGVsX2J3LmgKaW5kZXggOWRiMTBhZjAxMmY0Li42NmJmOWJjMTBi NzMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfYncuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2J3LmgKQEAgLTI4LDUgKzI4 LDcgQEAgaW50IGludGVsX2J3X2luaXQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KTsKIGludCBpbnRlbF9id19hdG9taWNfY2hlY2soc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAq c3RhdGUpOwogdm9pZCBpbnRlbF9id19jcnRjX3VwZGF0ZShzdHJ1Y3QgaW50ZWxfYndfc3RhdGUg KmJ3X3N0YXRlLAogCQkJICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0 ZSk7CitpbnQgaWNsX3Bjb2RlX3Jlc3RyaWN0X3Fndl9wb2ludHMoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2LAorCQkJCSAgdTMyIHBvaW50c19tYXNrKTsKIAogI2VuZGlmIC8qIF9f SU5URUxfQldfSF9fICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlz cGxheS5jCmluZGV4IGQ1OGM3MGZiYzA4ZS4uOTJmMmRiNjM1OGYzIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTQ2ODksNiArMTQ2ODksNzUg QEAgc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NsZWFudXBfd29yayhzdHJ1Y3Qgd29ya19zdHJ1 Y3QgKndvcmspCiAJaW50ZWxfYXRvbWljX2hlbHBlcl9mcmVlX3N0YXRlKGk5MTUpOwogfQogCitz dGF0aWMgdm9pZCBpbnRlbF9xZ3ZfcG9pbnRzX21hc2soc3RydWN0IGludGVsX2F0b21pY19zdGF0 ZSAqc3RhdGUpCit7CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5iYXNlLmRldjsK KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJaW50 IHJldDsKKwl1MzIgbmV3X21hc2sgPSBkZXZfcHJpdi0+cWd2X3BvaW50c19tYXNrIHwgc3RhdGUt PnFndl9wb2ludHNfbWFzazsKKwl1bnNpZ25lZCBpbnQgbnVtX3Fndl9wb2ludHMgPSBkZXZfcHJp di0+bWF4X2J3WzBdLm51bV9xZ3ZfcG9pbnRzOworCXVuc2lnbmVkIGludCBtYXNrID0gKDEgPDwg bnVtX3Fndl9wb2ludHMpIC0gMTsKKworCS8qCisJICogQXMgd2UgZG9uJ3Qga25vdyBpbml0aWFs IGhhcmR3YXJlIHN0YXRlIGR1cmluZyBpbml0aWFsIGNvbW1pdAorCSAqIHdlIHNob3VsZCBub3Qg ZG8gYW55dGhpbmcsIHVudGlsIHdlIGFjdHVhbGx5IGZpZ3VyZSBvdXQsCisJICogd2hhdCBhcmUg dGhlIHFndiBwb2ludHMgdG8gbWFzay4KKwkgKi8KKwlpZiAoIW5ld19tYXNrKQorCQlyZXR1cm47 CisKKwlXQVJOX09OKG5ld19tYXNrID09IG1hc2spOworCisJLyoKKwkgKiBKdXN0IHJldHVybiBp ZiB3ZSBjYW4ndCBjb250cm9sIFNBR1Ygb3IgZG9uJ3QgaGF2ZSBpdC4KKwkgKi8KKwlpZiAoIWlu dGVsX2hhc19zYWd2KGRldl9wcml2KSkKKwkJcmV0dXJuOworCisJLyoKKwkgKiBSZXN0cmljdCBy ZXF1aXJlZCBxZ3YgcG9pbnRzIGJlZm9yZSB1cGRhdGluZyB0aGUgY29uZmlndXJhdGlvbi4KKwkg KiBBY2NvcmRpbmcgdG8gQlNwZWMgd2UgY2FuJ3QgbWFzayBhbmQgdW5tYXNrIHFndiBwb2ludHMg YXQgdGhlIHNhbWUKKwkgKiB0aW1lLiBBbHNvIG1hc2tpbmcgc2hvdWxkIGJlIGRvbmUgYmVmb3Jl IHVwZGF0aW5nIHRoZSBjb25maWd1cmF0aW9uCisJICogYW5kIHVubWFza2luZyBhZnRlcndhcmRz LgorCSAqLworCXJldCA9IGljbF9wY29kZV9yZXN0cmljdF9xZ3ZfcG9pbnRzKGRldl9wcml2LCBu ZXdfbWFzayk7CisJaWYgKHJldCA8IDApCisJCURSTV9ERUJVR19LTVMoIkNvdWxkIG5vdCBtYXNr IHJlcXVpcmVkIHFndiBwb2ludHMoJWQpXG4iLAorCQkJICAgICAgcmV0KTsKKwllbHNlCisJCWRl dl9wcml2LT5xZ3ZfcG9pbnRzX21hc2sgPSBuZXdfbWFzazsKK30KKworc3RhdGljIHZvaWQgaW50 ZWxfcWd2X3BvaW50c191bm1hc2soc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCit7 CisJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IHN0YXRlLT5iYXNlLmRldjsKKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CisJaW50IHJldDsKKwl1MzIg bmV3X21hc2sgPSBkZXZfcHJpdi0+cWd2X3BvaW50c19tYXNrICYgc3RhdGUtPnFndl9wb2ludHNf bWFzazsKKworCS8qCisJICogSnVzdCByZXR1cm4gaWYgd2UgY2FuJ3QgY29udHJvbCBTQUdWIG9y IGRvbid0IGhhdmUgaXQuCisJICovCisJaWYgKCFpbnRlbF9oYXNfc2FndihkZXZfcHJpdikpCisJ CXJldHVybjsKKworCWlmIChuZXdfbWFzayA9PSBkZXZfcHJpdi0+cWd2X3BvaW50c19tYXNrKQor CQlyZXR1cm47CisKKwkvKgorCSAqIEFsbG93IHJlcXVpcmVkIHFndiBwb2ludHMgYWZ0ZXIgdXBk YXRpbmcgdGhlIGNvbmZpZ3VyYXRpb24uCisJICogQWNjb3JkaW5nIHRvIEJTcGVjIHdlIGNhbid0 IG1hc2sgYW5kIHVubWFzayBxZ3YgcG9pbnRzIGF0IHRoZSBzYW1lCisJICogdGltZS4gQWxzbyBt YXNraW5nIHNob3VsZCBiZSBkb25lIGJlZm9yZSB1cGRhdGluZyB0aGUgY29uZmlndXJhdGlvbgor CSAqIGFuZCB1bm1hc2tpbmcgYWZ0ZXJ3YXJkcy4KKwkgKi8KKwlyZXQgPSBpY2xfcGNvZGVfcmVz dHJpY3RfcWd2X3BvaW50cyhkZXZfcHJpdiwgbmV3X21hc2spOworCWlmIChyZXQgPCAwKQorCQlE Uk1fREVCVUdfS01TKCJDb3VsZCBub3QgdW5tYXNrIHJlcXVpcmVkIHFndiBwb2ludHMoJWQpXG4i LAorCQkJICAgICAgcmV0KTsKKwllbHNlCisJCWRldl9wcml2LT5xZ3ZfcG9pbnRzX21hc2sgPSBu ZXdfbWFzazsKK30KKwogc3RhdGljIHZvaWQgaW50ZWxfYXRvbWljX2NvbW1pdF90YWlsKHN0cnVj dCBpbnRlbF9hdG9taWNfc3RhdGUgKnN0YXRlKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYg PSBzdGF0ZS0+YmFzZS5kZXY7CkBAIC0xNDcxNiw2ICsxNDc4NSw5IEBAIHN0YXRpYyB2b2lkIGlu dGVsX2F0b21pY19jb21taXRfdGFpbChzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkK IAkJfQogCX0KIAorCWlmICgoSU5URUxfR0VOKGRldl9wcml2KSA+PSAxMSkpCisJCWludGVsX3Fn dl9wb2ludHNfbWFzayhzdGF0ZSk7CisKIAlpbnRlbF9jb21taXRfbW9kZXNldF9kaXNhYmxlcyhz dGF0ZSk7CiAKIAkvKiBGSVhNRTogRXZlbnR1YWxseSBnZXQgcmlkIG9mIG91ciBjcnRjLT5jb25m aWcgcG9pbnRlciAqLwpAQCAtMTQ3MzQsOCArMTQ4MDYsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9h dG9taWNfY29tbWl0X3RhaWwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJCSAq IFNLTCB3b3JrYXJvdW5kOiBic3BlYyByZWNvbW1lbmRzIHdlIGRpc2FibGUgdGhlIFNBR1Ygd2hl biB3ZQogCQkgKiBoYXZlIG1vcmUgdGhlbiBvbmUgcGlwZSBlbmFibGVkCiAJCSAqLwotCQlpZiAo IWludGVsX2Nhbl9lbmFibGVfc2FndihzdGF0ZSkpCi0JCQlpbnRlbF9kaXNhYmxlX3NhZ3YoZGV2 X3ByaXYpOworCQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDExKQorCQkJaWYgKCFpbnRlbF9j YW5fZW5hYmxlX3NhZ3Yoc3RhdGUpKQorCQkJCWludGVsX2Rpc2FibGVfc2FndihkZXZfcHJpdik7 CiAKIAkJaW50ZWxfbW9kZXNldF92ZXJpZnlfZGlzYWJsZWQoZGV2X3ByaXYsIHN0YXRlKTsKIAl9 CkBAIC0xNDgzMiw4ICsxNDkwNSwxMiBAQCBzdGF0aWMgdm9pZCBpbnRlbF9hdG9taWNfY29tbWl0 X3RhaWwoc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJaWYgKHN0YXRlLT5tb2Rl c2V0KQogCQlpbnRlbF92ZXJpZnlfcGxhbmVzKHN0YXRlKTsKIAotCWlmIChzdGF0ZS0+bW9kZXNl dCAmJiBpbnRlbF9jYW5fZW5hYmxlX3NhZ3Yoc3RhdGUpKQotCQlpbnRlbF9lbmFibGVfc2Fndihk ZXZfcHJpdik7CisJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCAxMSkgeworCQlpZiAoc3RhdGUt Pm1vZGVzZXQgJiYgaW50ZWxfY2FuX2VuYWJsZV9zYWd2KHN0YXRlKSkKKwkJCWludGVsX2VuYWJs ZV9zYWd2KGRldl9wcml2KTsKKwl9IGVsc2UgeworCQlpbnRlbF9xZ3ZfcG9pbnRzX3VubWFzayhz dGF0ZSk7CisJfQogCiAJZHJtX2F0b21pY19oZWxwZXJfY29tbWl0X2h3X2RvbmUoJnN0YXRlLT5i YXNlKTsKIApAQCAtMTQ5ODAsNyArMTUwNTcsNyBAQCBzdGF0aWMgaW50IGludGVsX2F0b21pY19j b21taXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlpbnRlbF9zaGFyZWRfZHBsbF9zd2FwX3N0 YXRlKHN0YXRlKTsKIAlpbnRlbF9hdG9taWNfdHJhY2tfZmJzKHN0YXRlKTsKIAotCWlmIChzdGF0 ZS0+Z2xvYmFsX3N0YXRlX2NoYW5nZWQpIHsKKwlpZiAoc3RhdGUtPmdsb2JhbF9zdGF0ZV9jaGFu Z2VkICYmIHN0YXRlLT5tb2Rlc2V0KSB7CiAJCWFzc2VydF9nbG9iYWxfc3RhdGVfbG9ja2VkKGRl dl9wcml2KTsKIAogCQltZW1jcHkoZGV2X3ByaXYtPm1pbl9jZGNsaywgc3RhdGUtPm1pbl9jZGNs aywKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxh eV90eXBlcy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5 cGVzLmgKaW5kZXggNTMwMWUxMDQyYjQwLi5lMWFjN2MwMWJiZGEgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCkBAIC01MjgsNiAr NTI4LDkgQEAgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSB7CiAJc3RydWN0IGk5MTVfc3dfZmVu Y2UgY29tbWl0X3JlYWR5OwogCiAJc3RydWN0IGxsaXN0X25vZGUgZnJlZWQ7CisKKwkvKiBHZW4x MSsgb25seSAqLworCXUzMiBxZ3ZfcG9pbnRzX21hc2s7CiB9OwogCiBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggYjg3N2M0MjIxM2M0Li5hYzk2 OTBkOTg5MTAgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtODUwLDYgKzg1MCw5IEBAIGVu dW0gaW50ZWxfcGlwZV9jcmNfc291cmNlIHsKIAlJTlRFTF9QSVBFX0NSQ19TT1VSQ0VfTUFYLAog fTsKIAorLyogQlNwZWMgcHJlY2lzZWx5IGRlZmluZXMgdGhpcyAqLworI2RlZmluZSBOVU1fU0FH Vl9QT0lOVFMgOAorCiAjZGVmaW5lIElOVEVMX1BJUEVfQ1JDX0VOVFJJRVNfTlIJMTI4CiBzdHJ1 Y3QgaW50ZWxfcGlwZV9jcmMgewogCXNwaW5sb2NrX3QgbG9jazsKQEAgLTEyNDQsNiArMTI0Nyw4 IEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsKIAkJdTggbnVtX3BsYW5lczsKIAl9IG1heF9i d1s2XTsKIAorCXUzMiBxZ3ZfcG9pbnRzX21hc2s7CisKIAlzdHJ1Y3QgZHJtX3ByaXZhdGVfb2Jq IGJ3X29iajsKIAogCXN0cnVjdCBpbnRlbF9ydW50aW1lX3BtIHJ1bnRpbWVfcG07CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3JlZy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9yZWcuaAppbmRleCAxN2Y5ZGQzYmRhNzIuLjBhNTViZDUyOWZiYiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlZy5oCkBAIC04OTk5LDYgKzg5OTksOCBAQCBlbnVtIHsKICNkZWZpbmUgICAg IEdFTjZfUENPREVfVU5JTVBMRU1FTlRFRF9DTUQJMHhGRgogI2RlZmluZSAgICAgR0VON19QQ09E RV9USU1FT1VUCQkJMHgyCiAjZGVmaW5lICAgICBHRU43X1BDT0RFX0lMTEVHQUxfREFUQQkJMHgz CisjZGVmaW5lICAgICBHRU4xMV9QQ09ERV9NQUlMX0JPWF9MT0NLRUQJCTB4NgorI2RlZmluZSAg ICAgR0VOMTFfUENPREVfUkVKRUNURUQJCTB4MTEKICNkZWZpbmUgICAgIEdFTjdfUENPREVfTUlO X0ZSRVFfVEFCTEVfR1RfUkFUSU9fT1VUX09GX1JBTkdFIDB4MTAKICNkZWZpbmUgICBHRU42X1BD T0RFX1dSSVRFX1JDNlZJRFMJCTB4NAogI2RlZmluZSAgIEdFTjZfUENPREVfUkVBRF9SQzZWSURT CQkweDUKQEAgLTkwMjAsNiArOTAyMiw3IEBAIGVudW0gewogI2RlZmluZSAgIElDTF9QQ09ERV9N RU1fU1VCU1lTWVNURU1fSU5GTwkweGQKICNkZWZpbmUgICAgIElDTF9QQ09ERV9NRU1fU1NfUkVB RF9HTE9CQUxfSU5GTwkoMHgwIDw8IDgpCiAjZGVmaW5lICAgICBJQ0xfUENPREVfTUVNX1NTX1JF QURfUUdWX1BPSU5UX0lORk8ocG9pbnQpCSgoKHBvaW50KSA8PCAxNikgfCAoMHgxIDw8IDgpKQor I2RlZmluZSAgIElDTF9QQ09ERV9TQUdWX0RFX01FTV9TU19DT05GSUcJMHhlCiAjZGVmaW5lICAg R0VONl9QQ09ERV9SRUFEX0RfQ09NUAkJMHgxMAogI2RlZmluZSAgIEdFTjZfUENPREVfV1JJVEVf RF9DT01QCQkweDExCiAjZGVmaW5lICAgSFNXX1BDT0RFX0RFX1dSSVRFX0ZSRVFfUkVRCQkweDE3 CkBAIC05MDMyLDYgKzkwMzUsOCBAQCBlbnVtIHsKICNkZWZpbmUgICAgIEdFTjlfU0FHVl9JU19E SVNBQkxFRAkJMHgxCiAjZGVmaW5lICAgICBHRU45X1NBR1ZfRU5BQkxFCQkJMHgzCiAjZGVmaW5l IEdFTjEyX1BDT0RFX1JFQURfU0FHVl9CTE9DS19USU1FX1VTCTB4MjMKKyNkZWZpbmUgR0VOMTFf UENPREVfUE9JTlRTX1JFU1RSSUNURUQJCTB4MAorI2RlZmluZSBHRU4xMV9QQ09ERV9QT0lOVFNf UkVTVFJJQ1RFRF9NQVNLCTB4MQogI2RlZmluZSBHRU42X1BDT0RFX0RBVEEJCQkJX01NSU8oMHgx MzgxMjgpCiAjZGVmaW5lICAgR0VONl9QQ09ERV9GUkVRX0lBX1JBVElPX1NISUZUCTgKICNkZWZp bmUgICBHRU42X1BDT0RFX0ZSRVFfUklOR19SQVRJT19TSElGVAkxNgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc2lkZWJhbmQuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX3NpZGViYW5kLmMKaW5kZXggZTA2YjM1Yjg0NGEwLi5mZjlkYmVkMDk0ZDggMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3NpZGViYW5kLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfc2lkZWJhbmQuYwpAQCAtMzcxLDYgKzM3MSwyOSBAQCBzdGF0 aWMgaW5saW5lIGludCBnZW43X2NoZWNrX21haWxib3hfc3RhdHVzKHUzMiBtYm94KQogCX0KIH0K IAorc3RhdGljIGlubGluZSBpbnQgZ2VuMTFfY2hlY2tfbWFpbGJveF9zdGF0dXModTMyIG1ib3gp Cit7CisJc3dpdGNoIChtYm94ICYgR0VONl9QQ09ERV9FUlJPUl9NQVNLKSB7CisJY2FzZSBHRU42 X1BDT0RFX1NVQ0NFU1M6CisJCXJldHVybiAwOworCWNhc2UgR0VONl9QQ09ERV9JTExFR0FMX0NN RDoKKwkJcmV0dXJuIC1FTlhJTzsKKwljYXNlIEdFTjdfUENPREVfVElNRU9VVDoKKwkJcmV0dXJu IC1FVElNRURPVVQ7CisJY2FzZSBHRU43X1BDT0RFX0lMTEVHQUxfREFUQToKKwkJcmV0dXJuIC1F SU5WQUw7CisJY2FzZSBHRU43X1BDT0RFX01JTl9GUkVRX1RBQkxFX0dUX1JBVElPX09VVF9PRl9S QU5HRToKKwkJcmV0dXJuIC1FT1ZFUkZMT1c7CisJY2FzZSBHRU4xMV9QQ09ERV9NQUlMX0JPWF9M T0NLRUQ6CisJCXJldHVybiAtRUFHQUlOOworCWNhc2UgR0VOMTFfUENPREVfUkVKRUNURUQ6CisJ CXJldHVybiAtRUFDQ0VTOworCWRlZmF1bHQ6CisJCU1JU1NJTkdfQ0FTRShtYm94ICYgR0VONl9Q Q09ERV9FUlJPUl9NQVNLKTsKKwkJcmV0dXJuIDA7CisJfQorfQorCiBzdGF0aWMgaW50IF9fc2Fu ZHlicmlkZ2VfcGNvZGVfcncoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJCQkJICB1 MzIgbWJveCwgdTMyICp2YWwsIHUzMiAqdmFsMSwKIAkJCQkgIGludCBmYXN0X3RpbWVvdXRfdXMs CkBAIC00MDgsNyArNDMxLDkgQEAgc3RhdGljIGludCBfX3NhbmR5YnJpZGdlX3Bjb2RlX3J3KHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCWlmIChpc19yZWFkICYmIHZhbDEpCiAJCSp2 YWwxID0gaW50ZWxfdW5jb3JlX3JlYWRfZncodW5jb3JlLCBHRU42X1BDT0RFX0RBVEExKTsKIAot CWlmIChJTlRFTF9HRU4oaTkxNSkgPiA2KQorCWlmIChJTlRFTF9HRU4oaTkxNSkgPj0gMTEpCisJ CXJldHVybiBnZW4xMV9jaGVja19tYWlsYm94X3N0YXR1cyhtYm94KTsKKwllbHNlIGlmIChJTlRF TF9HRU4oaTkxNSkgPiA2KQogCQlyZXR1cm4gZ2VuN19jaGVja19tYWlsYm94X3N0YXR1cyhtYm94 KTsKIAllbHNlCiAJCXJldHVybiBnZW42X2NoZWNrX21haWxib3hfc3RhdHVzKG1ib3gpOwotLSAK Mi4xNy4xCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJ bnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK