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 2A7EDC35249 for ; Sun, 2 Feb 2020 23:10:08 +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 097CF20643 for ; Sun, 2 Feb 2020 23:10:08 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 097CF20643 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 94EE66E149; Sun, 2 Feb 2020 23:10:07 +0000 (UTC) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6DE5A6E14F for ; Sun, 2 Feb 2020 23:10:06 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 02 Feb 2020 15:10:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,395,1574150400"; d="scan'208";a="234397196" Received: from slisovsk-lenovo-ideapad-720s-13ikb.fi.intel.com ([10.237.72.89]) by orsmga006.jf.intel.com with ESMTP; 02 Feb 2020 15:10:04 -0800 From: Stanislav Lisovskiy To: intel-gfx@lists.freedesktop.org Date: Mon, 3 Feb 2020 01:06:29 +0200 Message-Id: <20200202230630.8975-6-stanislav.lisovskiy@intel.com> X-Mailer: git-send-email 2.24.1.485.gad05a3d8e5 In-Reply-To: <20200202230630.8975-1-stanislav.lisovskiy@intel.com> References: <20200202230630.8975-1-stanislav.lisovskiy@intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v17 5/6] drm/i915: Manipulate DBuf slices properly 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" U3RhcnQgbWFuaXB1bGF0aW5nIERCdWYgc2xpY2VzIGFzIGEgbWFzaywKYnV0IG5vdCBhcyBhIHRv dGFsIG51bWJlciwgYXMgY3VycmVudCBhcHByb2FjaApkb2Vzbid0IGdpdmUgdXMgZnVsbCBjb250 cm9sIG9uIGFsbCBjb21iaW5hdGlvbnMKb2Ygc2xpY2VzLCB3aGljaCB3ZSBtaWdodCBuZWVkKGxp a2UgZW5hYmxpbmcgUzIKb25seSBjYW4ndCBlbmFibGVkIGJ5IHNldHRpbmcgZW5hYmxlZF9zbGlj ZXM9MSkuCgpSZW1vdmVkIHdyb25nIGNvZGUgZnJvbSBpbnRlbF9nZXRfZGRiX3NpemUgYXMKaXQg ZG9lc24ndCBtYXRjaCB0byBCU3BlYy4gRm9yIG5vdyBzdGlsbCBqdXN0CnVzZSBEQnVmIHNsaWNl IHVudGlsIHByb3BlciBhbGdvcml0aG0gaXMgaW1wbGVtZW50ZWQuCgpPdGhlciBtaW5vciBjb2Rl IHJlZmFjdG9yaW5nIHRvIGdldCBwcmVwYXJlZApmb3IgbWFqb3IgREJ1ZiBhc3NpZ25tZW50IGNo YW5nZXMgbGFuZGVkOgotIEFzIG5vdyBlbmFibGVkIHNsaWNlcyBjb250YWluIGEgbWFzawogIHdl IHN0aWxsIG5lZWQgc29tZSB2YWx1ZSB3aGljaCBzaG91bGQKICByZWZsZWN0IGhvdyBtdWNoIERC dWYgc2xpY2VzIGFyZSBzdXBwb3J0ZWQKICBieSB0aGUgcGxhdGZvcm0sIG5vdyBkZXZpY2UgaW5m byBjb250YWlucwogIG51bV9zdXBwb3J0ZWRfZGJ1Zl9zbGljZXMuCi0gUmVtb3ZlZCB1bm5lZWRl ZCBhc3NlcnRpb24gYXMgd2UgYXJlIG5vdwogIG1hbmlwdWxhdGluZyBzbGljZXMgaW4gYSBtb3Jl IHByb3BlciB3YXkuCgp2MjogU3RhcnQgdXNpbmcgZW5hYmxlZF9zbGljZXMgaW4gZGV2X3ByaXYK CnYzOiAiZW5hYmxlZF9zbGljZXMiIGlzIG5vdyAiZW5hYmxlZF9kYnVmX3NsaWNlc19tYXNrIiwK ICAgIGFzIHRoaXMgbm93IHNpdHMgaW4gZGV2X3ByaXYgaW5kZXBlbmRlbnRseS4KCnY0OiAtIEZp eGVkIGRlYnVnIHByaW50IGZvcm1hdHRpbmcgdG8gaGV4KE1hdHQgUm9wZXIpCiAgICAtIE9wdGlt aXplZCBkYnVmIHNsaWNlIHVwZGF0ZXMgdG8gYmUgdXNlZCBvbmx5CiAgICAgIGlmIHNsaWNlIHVu aW9uIGlzIGRpZmZlcmVudCBmcm9tIGN1cnJlbnQgY29uZihNYXR0IFJvcGVyKQogICAgLSBGaXhl ZCBzb21lIGZ1bmN0aW9ucyB0byBiZSBzdGF0aWMoTWF0dCBSb3BlcikKICAgIC0gQ3JlYXRlZCBh IHBhcmFtZXRlcml6ZWQgdmVyc2lvbiBmb3IgREJVRl9DVEwgdG8KICAgICAgc2ltcGxpZnkgREJ1 ZiBwcm9ncmFtbWluZyBjeWNsZShNYXR0IFJvcGVyKQogICAgLSBSZW1vdmVkIHVucmVxdXJlZCBm aWVsZCBmcm9tIEdFTjEwX0ZFQVRVUkVTKE1hdHQgUm9wZXIpCgp2NTogLSBSZW1vdmVkIHJlZHVu ZGFudCBwcm9ncmFtbWluZyBkYnVmIHNsaWNlcyBoZWxwZXIoVmlsbGUgU3lyasOkbMOkKQogICAg LSBTdGFydGVkIHRvIHVzZSBwYXJhbWV0ZXJpemVkIGxvb3AgZm9yIGh3IHJlYWRvdXQgdG8gZ2V0 IHNsaWNlcwogICAgICAoVmlsbGUgU3lyasOkbMOkKQogICAgLSBBZGRlZCBiYWNrIGFzc2VydGlv biBjaGVja2luZyBhbW91bnQgb2YgREJVRiBzbGljZXMgZW5hYmxlZAogICAgICBhZnRlciBEQyBz dGF0ZXMgNS82IHRyYW5zaXRpb24sIGFsc28gYWRkZWQgbmV3IGFzc2VydGlvbgogICAgICBhcyBz dGFydGluZyBmcm9tIElDTCBETUMgc2VlbXMgdG8gcmVzdG9yZSB0aGUgbGFzdCBEQnVmCiAgICAg IHBvd2VyIHN0YXRlIHNldCwgcmF0aGVyIHRoYW4gcG93ZXIgdXAgYWxsIGRidWYgc2xpY2VzCiAg ICAgIGFzIGFzc2VydGlvbiB3YXMgcHJldmlvdXNseSBleHBlY3RpbmcoVmlsbGUgU3lyasOkbMOk KQoKdjY6IC0gTm93IHVzaW5nIGVudW0gZm9yIERCdWYgc2xpY2VzIGluIHRoaXMgcGF0Y2ggKFZp bGxlIFN5cmrDpGzDpCkKICAgIC0gUmVtb3ZlZCBnZW4xMV9hc3NlcnRfZGJ1Zl9lbmFibGVkIGFu ZCBwdXQgZ2VuOV9hc3NlcnRfZGJ1Zl9lbmFibGVkCiAgICAgIGJhY2ssIGFzIHdlIHJlYWxseSBu ZWVkIHRvIGhhdmUgYSBzaW5nbGUgdW5pZmllZCBhc3NlcnQgaGVyZQogICAgICBob3dldmVyIGN1 cnJlbnRseSBlbmFibGluZyBhbHdheXMgc2xpY2UgMSBpcyBlbmZvcmNlZCBieSBCU3BlYywKICAg ICAgc28gd2Ugd2lsbCBoYXZlIHRvIE9SIGVuYWJsZWQgc2xpY2VzIG1hc2sgd2l0aCAxIGluIG9y ZGVyCiAgICAgIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCBCU3BlYywgdGhhdCB3YXkgd2UgY2FuIHVu aWZ5IHRoYXQKICAgICAgYXNzZXJ0aW9uIGFuZCBhZ2FpbnN0IHRoZSBhY3R1YWwgc3RhdGUgZnJv bSB0aGUgZHJpdmVyLCBidXQKICAgICAgbm90IHNvbWUgaGFyZGNvZGVkIHZhbHVlLihjb25jbHVk ZWQgd2l0aCBWaWxsZSkKICAgIC0gUmVtb3ZlIHBhcmFtZXRlcml6ZWQgREJVRl9DVEwgdmVyc2lv biwgdG8gZXh0cmFjdCBpdCB0byBhbm90aGVyCiAgICAgIHBhdGNoLihWaWxsZSBTeXJqw6Rsw6Qp CnY3OgogICAgLSBSZW1vdmVkIHVubmVlZGVkIGhhcmRjb2RlZCByZXR1cm4gdmFsdWUgZm9yIG9s ZGVyIGdlbnMgZnJvbQogICAgICBpbnRlbF9lbmFibGVkX2RidWZfc2xpY2VzX21hc2sgLSB0aGlz IG5vdyBpcyBoYW5kbGVkIGluIGEKICAgICAgdW5pZmllZCBtYW5uZXIgc2luY2UgZGV2aWNlIGlu Zm8gYW55d2F5IHJldHVybnMgbWF4IGRidWYgc2xpY2VzCiAgICAgIGFzIDEgZm9yIG9sZGVyIHBs YXRmb3JtcyhNYXR0aGV3IFJvcGVyKQogICAgLSBOb3cgdXNpbmcgSU5URUxfSU5GTyhkZXZfcHJp diktPm51bV9zdXBwb3J0ZWRfZGJ1Zl9zbGljZXMgaW5zdGVhZAogICAgICBvZiBpbnRlbF9kYnVm X21heF9zbGljZXMgZnVuY3Rpb24gYXMgaXQgaXMgdHJpdmlhbChNYXR0aGV3IFJvcGVyKQoKdjg6 IC0gRml4ZWQgaWNsX2RidWZfZGlzYWJsZSB0byBkaXNhYmxlIGFsbCBkYnVmcyBzdGlsbChWaWxs ZSBTeXJqw6Rsw6QpCgp2OTogLSBSZW5hbWVkIF9EQlVGX0NUTF9TIHRvIERCVUZfQ1RMX1MoVmls bGUgU3lyasOkbMOkKQogICAgLSBOb3cgdXNpbmcgcG93ZXJfZG9tYWluIG11dGV4IHRvIHByb3Rl Y3QgZnJvbSByYWNlIGNvbmRpdGlvbiwgd2hpY2gKICAgICAgY2FuIG9jY3VyIGJlY2F1c2UgaW50 ZWxfZGJ1Zl9zbGljZXNfdXBkYXRlIG1pZ2h0IGJlIHJ1bm5pbmcgaW4KICAgICAgcGFyYWxsZWwg dG8gZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9lbmFibGUgYmVpbmcgY2FsbGVkIGZyb20KICAgICAg aW50ZWxfZHBfZGV0ZWN0IGZvciBpbnN0YW5jZSwgd2hpY2ggY2F1c2VzIGFzc2VydGlvbiB0cmln Z2VyZWQgYnkKICAgICAgcmFjZSBjb25kaXRpb24sIGFzIGdlbjlfYXNzZXJ0X2RidWZfZW5hYmxl ZCBtaWdodCBwcmVlbXB0IHRoaXMKICAgICAgd2hlbiByZWdpc3RlcnMgd2VyZSBhbHJlYWR5IHVw ZGF0ZWQsIHdoaWxlIGRldl9wcml2IHdhcyBub3QuCgpSZXZpZXdlZC1ieTogTWF0dCBSb3BlciA8 bWF0dGhldy5kLnJvcGVyQGludGVsLmNvbT4KUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8 dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFN0YW5pc2xhdiBM aXNvdnNraXkgPHN0YW5pc2xhdi5saXNvdnNraXlAaW50ZWwuY29tPgotLS0KIGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jICB8ICAyMyArKy0tCiAuLi4vZHJtL2k5 MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3Bvd2VyLmMgICAgfCAxMDIgKysrKysrKy0tLS0tLS0t LS0tCiAuLi4vZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmggICAgfCAgIDIg Ky0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggICAgICAgICAgICAgICB8ICAgMiAr LQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYyAgICAgICAgICAgICAgIHwgICA1ICst CiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oICAgICAgfCAgIDEgKwog ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uYyAgICAgICAgICAgICAgIHwgIDUzICsrKy0t LS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcG0uaCAgICAgICAgICAgICAgIHwgICAy ICstCiA4IGZpbGVzIGNoYW5nZWQsIDcyIGluc2VydGlvbnMoKyksIDExOCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXku YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jCmluZGV4IDI3 NjIyZWYwNjljZi4uYTFiZjRlOTM3ODE0IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9kaXNwbGF5L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXkuYwpAQCAtMTQwNTksMTMgKzE0MDU5LDEzIEBAIHN0YXRpYyB2b2lk IHZlcmlmeV93bV9zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKIAogCXNrbF9waXBlX2Rk Yl9nZXRfaHdfc3RhdGUoY3J0YywgaHctPmRkYl95LCBody0+ZGRiX3V2KTsKIAotCWh3X2VuYWJs ZWRfc2xpY2VzID0gaW50ZWxfZW5hYmxlZF9kYnVmX3NsaWNlc19udW0oZGV2X3ByaXYpOworCWh3 X2VuYWJsZWRfc2xpY2VzID0gaW50ZWxfZW5hYmxlZF9kYnVmX3NsaWNlc19tYXNrKGRldl9wcml2 KTsKIAogCWlmIChJTlRFTF9HRU4oZGV2X3ByaXYpID49IDExICYmCi0JICAgIGh3X2VuYWJsZWRf c2xpY2VzICE9IGRldl9wcml2LT5lbmFibGVkX2RidWZfc2xpY2VzX251bSkKKwkgICAgaHdfZW5h YmxlZF9zbGljZXMgIT0gZGV2X3ByaXYtPmVuYWJsZWRfZGJ1Zl9zbGljZXNfbWFzaykKIAkJZHJt X2VycigmZGV2X3ByaXYtPmRybSwKLQkJCSJtaXNtYXRjaCBpbiBEQlVGIFNsaWNlcyAoZXhwZWN0 ZWQgJXUsIGdvdCAldSlcbiIsCi0JCQlkZXZfcHJpdi0+ZW5hYmxlZF9kYnVmX3NsaWNlc19udW0s CisJCQkibWlzbWF0Y2ggaW4gREJVRiBTbGljZXMgKGV4cGVjdGVkIDB4JXgsIGdvdCAweCV4KVxu IiwKKwkJCWRldl9wcml2LT5lbmFibGVkX2RidWZfc2xpY2VzX21hc2ssCiAJCQlod19lbmFibGVk X3NsaWNlcyk7CiAKIAkvKiBwbGFuZXMgKi8KQEAgLTE1NDIzLDIyICsxNTQyMywyMyBAQCBzdGF0 aWMgdm9pZCBpbnRlbF91cGRhdGVfdHJhbnNfcG9ydF9zeW5jX2NydGNzKHN0cnVjdCBpbnRlbF9j cnRjICpjcnRjLAogc3RhdGljIHZvaWQgaWNsX2RidWZfc2xpY2VfcHJlX3VwZGF0ZShzdHJ1Y3Qg aW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7Ci0JdTggaHdfZW5hYmxlZF9zbGlj ZXMgPSBkZXZfcHJpdi0+ZW5hYmxlZF9kYnVmX3NsaWNlc19udW07Ci0JdTggcmVxdWlyZWRfc2xp Y2VzID0gc3RhdGUtPmVuYWJsZWRfZGJ1Zl9zbGljZXNfbnVtOworCXU4IGh3X2VuYWJsZWRfc2xp Y2VzID0gZGV2X3ByaXYtPmVuYWJsZWRfZGJ1Zl9zbGljZXNfbWFzazsKKwl1OCByZXF1aXJlZF9z bGljZXMgPSBzdGF0ZS0+ZW5hYmxlZF9kYnVmX3NsaWNlc19tYXNrOworCXU4IHNsaWNlc191bmlv biA9IGh3X2VuYWJsZWRfc2xpY2VzIHwgcmVxdWlyZWRfc2xpY2VzOwogCiAJLyogSWYgMm5kIERC dWYgc2xpY2UgcmVxdWlyZWQsIGVuYWJsZSBpdCBoZXJlICovCi0JaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPj0gMTEgJiYgcmVxdWlyZWRfc2xpY2VzID4gaHdfZW5hYmxlZF9zbGljZXMpCi0JCWlj bF9kYnVmX3NsaWNlc191cGRhdGUoZGV2X3ByaXYsIHJlcXVpcmVkX3NsaWNlcyk7CisJaWYgKElO VEVMX0dFTihkZXZfcHJpdikgPj0gMTEgJiYgc2xpY2VzX3VuaW9uICE9IGh3X2VuYWJsZWRfc2xp Y2VzKQorCQlpY2xfZGJ1Zl9zbGljZXNfdXBkYXRlKGRldl9wcml2LCBzbGljZXNfdW5pb24pOwog fQogCiBzdGF0aWMgdm9pZCBpY2xfZGJ1Zl9zbGljZV9wb3N0X3VwZGF0ZShzdHJ1Y3QgaW50ZWxf YXRvbWljX3N0YXRlICpzdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KHN0YXRlLT5iYXNlLmRldik7Ci0JdTggaHdfZW5hYmxlZF9zbGljZXMgPSBk ZXZfcHJpdi0+ZW5hYmxlZF9kYnVmX3NsaWNlc19udW07Ci0JdTggcmVxdWlyZWRfc2xpY2VzID0g c3RhdGUtPmVuYWJsZWRfZGJ1Zl9zbGljZXNfbnVtOworCXU4IGh3X2VuYWJsZWRfc2xpY2VzID0g ZGV2X3ByaXYtPmVuYWJsZWRfZGJ1Zl9zbGljZXNfbWFzazsKKwl1OCByZXF1aXJlZF9zbGljZXMg PSBzdGF0ZS0+ZW5hYmxlZF9kYnVmX3NsaWNlc19tYXNrOwogCiAJLyogSWYgMm5kIERCdWYgc2xp Y2UgaXMgbm8gbW9yZSByZXF1aXJlZCBkaXNhYmxlIGl0ICovCi0JaWYgKElOVEVMX0dFTihkZXZf cHJpdikgPj0gMTEgJiYgcmVxdWlyZWRfc2xpY2VzIDwgaHdfZW5hYmxlZF9zbGljZXMpCisJaWYg KElOVEVMX0dFTihkZXZfcHJpdikgPj0gMTEgJiYgcmVxdWlyZWRfc2xpY2VzICE9IGh3X2VuYWJs ZWRfc2xpY2VzKQogCQlpY2xfZGJ1Zl9zbGljZXNfdXBkYXRlKGRldl9wcml2LCByZXF1aXJlZF9z bGljZXMpOwogfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2lu dGVsX2Rpc3BsYXlfcG93ZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxf ZGlzcGxheV9wb3dlci5jCmluZGV4IDlmOTc4Yzk3N2RjYi4uMWU0NjRiMTkxYzJmIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2Rpc3BsYXlfcG93ZXIuYwpA QCAtMTUsNiArMTUsNyBAQAogI2luY2x1ZGUgImludGVsX2Rpc3BsYXlfdHlwZXMuaCIKICNpbmNs dWRlICJpbnRlbF9kcGlvX3BoeS5oIgogI2luY2x1ZGUgImludGVsX2hvdHBsdWcuaCIKKyNpbmNs dWRlICJpbnRlbF9wbS5oIgogI2luY2x1ZGUgImludGVsX3NpZGViYW5kLmgiCiAjaW5jbHVkZSAi aW50ZWxfdGMuaCIKICNpbmNsdWRlICJpbnRlbF92Z2EuaCIKQEAgLTEwNDEsMTEgKzEwNDIsMTMg QEAgc3RhdGljIGJvb2wgZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9lbmFibGVkKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAogc3RhdGljIHZvaWQgZ2VuOV9hc3NlcnRfZGJ1Zl9l bmFibGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQl1MzIgdG1wID0g aW50ZWxfZGVfcmVhZChkZXZfcHJpdiwgREJVRl9DVExfUygwKSk7CisJdTggaHdfZW5hYmxlZF9k YnVmX3NsaWNlcyA9IGludGVsX2VuYWJsZWRfZGJ1Zl9zbGljZXNfbWFzayhkZXZfcHJpdik7CisJ dTggZW5hYmxlZF9kYnVmX3NsaWNlcyA9IGRldl9wcml2LT5lbmFibGVkX2RidWZfc2xpY2VzX21h c2s7CiAKLQlXQVJOKCh0bXAgJiAoREJVRl9QT1dFUl9TVEFURSB8IERCVUZfUE9XRVJfUkVRVUVT VCkpICE9Ci0JICAgICAoREJVRl9QT1dFUl9TVEFURSB8IERCVUZfUE9XRVJfUkVRVUVTVCksCi0J ICAgICAiVW5leHBlY3RlZCBEQnVmIHBvd2VyIHBvd2VyIHN0YXRlICgweCUwOHgpXG4iLCB0bXAp OworCVdBUk4oaHdfZW5hYmxlZF9kYnVmX3NsaWNlcyAhPSBlbmFibGVkX2RidWZfc2xpY2VzLAor CSAgICAgIlVuZXhwZWN0ZWQgREJ1ZiBwb3dlciBwb3dlciBzdGF0ZSAoMHglMDh4LCBleHBlY3Rl ZCAweCUwOHgpXG4iLAorCSAgICAgaHdfZW5hYmxlZF9kYnVmX3NsaWNlcywKKwkgICAgIGVuYWJs ZWRfZGJ1Zl9zbGljZXMpOwogfQogCiBzdGF0aWMgdm9pZCBnZW45X2Rpc2FibGVfZGNfc3RhdGVz KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKQEAgLTQ0MTgsODcgKzQ0MjEsNTgg QEAgYm9vbCBpbnRlbF9kYnVmX3NsaWNlX3NldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCiAKIHN0YXRpYyB2b2lkIGdlbjlfZGJ1Zl9lbmFibGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogewotCWludGVsX2RidWZfc2xpY2Vfc2V0KGRldl9wcml2LCBEQlVG X0NUTF9TKDApLCB0cnVlKTsKKwlpY2xfZGJ1Zl9zbGljZXNfdXBkYXRlKGRldl9wcml2LCBCSVQo REJVRl9TMSkpOwogfQogCiBzdGF0aWMgdm9pZCBnZW45X2RidWZfZGlzYWJsZShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0JaW50ZWxfZGJ1Zl9zbGljZV9zZXQoZGV2X3By aXYsIERCVUZfQ1RMX1MoMCksIGZhbHNlKTsKLX0KLQotc3RhdGljIHU4IGludGVsX2RidWZfbWF4 X3NsaWNlcyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCi17Ci0JaWYgKElOVEVM X0dFTihkZXZfcHJpdikgPCAxMSkKLQkJcmV0dXJuIDE7Ci0JcmV0dXJuIDI7CisJaWNsX2RidWZf c2xpY2VzX3VwZGF0ZShkZXZfcHJpdiwgMCk7CiB9CiAKIHZvaWQgaWNsX2RidWZfc2xpY2VzX3Vw ZGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJCQkgICAgdTggcmVxX3Ns aWNlcykKIHsKLQljb25zdCB1OCBod19lbmFibGVkX3NsaWNlcyA9IGRldl9wcml2LT5lbmFibGVk X2RidWZfc2xpY2VzX251bTsKLQlib29sIHJldDsKKwlpbnQgaTsKKwlpbnQgbWF4X3NsaWNlcyA9 IElOVEVMX0lORk8oZGV2X3ByaXYpLT5udW1fc3VwcG9ydGVkX2RidWZfc2xpY2VzOworCXN0cnVj dCBpOTE1X3Bvd2VyX2RvbWFpbnMgKnBvd2VyX2RvbWFpbnMgPSAmZGV2X3ByaXYtPnBvd2VyX2Rv bWFpbnM7CiAKLQlpZiAocmVxX3NsaWNlcyA+IGludGVsX2RidWZfbWF4X3NsaWNlcyhkZXZfcHJp dikpIHsKLQkJZHJtX2VycigmZGV2X3ByaXYtPmRybSwKLQkJCSJJbnZhbGlkIG51bWJlciBvZiBk YnVmIHNsaWNlcyByZXF1ZXN0ZWRcbiIpOwotCQlyZXR1cm47Ci0JfQorCVdBUk4oaHdlaWdodDgo cmVxX3NsaWNlcykgPiBtYXhfc2xpY2VzLAorCSAgICAgIkludmFsaWQgbnVtYmVyIG9mIGRidWYg c2xpY2VzIHJlcXVlc3RlZFxuIik7CiAKLQlpZiAocmVxX3NsaWNlcyA9PSBod19lbmFibGVkX3Ns aWNlcyB8fCByZXFfc2xpY2VzID09IDApCi0JCXJldHVybjsKKwlEUk1fREVCVUdfS01TKCJVcGRh dGluZyBkYnVmIHNsaWNlcyB0byAweCV4XG4iLCByZXFfc2xpY2VzKTsKIAotCWlmIChyZXFfc2xp Y2VzID4gaHdfZW5hYmxlZF9zbGljZXMpCi0JCXJldCA9IGludGVsX2RidWZfc2xpY2Vfc2V0KGRl dl9wcml2LAotCQkJCQkgICBEQlVGX0NUTF9TKERCVUZfUzIpLCB0cnVlKTsKLQllbHNlCi0JCXJl dCA9IGludGVsX2RidWZfc2xpY2Vfc2V0KGRldl9wcml2LAotCQkJCQkgICBEQlVGX0NUTF9TKERC VUZfUzIpLCBmYWxzZSk7CisJLyoKKwkgKiBNaWdodCBiZSBydW5uaW5nIHRoaXMgaW4gcGFyYWxs ZWwgdG8gZ2VuOV9kY19vZmZfcG93ZXJfd2VsbF9lbmFibGUKKwkgKiBiZWluZyBjYWxsZWQgZnJv bSBpbnRlbF9kcF9kZXRlY3QgZm9yIGluc3RhbmNlLAorCSAqIHdoaWNoIGNhdXNlcyBhc3NlcnRp b24gdHJpZ2dlcmVkIGJ5IHJhY2UgY29uZGl0aW9uLAorCSAqIGFzIGdlbjlfYXNzZXJ0X2RidWZf ZW5hYmxlZCBtaWdodCBwcmVlbXB0IHRoaXMgd2hlbiByZWdpc3RlcnMKKwkgKiB3ZXJlIGFscmVh ZHkgdXBkYXRlZCwgd2hpbGUgZGV2X3ByaXYgd2FzIG5vdC4KKwkgKi8KKwltdXRleF9sb2NrKCZw b3dlcl9kb21haW5zLT5sb2NrKTsKKworCWZvciAoaSA9IDA7IGkgPCBtYXhfc2xpY2VzOyBpKysp IHsKKwkJaW50ZWxfZGJ1Zl9zbGljZV9zZXQoZGV2X3ByaXYsCisJCQkJICAgICBEQlVGX0NUTF9T KGkpLAorCQkJCSAgICAgKHJlcV9zbGljZXMgJiBCSVQoaSkpICE9IDApOworCX0KIAotCWlmIChy ZXQpCi0JCWRldl9wcml2LT5lbmFibGVkX2RidWZfc2xpY2VzX251bSA9IHJlcV9zbGljZXM7CisJ ZGV2X3ByaXYtPmVuYWJsZWRfZGJ1Zl9zbGljZXNfbWFzayA9IHJlcV9zbGljZXM7CisKKwltdXRl eF91bmxvY2soJnBvd2VyX2RvbWFpbnMtPmxvY2spOwogfQogCiBzdGF0aWMgdm9pZCBpY2xfZGJ1 Zl9lbmFibGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQogewotCWludGVsX2Rl X3dyaXRlKGRldl9wcml2LCBEQlVGX0NUTF9TKDApLAotCQkgICAgICAgaW50ZWxfZGVfcmVhZChk ZXZfcHJpdiwgREJVRl9DVExfUygwKSkgfCBEQlVGX1BPV0VSX1JFUVVFU1QpOwotCWludGVsX2Rl X3dyaXRlKGRldl9wcml2LCBEQlVGX0NUTF9TKDEpLAotCQkgICAgICAgaW50ZWxfZGVfcmVhZChk ZXZfcHJpdiwgREJVRl9DVExfUygxKSkgfCBEQlVGX1BPV0VSX1JFUVVFU1QpOwotCWludGVsX2Rl X3Bvc3RpbmdfcmVhZChkZXZfcHJpdiwgREJVRl9DVExfUygxKSk7Ci0KLQl1ZGVsYXkoMTApOwot Ci0JaWYgKCEoaW50ZWxfZGVfcmVhZChkZXZfcHJpdiwgREJVRl9DVExfUygwKSkgJiBEQlVGX1BP V0VSX1NUQVRFKSB8fAotCSAgICAhKGludGVsX2RlX3JlYWQoZGV2X3ByaXYsIERCVUZfQ1RMX1Mo MSkpICYgREJVRl9QT1dFUl9TVEFURSkpCi0JCWRybV9lcnIoJmRldl9wcml2LT5kcm0sICJEQnVm IHBvd2VyIGVuYWJsZSB0aW1lb3V0XG4iKTsKLQllbHNlCi0JCS8qCi0JCSAqIEZJWE1FOiBmb3Ig bm93IHByZXRlbmQgdGhhdCB3ZSBvbmx5IGhhdmUgMSBzbGljZSwgc2VlCi0JCSAqIGludGVsX2Vu YWJsZWRfZGJ1Zl9zbGljZXNfbnVtKCkuCi0JCSAqLwotCQlkZXZfcHJpdi0+ZW5hYmxlZF9kYnVm X3NsaWNlc19udW0gPSAxOworCS8qCisJICogSnVzdCBwb3dlciB1cCAxIHNsaWNlLCB3ZSB3aWxs CisJICogZmlndXJlIG91dCBsYXRlciB3aGljaCBzbGljZXMgd2UgaGF2ZSBhbmQgd2hhdCB3ZSBu ZWVkLgorCSAqLworCWljbF9kYnVmX3NsaWNlc191cGRhdGUoZGV2X3ByaXYsIEJJVChEQlVGX1Mx KSk7CiB9CiAKIHN0YXRpYyB2b2lkIGljbF9kYnVmX2Rpc2FibGUoc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2KQogewotCWludGVsX2RlX3dyaXRlKGRldl9wcml2LCBEQlVGX0NUTF9T KDApLAotCQkgICAgICAgaW50ZWxfZGVfcmVhZChkZXZfcHJpdiwgREJVRl9DVExfUygwKSkgJiB+ REJVRl9QT1dFUl9SRVFVRVNUKTsKLQlpbnRlbF9kZV93cml0ZShkZXZfcHJpdiwgREJVRl9DVExf UygxKSwKLQkJICAgICAgIGludGVsX2RlX3JlYWQoZGV2X3ByaXYsIERCVUZfQ1RMX1MoMSkpICYg fkRCVUZfUE9XRVJfUkVRVUVTVCk7Ci0JaW50ZWxfZGVfcG9zdGluZ19yZWFkKGRldl9wcml2LCBE QlVGX0NUTF9TKDEpKTsKLQotCXVkZWxheSgxMCk7Ci0KLQlpZiAoKGludGVsX2RlX3JlYWQoZGV2 X3ByaXYsIERCVUZfQ1RMX1MoMCkpICYgREJVRl9QT1dFUl9TVEFURSkgfHwKLQkgICAgKGludGVs X2RlX3JlYWQoZGV2X3ByaXYsIERCVUZfQ1RMX1MoMSkpICYgREJVRl9QT1dFUl9TVEFURSkpCi0J CWRybV9lcnIoJmRldl9wcml2LT5kcm0sICJEQnVmIHBvd2VyIGRpc2FibGUgdGltZW91dCFcbiIp OwotCWVsc2UKLQkJLyoKLQkJICogRklYTUU6IGZvciBub3cgcHJldGVuZCB0aGF0IHRoZSBmaXJz dCBzbGljZSBpcyBhbHdheXMKLQkJICogZW5hYmxlZCwgc2VlIGludGVsX2VuYWJsZWRfZGJ1Zl9z bGljZXNfbnVtKCkuCi0JCSAqLwotCQlkZXZfcHJpdi0+ZW5hYmxlZF9kYnVmX3NsaWNlc19udW0g PSAxOworCWljbF9kYnVmX3NsaWNlc191cGRhdGUoZGV2X3ByaXYsIDApOwogfQogCiBzdGF0aWMg dm9pZCBpY2xfbWJ1c19pbml0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBl cy5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5X3R5cGVzLmgK aW5kZXggY2UxZDlhOTE3YzVmLi4xNzgzNDI5ZTNkNzggMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90eXBlcy5oCkBAIC00OTYsNyArNDk2LDcg QEAgc3RydWN0IGludGVsX2F0b21pY19zdGF0ZSB7CiAJYm9vbCBnbG9iYWxfc3RhdGVfY2hhbmdl ZDsKIAogCS8qIE51bWJlciBvZiBlbmFibGVkIERCdWYgc2xpY2VzICovCi0JdTggZW5hYmxlZF9k YnVmX3NsaWNlc19udW07CisJdTggZW5hYmxlZF9kYnVmX3NsaWNlc19tYXNrOwogCiAJc3RydWN0 IGk5MTVfc3dfZmVuY2UgY29tbWl0X3JlYWR5OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAppbmRl eCBlYmViYzQyNDZlNmMuLjM0NTI5MjZkN2I3NyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCkBA IC0xMTg2LDcgKzExODYsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7CiAJCWJvb2wgZGlz dHJ1c3RfYmlvc193bTsKIAl9IHdtOwogCi0JdTggZW5hYmxlZF9kYnVmX3NsaWNlc19udW07IC8q IEdFTjExIGhhcyBjb25maWd1cmFibGUgMiBzbGljZXMgKi8KKwl1OCBlbmFibGVkX2RidWZfc2xp Y2VzX21hc2s7IC8qIEdFTjExIGhhcyBjb25maWd1cmFibGUgMiBzbGljZXMgKi8KIAogCXN0cnVj dCBkcmFtX2luZm8gewogCQlib29sIHZhbGlkOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9wY2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcGNpLmMKaW5kZXgg NzQxYmZmYzIyODY3Li5jODdmNmEyMTNkMGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcGNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9wY2kuYwpAQCAt NjE1LDcgKzYxNSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gY2h2 X2luZm8gPSB7CiAJLmhhc19ndF91YyA9IDEsIFwKIAkuZGlzcGxheS5oYXNfaGRjcCA9IDEsIFwK IAkuZGlzcGxheS5oYXNfaXBjID0gMSwgXAotCS5kZGJfc2l6ZSA9IDg5NgorCS5kZGJfc2l6ZSA9 IDg5NiwgXAorCS5udW1fc3VwcG9ydGVkX2RidWZfc2xpY2VzID0gMQogCiAjZGVmaW5lIFNLTF9Q TEFURk9STSBcCiAJR0VOOV9GRUFUVVJFUywgXApAQCAtNjUwLDYgKzY1MSw3IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgaW50ZWxfZGV2aWNlX2luZm8gc2tsX2d0NF9pbmZvID0gewogI2RlZmluZSBH RU45X0xQX0ZFQVRVUkVTIFwKIAlHRU4oOSksIFwKIAkuaXNfbHAgPSAxLCBcCisJLm51bV9zdXBw b3J0ZWRfZGJ1Zl9zbGljZXMgPSAxLCBcCiAJLmRpc3BsYXkuaGFzX2hvdHBsdWcgPSAxLCBcCiAJ LmVuZ2luZV9tYXNrID0gQklUKFJDUzApIHwgQklUKFZDUzApIHwgQklUKEJDUzApIHwgQklUKFZF Q1MwKSwgXAogCS5waXBlX21hc2sgPSBCSVQoUElQRV9BKSB8IEJJVChQSVBFX0IpIHwgQklUKFBJ UEVfQyksIFwKQEAgLTc3NCw2ICs3NzYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX2Rl dmljZV9pbmZvIGNubF9pbmZvID0gewogCX0sIFwKIAlHRU4oMTEpLCBcCiAJLmRkYl9zaXplID0g MjA0OCwgXAorCS5udW1fc3VwcG9ydGVkX2RidWZfc2xpY2VzID0gMiwgXAogCS5oYXNfbG9naWNh bF9yaW5nX2Vsc3EgPSAxLCBcCiAJLmNvbG9yID0geyAuZGVnYW1tYV9sdXRfc2l6ZSA9IDMzLCAu Z2FtbWFfbHV0X3NpemUgPSAyNjIxNDUgfQogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2 aWNlX2luZm8uaAppbmRleCAyNzI1Y2I3ZmMxNjkuLjdkNGQxMjJkMjE4MiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGV2aWNlX2luZm8uaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oCkBAIC0xODAsNiArMTgwLDcgQEAgc3RydWN0 IGludGVsX2RldmljZV9pbmZvIHsKIAl9IGRpc3BsYXk7CiAKIAl1MTYgZGRiX3NpemU7IC8qIGlu IGJsb2NrcyAqLworCXU4IG51bV9zdXBwb3J0ZWRfZGJ1Zl9zbGljZXM7IC8qIG51bWJlciBvZiBE QnVmIHNsaWNlcyAqLwogCiAJLyogUmVnaXN0ZXIgb2Zmc2V0cyBmb3IgdGhlIHZhcmlvdXMgZGlz cGxheSBwaXBlcyBhbmQgdHJhbnNjb2RlcnMgKi8KIAlpbnQgcGlwZV9vZmZzZXRzW0k5MTVfTUFY X1RSQU5TQ09ERVJTXTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Bt LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IGY5ZTAwY2E2MTMwMi4u NGM4N2FiY2RiNjIyIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5j CisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKQEAgLTM1OTcsMjYgKzM1OTcs MTggQEAgYm9vbCBpbGtfZGlzYWJsZV9scF93bShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYpCiAJcmV0dXJuIF9pbGtfZGlzYWJsZV9scF93bShkZXZfcHJpdiwgV01fRElSVFlfTFBf QUxMKTsKIH0KIAotdTggaW50ZWxfZW5hYmxlZF9kYnVmX3NsaWNlc19udW0oc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2KQordTggaW50ZWxfZW5hYmxlZF9kYnVmX3NsaWNlc19tYXNr KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKIHsKLQl1OCBlbmFibGVkX2RidWZf c2xpY2VzX251bTsKLQotCS8qIFNsaWNlIDEgd2lsbCBhbHdheXMgYmUgZW5hYmxlZCAqLwotCWVu YWJsZWRfZGJ1Zl9zbGljZXNfbnVtID0gMTsKLQotCS8qIEdlbiBwcmlvciB0byBHRU4xMSBoYXZl IG9ubHkgb25lIERCdWYgc2xpY2UgKi8KLQlpZiAoSU5URUxfR0VOKGRldl9wcml2KSA8IDExKQot CQlyZXR1cm4gZW5hYmxlZF9kYnVmX3NsaWNlc19udW07CisJaW50IGk7CisJaW50IG1heF9zbGlj ZXMgPSBJTlRFTF9JTkZPKGRldl9wcml2KS0+bnVtX3N1cHBvcnRlZF9kYnVmX3NsaWNlczsKKwl1 OCBlbmFibGVkX3NsaWNlc19tYXNrID0gMDsKIAotCS8qCi0JICogRklYTUU6IGZvciBub3cgd2Un bGwgb25seSBldmVyIHVzZSAxIHNsaWNlOyBwcmV0ZW5kIHRoYXQgd2UgaGF2ZQotCSAqIG9ubHkg dGhhdCAxIHNsaWNlIGVuYWJsZWQgdW50aWwgd2UgaGF2ZSBhIHByb3BlciB3YXkgZm9yIG9uLWRl bWFuZAotCSAqIHRvZ2dsaW5nIG9mIHRoZSBzZWNvbmQgc2xpY2UuCi0JICovCi0JaWYgKDAgJiYg STkxNV9SRUFEKERCVUZfQ1RMX1MoREJVRl9TMikpICYgREJVRl9QT1dFUl9TVEFURSkKLQkJZW5h YmxlZF9kYnVmX3NsaWNlc19udW0rKzsKKwlmb3IgKGkgPSAwOyBpIDwgbWF4X3NsaWNlczsgaSsr KSB7CisJCWlmIChJOTE1X1JFQUQoREJVRl9DVExfUyhpKSkgJiBEQlVGX1BPV0VSX1NUQVRFKQor CQkJZW5hYmxlZF9zbGljZXNfbWFzayB8PSBCSVQoaSk7CisJfQogCi0JcmV0dXJuIGVuYWJsZWRf ZGJ1Zl9zbGljZXNfbnVtOworCXJldHVybiBlbmFibGVkX3NsaWNlc19tYXNrOwogfQogCiAvKgpA QCAtMzgyNCw4ICszODE2LDYgQEAgc3RhdGljIHUxNiBpbnRlbF9nZXRfZGRiX3NpemUoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAogewogCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRl ICpzdGF0ZSA9IGNydGNfc3RhdGUtPnVhcGkuc3RhdGU7CiAJc3RydWN0IGludGVsX2F0b21pY19z dGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUpOwotCWNvbnN0 IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphZGp1c3RlZF9tb2RlOwotCXU2NCB0b3RhbF9kYXRh X2J3OwogCXUxNiBkZGJfc2l6ZSA9IElOVEVMX0lORk8oZGV2X3ByaXYpLT5kZGJfc2l6ZTsKIAog CWRybV9XQVJOX09OKCZkZXZfcHJpdi0+ZHJtLCBkZGJfc2l6ZSA9PSAwKTsKQEAgLTM4MzMsMjMg KzM4MjMsOCBAQCBzdGF0aWMgdTE2IGludGVsX2dldF9kZGJfc2l6ZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYsCiAJaWYgKElOVEVMX0dFTihkZXZfcHJpdikgPCAxMSkKIAkJcmV0 dXJuIGRkYl9zaXplIC0gNDsgLyogNCBibG9ja3MgZm9yIGJ5cGFzcyBwYXRoIGFsbG9jYXRpb24g Ki8KIAotCWFkanVzdGVkX21vZGUgPSAmY3J0Y19zdGF0ZS0+aHcuYWRqdXN0ZWRfbW9kZTsKLQl0 b3RhbF9kYXRhX2J3ID0gdG90YWxfZGF0YV9yYXRlICogZHJtX21vZGVfdnJlZnJlc2goYWRqdXN0 ZWRfbW9kZSk7Ci0KLQkvKgotCSAqIDEyR0IvcyBpcyBtYXhpbXVtIEJXIHN1cHBvcnRlZCBieSBz aW5nbGUgREJ1ZiBzbGljZS4KLQkgKgotCSAqIEZJWE1FIGRidWYgc2xpY2UgY29kZSBpcyBicm9r ZW46Ci0JICogLSBtdXN0IHdhaXQgZm9yIHBsYW5lcyB0byBzdG9wIHVzaW5nIHRoZSBzbGljZSBi ZWZvcmUgcG93ZXJpbmcgaXQgb2ZmCi0JICogLSBwbGFuZSBzdHJhZGRsaW5nIGJvdGggc2xpY2Vz IGlzIGlsbGVnYWwgaW4gbXVsdGktcGlwZSBzY2VuYXJpb3MKLQkgKiAtIHNob3VsZCB2YWxpZGF0 ZSB3ZSBzdGF5IHdpdGhpbiB0aGUgaHcgYmFuZHdpZHRoIGxpbWl0cwotCSAqLwotCWlmICgwICYm IChudW1fYWN0aXZlID4gMSB8fCB0b3RhbF9kYXRhX2J3ID49IEdCcHMoMTIpKSkgewotCQlpbnRl bF9zdGF0ZS0+ZW5hYmxlZF9kYnVmX3NsaWNlc19udW0gPSAyOwotCX0gZWxzZSB7Ci0JCWludGVs X3N0YXRlLT5lbmFibGVkX2RidWZfc2xpY2VzX251bSA9IDE7Ci0JCWRkYl9zaXplIC89IDI7Ci0J fQorCWludGVsX3N0YXRlLT5lbmFibGVkX2RidWZfc2xpY2VzX21hc2sgPSBCSVQoREJVRl9TMSk7 CisJZGRiX3NpemUgLz0gMjsKIAogCXJldHVybiBkZGJfc2l6ZTsKIH0KQEAgLTQwNDYsOCArNDAy MSw4IEBAIHZvaWQgc2tsX3BpcGVfZGRiX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YywKIAogdm9pZCBza2xfZGRiX2dldF9od19zdGF0ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYpCiB7Ci0JZGV2X3ByaXYtPmVuYWJsZWRfZGJ1Zl9zbGljZXNfbnVtID0KLQkJ CQlpbnRlbF9lbmFibGVkX2RidWZfc2xpY2VzX251bShkZXZfcHJpdik7CisJZGV2X3ByaXYtPmVu YWJsZWRfZGJ1Zl9zbGljZXNfbWFzayA9CisJCQkJaW50ZWxfZW5hYmxlZF9kYnVmX3NsaWNlc19t YXNrKGRldl9wcml2KTsKIH0KIAogLyoKQEAgLTUxNTUsNyArNTEzMCw3IEBAIHNrbF9jb21wdXRl X2RkYihzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSkKIAlzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YzsKIAlpbnQgcmV0LCBpOwogCi0Jc3RhdGUtPmVuYWJsZWRfZGJ1Zl9zbGljZXNfbnVt ID0gZGV2X3ByaXYtPmVuYWJsZWRfZGJ1Zl9zbGljZXNfbnVtOworCXN0YXRlLT5lbmFibGVkX2Ri dWZfc2xpY2VzX21hc2sgPSBkZXZfcHJpdi0+ZW5hYmxlZF9kYnVmX3NsaWNlc19tYXNrOwogCiAJ Zm9yX2VhY2hfb2xkbmV3X2ludGVsX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIG9sZF9jcnRj X3N0YXRlLAogCQkJCQkgICAgbmV3X2NydGNfc3RhdGUsIGkpIHsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9w bS5oCmluZGV4IDIyZmQyZGFmNjA4ZS4uZDYwYTg1NDIxYzVhIDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3BtLmgKQEAgLTMyLDcgKzMyLDcgQEAgdm9pZCBnNHhfd21fZ2V0X2h3X3N0YXRlKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiB2b2lkIHZsdl93bV9nZXRfaHdfc3RhdGUoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKIHZvaWQgaWxrX3dtX2dldF9od19zdGF0 ZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBza2xfd21fZ2V0X2h3 X3N0YXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7Ci11OCBpbnRlbF9lbmFi bGVkX2RidWZfc2xpY2VzX251bShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwor dTggaW50ZWxfZW5hYmxlZF9kYnVmX3NsaWNlc19tYXNrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdik7CiB2b2lkIHNrbF9waXBlX2RkYl9nZXRfaHdfc3RhdGUoc3RydWN0IGludGVs X2NydGMgKmNydGMsCiAJCQkgICAgICAgc3RydWN0IHNrbF9kZGJfZW50cnkgKmRkYl95LAogCQkJ ICAgICAgIHN0cnVjdCBza2xfZGRiX2VudHJ5ICpkZGJfdXYpOwotLSAKMi4yNC4xLjQ4NS5nYWQw NWEzZDhlNQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K SW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==