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=-16.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,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 74CF3C433ED for ; Thu, 20 May 2021 15:10:45 +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 15390611ED for ; Thu, 20 May 2021 15:10:45 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 15390611ED Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.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 48F8A6F476; Thu, 20 May 2021 15:10:40 +0000 (UTC) Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTPS id 4B9CC6E222; Thu, 20 May 2021 15:10:38 +0000 (UTC) IronPort-SDR: lClOXr194kNU9DLEMestjxumYqtwGIz4axiATG6/PMQ8bgfyD856xjzRkYZ6QvaScgNZ2DA2Kk Uhl/Eg5TvJIg== X-IronPort-AV: E=McAfee;i="6200,9189,9989"; a="222341193" X-IronPort-AV: E=Sophos;i="5.82,313,1613462400"; d="scan'208";a="222341193" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2021 08:10:02 -0700 IronPort-SDR: ezOoIMHB9Y5Os/yrnhHkLeiwI9OkjERwT6P5ovvnl6lIVAw4R9r+aHB2zHp7rCemrJnnqVltKw c+gtaBYfFr9Q== X-IronPort-AV: E=Sophos;i="5.82,313,1613462400"; d="scan'208";a="395728160" Received: from cbjoerns-mobl1.ger.corp.intel.com (HELO thellst-mobl1.intel.com) ([10.249.254.247]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 May 2021 08:10:00 -0700 From: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Date: Thu, 20 May 2021 17:09:44 +0200 Message-Id: <20210520150947.803891-3-thomas.hellstrom@linux.intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210520150947.803891-1-thomas.hellstrom@linux.intel.com> References: <20210520150947.803891-1-thomas.hellstrom@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [RFC PATCH 2/5] drm, drm/i915: Move the memcpy_from_wc functionality to core drm 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: , Cc: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= , =?UTF-8?q?Christian=20K=C3=B6nig?= , Daniel Vetter Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" TWVtY3B5IGZyb20gd2Mgd2lsbCBiZSB1c2VkIGFzIHdlbGwgYnkgVFRNIG1lbWNweS4KTW92ZSBp dCB0byBjb3JlIGRybSwgYW5kIG1ha2UgdGhlIGludGVyZmFjZSBkbyB0aGUgcmlnaHQgdGhpbmcK ZXZlbiBvbiAhWDg2LgoKQ2M6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1k LmNvbT4KQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CkNjOiBEYXZl IEFpcmxpZSA8YWlybGllZEBnbWFpbC5jb20+ClNpZ25lZC1vZmYtYnk6IFRob21hcyBIZWxsc3Ry w7ZtIDx0aG9tYXMuaGVsbHN0cm9tQGxpbnV4LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9k cm0vTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJt L2RybV9kcnYuYyAgICAgICAgICAgICAgICAgICAgIHwgIDIgKwogLi4uL2RybS97aTkxNS9pOTE1 X21lbWNweS5jID0+IGRybV9tZW1jcHkuY30gIHwgMzEgKysrKysrKy0tLS0tLS0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAxIC0KIC4uLi9ncHUvZHJt L2k5MTUvZ2VtL2k5MTVfZ2VtX2V4ZWNidWZmZXIuYyAgICB8ICA0ICstCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmMgICAgfCAgNSArKy0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3NlbGZ0ZXN0X3Jlc2V0LmMgICAgICB8ICA3ICsrLS0KIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2d0L3VjL2ludGVsX2d1Y19sb2cuYyAgICB8IDExICsrLS0tCiBkcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2NtZF9wYXJzZXIuYyAgICAgICAgfCAgNCArLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9kcnYuYyAgICAgICAgICAgICAgIHwgIDIgLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9ncHVfZXJyb3IuYyAgICAgICAgIHwgIDggKystLQogZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9tZW1jcHkuaCAgICAgICAgICAgIHwgMzQgLS0tLS0tLS0tLS0tLS0tCiAuLi4vZHJt L2k5MTUvc2VsZnRlc3RzL2ludGVsX21lbW9yeV9yZWdpb24uYyAgfCAgNyArKy0tCiBpbmNsdWRl L2RybS9kcm1fbWVtY3B5LmggICAgICAgICAgICAgICAgICAgICAgfCA0MSArKysrKysrKysrKysr KysrKysrCiAxNCBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCA3NiBkZWxldGlvbnMo LSkKIHJlbmFtZSBkcml2ZXJzL2dwdS9kcm0ve2k5MTUvaTkxNV9tZW1jcHkuYyA9PiBkcm1fbWVt Y3B5LmN9ICg4NCUpCiBkZWxldGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9tZW1jcHkuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvZHJtL2RybV9tZW1jcHkuaAoK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9N YWtlZmlsZQppbmRleCBhOTFjYzc2ODQ5MDQuLmYzYWI4NTg2YzNkNyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9NYWtlZmlsZQpAQCAt MTgsNyArMTgsNyBAQCBkcm0teSAgICAgICA6PQlkcm1fYXBlcnR1cmUubyBkcm1fYXV0aC5vIGRy bV9jYWNoZS5vIFwKIAkJZHJtX2R1bWJfYnVmZmVycy5vIGRybV9tb2RlX2NvbmZpZy5vIGRybV92 YmxhbmsubyBcCiAJCWRybV9zeW5jb2JqLm8gZHJtX2xlYXNlLm8gZHJtX3dyaXRlYmFjay5vIGRy bV9jbGllbnQubyBcCiAJCWRybV9jbGllbnRfbW9kZXNldC5vIGRybV9hdG9taWNfdWFwaS5vIGRy bV9oZGNwLm8gXAotCQlkcm1fbWFuYWdlZC5vIGRybV92Ymxhbmtfd29yay5vCisJCWRybV9tYW5h Z2VkLm8gZHJtX3ZibGFua193b3JrLm8gZHJtX21lbWNweS5vIFwKIAogZHJtLSQoQ09ORklHX0RS TV9MRUdBQ1kpICs9IGRybV9hZ3BzdXBwb3J0Lm8gZHJtX2J1ZnMubyBkcm1fY29udGV4dC5vIGRy bV9kbWEubyBcCiAJCQkgICAgZHJtX2xlZ2FjeV9taXNjLm8gZHJtX2xvY2subyBkcm1fbWVtb3J5 Lm8gZHJtX3NjYXR0ZXIubyBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rydi5j IGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYwppbmRleCAzZDhkNjhhOThiOTUuLjM1MWNjMjkw MGNmMSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9kcnYuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2Rydi5jCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSA8ZHJtL2RybV9k cnYuaD4KICNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KICNpbmNsdWRlIDxkcm0vZHJtX21hbmFn ZWQuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX21lbWNweS5oPgogI2luY2x1ZGUgPGRybS9kcm1fbW9k ZV9vYmplY3QuaD4KICNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+CiAKQEAgLTEwNDEsNiArMTA0 Miw3IEBAIHN0YXRpYyBpbnQgX19pbml0IGRybV9jb3JlX2luaXQodm9pZCkKIAogCWRybV9jb25u ZWN0b3JfaWRhX2luaXQoKTsKIAlpZHJfaW5pdCgmZHJtX21pbm9yc19pZHIpOworCWRybV9tZW1j cHlfaW5pdF9lYXJseSgpOwogCiAJcmV0ID0gZHJtX3N5c2ZzX2luaXQoKTsKIAlpZiAocmV0IDwg MCkgewpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9tZW1jcHkuYyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fbWVtY3B5LmMKc2ltaWxhcml0eSBpbmRleCA4NCUKcmVuYW1lIGZy b20gZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9tZW1jcHkuYwpyZW5hbWUgdG8gZHJpdmVycy9n cHUvZHJtL2RybV9tZW1jcHkuYwppbmRleCAxYjAyMWE0OTAyZGUuLjAzNjg4NDI1YTA5NiAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9tZW1jcHkuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX21lbWNweS5jCkBAIC0xLDMgKzEsNCBAQAorLy8gU1BEWC1MaWNlbnNlLUlk ZW50aWZpZXI6IE1JVAogLyoKICAqIENvcHlyaWdodCDCqSAyMDE2IEludGVsIENvcnBvcmF0aW9u CiAgKgpAQCAtMjIsMTYgKzIzLDExIEBACiAgKgogICovCiAKKyNpZmRlZiBDT05GSUdfWDg2CiAj aW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5jbHVkZSA8YXNtL2ZwdS9hcGkuaD4KIAotI2lu Y2x1ZGUgImk5MTVfbWVtY3B5LmgiCi0KLSNpZiBJU19FTkFCTEVEKENPTkZJR19EUk1fSTkxNV9E RUJVRykKLSNkZWZpbmUgQ0lfQlVHX09OKGV4cHIpIEJVR19PTihleHByKQotI2Vsc2UKLSNkZWZp bmUgQ0lfQlVHX09OKGV4cHIpIEJVSUxEX0JVR19PTl9JTlZBTElEKGV4cHIpCi0jZW5kaWYKKyNp bmNsdWRlICJkcm0vZHJtX21lbWNweS5oIgogCiBzdGF0aWMgREVGSU5FX1NUQVRJQ19LRVlfRkFM U0UoaGFzX21vdm50ZHFhKTsKIApAQCAtOTQsMjMgKzkwLDIzIEBAIHN0YXRpYyB2b2lkIF9fbWVt Y3B5X250ZHF1KHZvaWQgKmRzdCwgY29uc3Qgdm9pZCAqc3JjLCB1bnNpZ25lZCBsb25nIGxlbikK IH0KIAogLyoqCi0gKiBpOTE1X21lbWNweV9mcm9tX3djOiBwZXJmb3JtIGFuIGFjY2VsZXJhdGVk ICphbGlnbmVkKiByZWFkIGZyb20gV0MKKyAqIGRybV9tZW1jcHlfZnJvbV93YzogcGVyZm9ybSBh biBhY2NlbGVyYXRlZCAqYWxpZ25lZCogcmVhZCBmcm9tIFdDCiAgKiBAZHN0OiBkZXN0aW5hdGlv biBwb2ludGVyCiAgKiBAc3JjOiBzb3VyY2UgcG9pbnRlcgogICogQGxlbjogaG93IG1hbnkgYnl0 ZXMgdG8gY29weQogICoKLSAqIGk5MTVfbWVtY3B5X2Zyb21fd2MgY29waWVzIEBsZW4gYnl0ZXMg ZnJvbSBAc3JjIHRvIEBkc3QgdXNpbmcKKyAqIGRybV9tZW1jcHlfZnJvbV93YyBjb3BpZXMgQGxl biBieXRlcyBmcm9tIEBzcmMgdG8gQGRzdCB1c2luZwogICogbm9uLXRlbXBvcmFsIGluc3RydWN0 aW9ucyB3aGVyZSBhdmFpbGFibGUuIE5vdGUgdGhhdCBhbGwgYXJndW1lbnRzCiAgKiAoQHNyYywg QGRzdCkgbXVzdCBiZSBhbGlnbmVkIHRvIDE2IGJ5dGVzIGFuZCBAbGVuIG11c3QgYmUgYSBtdWx0 aXBsZQogICogb2YgMTYuCiAgKgogICogVG8gdGVzdCB3aGV0aGVyIGFjY2VsZXJhdGVkIHJlYWRz IGZyb20gV0MgYXJlIHN1cHBvcnRlZCwgdXNlCi0gKiBpOTE1X21lbWNweV9mcm9tX3djKE5VTEws IE5VTEwsIDApOworICogZHJtX21lbWNweV9mcm9tX3djKE5VTEwsIE5VTEwsIDApOwogICoKICAq IFJldHVybnMgdHJ1ZSBpZiB0aGUgY29weSB3YXMgc3VjY2Vzc2Z1bCwgZmFsc2UgaWYgdGhlIHBy ZWNvbmRpdGlvbnMKICAqIGFyZSBub3QgbWV0LgogICovCi1ib29sIGk5MTVfbWVtY3B5X2Zyb21f d2Modm9pZCAqZHN0LCBjb25zdCB2b2lkICpzcmMsIHVuc2lnbmVkIGxvbmcgbGVuKQorYm9vbCBk cm1fbWVtY3B5X2Zyb21fd2Modm9pZCAqZHN0LCBjb25zdCB2b2lkICpzcmMsIHVuc2lnbmVkIGxv bmcgbGVuKQogewogCWlmICh1bmxpa2VseSgoKHVuc2lnbmVkIGxvbmcpZHN0IHwgKHVuc2lnbmVk IGxvbmcpc3JjIHwgbGVuKSAmIDE1KSkKIAkJcmV0dXJuIGZhbHNlOwpAQCAtMTIzLDI0ICsxMTks MjMgQEAgYm9vbCBpOTE1X21lbWNweV9mcm9tX3djKHZvaWQgKmRzdCwgY29uc3Qgdm9pZCAqc3Jj LCB1bnNpZ25lZCBsb25nIGxlbikKIAogCXJldHVybiBmYWxzZTsKIH0KK0VYUE9SVF9TWU1CT0wo ZHJtX21lbWNweV9mcm9tX3djKTsKIAogLyoqCi0gKiBpOTE1X3VuYWxpZ25lZF9tZW1jcHlfZnJv bV93YzogcGVyZm9ybSBhIG1vc3RseSBhY2NlbGVyYXRlZCByZWFkIGZyb20gV0MKKyAqIGRybV91 bmFsaWduZWRfbWVtY3B5X2Zyb21fd2M6IHBlcmZvcm0gYSBtb3N0bHkgYWNjZWxlcmF0ZWQgcmVh ZCBmcm9tIFdDCiAgKiBAZHN0OiBkZXN0aW5hdGlvbiBwb2ludGVyCiAgKiBAc3JjOiBzb3VyY2Ug cG9pbnRlcgogICogQGxlbjogaG93IG1hbnkgYnl0ZXMgdG8gY29weQogICoKLSAqIExpa2UgaTkx NV9tZW1jcHlfZnJvbV93YygpLCB0aGUgdW5hbGlnbmVkIHZhcmlhbnQgY29waWVzIEBsZW4gYnl0 ZXMgZnJvbQorICogTGlrZSBkcm1fbWVtY3B5X2Zyb21fd2MoKSwgdGhlIHVuYWxpZ25lZCB2YXJp YW50IGNvcGllcyBAbGVuIGJ5dGVzIGZyb20KICAqIEBzcmMgdG8gQGRzdCB1c2luZyAqIG5vbi10 ZW1wb3JhbCBpbnN0cnVjdGlvbnMgd2hlcmUgYXZhaWxhYmxlLCBidXQKICAqIGFjY2VwdHMgdGhh dCBpdHMgYXJndW1lbnRzIG1heSBub3QgYmUgYWxpZ25lZCwgYnV0IGFyZSB2YWxpZCBmb3IgdGhl CiAgKiBwb3RlbnRpYWwgMTYtYnl0ZSByZWFkIHBhc3QgdGhlIGVuZC4KICAqLwotdm9pZCBpOTE1 X3VuYWxpZ25lZF9tZW1jcHlfZnJvbV93Yyh2b2lkICpkc3QsIGNvbnN0IHZvaWQgKnNyYywgdW5z aWduZWQgbG9uZyBsZW4pCit2b2lkIGRybV91bmFsaWduZWRfbWVtY3B5X2Zyb21fd2Modm9pZCAq ZHN0LCBjb25zdCB2b2lkICpzcmMsIHVuc2lnbmVkIGxvbmcgbGVuKQogewogCXVuc2lnbmVkIGxv bmcgYWRkcjsKIAotCUNJX0JVR19PTighaTkxNV9oYXNfbWVtY3B5X2Zyb21fd2MoKSk7Ci0KIAlh ZGRyID0gKHVuc2lnbmVkIGxvbmcpc3JjOwogCWlmICghSVNfQUxJR05FRChhZGRyLCAxNikpIHsK IAkJdW5zaWduZWQgbG9uZyB4ID0gbWluKEFMSUdOKGFkZHIsIDE2KSAtIGFkZHIsIGxlbik7CkBA IC0xNTUsOCArMTUwLDkgQEAgdm9pZCBpOTE1X3VuYWxpZ25lZF9tZW1jcHlfZnJvbV93Yyh2b2lk ICpkc3QsIGNvbnN0IHZvaWQgKnNyYywgdW5zaWduZWQgbG9uZyBsZW4KIAlpZiAobGlrZWx5KGxl bikpCiAJCV9fbWVtY3B5X250ZHF1KGRzdCwgc3JjLCBESVZfUk9VTkRfVVAobGVuLCAxNikpOwog fQorRVhQT1JUX1NZTUJPTChkcm1fdW5hbGlnbmVkX21lbWNweV9mcm9tX3djKTsKIAotdm9pZCBp OTE1X21lbWNweV9pbml0X2Vhcmx5KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikK K3ZvaWQgZHJtX21lbWNweV9pbml0X2Vhcmx5KHZvaWQpCiB7CiAJLyoKIAkgKiBTb21lIGh5cGVy dmlzb3JzIChlLmcuIEtWTSkgZG9uJ3Qgc3VwcG9ydCBWRVgtcHJlZml4IGluc3RydWN0aW9ucwpA QCAtMTY2LDMgKzE2Miw0IEBAIHZvaWQgaTkxNV9tZW1jcHlfaW5pdF9lYXJseShzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJICAgICFib290X2NwdV9oYXMoWDg2X0ZFQVRVUkVf SFlQRVJWSVNPUikpCiAJCXN0YXRpY19icmFuY2hfZW5hYmxlKCZoYXNfbW92bnRkcWEpOwogfQor I2VuZGlmCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZSBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCmluZGV4IGNiODgyMzU3MDk5Ni4uOTk4NjA2YjdmNDlm IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQorKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9NYWtlZmlsZQpAQCAtNjEsNyArNjEsNiBAQCBpOTE1LXkgKz0gaTkxNV9k cnYubyBcCiAjIGNvcmUgbGlicmFyeSBjb2RlCiBpOTE1LXkgKz0gXAogCWRtYV9yZXN2X3V0aWxz Lm8gXAotCWk5MTVfbWVtY3B5Lm8gXAogCWk5MTVfbW0ubyBcCiAJaTkxNV9zd19mZW5jZS5vIFwK IAlpOTE1X3N3X2ZlbmNlX3dvcmsubyBcCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9nZW0vaTkxNV9nZW1fZXhlY2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5 MTVfZ2VtX2V4ZWNidWZmZXIuYwppbmRleCAyOTcxNDM1MTFmOTkuLjc3Mjg1ZTQyMWZiOCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX2V4ZWNidWZmZXIuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fZXhlY2J1ZmZlci5jCkBAIC0x MCw2ICsxMCw3IEBACiAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgogCiAjaW5jbHVkZSA8ZHJt L2RybV9zeW5jb2JqLmg+CisjaW5jbHVkZSA8ZHJtL2RybV9tZW1jcHkuaD4KIAogI2luY2x1ZGUg ImRpc3BsYXkvaW50ZWxfZnJvbnRidWZmZXIuaCIKIApAQCAtMjgsNyArMjksNiBAQAogI2luY2x1 ZGUgImk5MTVfc3dfZmVuY2Vfd29yay5oIgogI2luY2x1ZGUgImk5MTVfdHJhY2UuaCIKICNpbmNs dWRlICJpOTE1X3VzZXJfZXh0ZW5zaW9ucy5oIgotI2luY2x1ZGUgImk5MTVfbWVtY3B5LmgiCiAK IHN0cnVjdCBlYl92bWEgewogCXN0cnVjdCBpOTE1X3ZtYSAqdm1hOwpAQCAtMjUwMyw3ICsyNTAz LDcgQEAgc3RhdGljIGludCBlYl9wYXJzZV9waXBlbGluZShzdHJ1Y3QgaTkxNV9leGVjYnVmZmVy ICplYiwKIAkJIShiYXRjaC0+Y2FjaGVfY29oZXJlbnQgJiBJOTE1X0JPX0NBQ0hFX0NPSEVSRU5U X0ZPUl9SRUFEKTsKIAogCXB3LT5iYXRjaF9tYXAgPSBFUlJfUFRSKC1FTk9ERVYpOwotCWlmIChu ZWVkc19jbGZsdXNoICYmIGk5MTVfaGFzX21lbWNweV9mcm9tX3djKCkpCisJaWYgKG5lZWRzX2Ns Zmx1c2ggJiYgZHJtX2hhc19tZW1jcHlfZnJvbV93YygpKQogCQlwdy0+YmF0Y2hfbWFwID0gaTkx NV9nZW1fb2JqZWN0X3Bpbl9tYXAoYmF0Y2gsIEk5MTVfTUFQX1dDKTsKIAogCWlmIChJU19FUlIo cHctPmJhdGNoX21hcCkpIHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9p OTE1X2dlbV9vYmplY3QuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmpl Y3QuYwppbmRleCBjODk1M2UzZjVjNzAuLmYxZWI4NTdmYTE3MiAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3QuYwpAQCAtMjQsNiArMjQsOCBAQAogCiAjaW5jbHVk ZSA8bGludXgvc2NoZWQvbW0uaD4KIAorI2luY2x1ZGUgPGRybS9kcm1fbWVtY3B5Lmg+CisKICNp bmNsdWRlICJkaXNwbGF5L2ludGVsX2Zyb250YnVmZmVyLmgiCiAjaW5jbHVkZSAiaTkxNV9kcnYu aCIKICNpbmNsdWRlICJpOTE1X2dlbV9jbGZsdXNoLmgiCkBAIC0zMSw3ICszMyw2IEBACiAjaW5j bHVkZSAiaTkxNV9nZW1fbW1hbi5oIgogI2luY2x1ZGUgImk5MTVfZ2VtX29iamVjdC5oIgogI2lu Y2x1ZGUgImk5MTVfZ2xvYmFscy5oIgotI2luY2x1ZGUgImk5MTVfbWVtY3B5LmgiCiAjaW5jbHVk ZSAiaTkxNV90cmFjZS5oIgogCiBzdGF0aWMgc3RydWN0IGk5MTVfZ2xvYmFsX29iamVjdCB7CkBA IC0zNzQsNyArMzc1LDcgQEAgaTkxNV9nZW1fb2JqZWN0X3JlYWRfZnJvbV9wYWdlX2lvbWFwKHN0 cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosIHU2NCBvZmZzZXQKIAkJCQkgICAgUEFHRV9T SVpFKTsKIAogCXNyY19wdHIgPSBzcmNfbWFwICsgb2Zmc2V0X2luX3BhZ2Uob2Zmc2V0KTsKLQlp ZiAoIWk5MTVfbWVtY3B5X2Zyb21fd2MoZHN0LCAodm9pZCBfX2ZvcmNlICopc3JjX3B0ciwgc2l6 ZSkpCisJaWYgKCFkcm1fbWVtY3B5X2Zyb21fd2MoZHN0LCAodm9pZCBfX2ZvcmNlICopc3JjX3B0 ciwgc2l6ZSkpCiAJCW1lbWNweV9mcm9taW8oZHN0LCBzcmNfcHRyLCBzaXplKTsKIAogCWlvX21h cHBpbmdfdW5tYXAoc3JjX21hcCk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n dC9zZWxmdGVzdF9yZXNldC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfcmVz ZXQuYwppbmRleCA4Nzg0MjU3ZWM4MDguLjkyYWRhNjdhMzgzNSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvZ3Qvc2VsZnRlc3RfcmVzZXQuYworKysgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9ndC9zZWxmdGVzdF9yZXNldC5jCkBAIC01LDkgKzUsMTAgQEAKIAogI2luY2x1ZGUgPGxp bnV4L2NyYzMyLmg+CiAKKyNpbmNsdWRlIDxkcm0vZHJtX21lbWNweS5oPgorCiAjaW5jbHVkZSAi Z2VtL2k5MTVfZ2VtX3N0b2xlbi5oIgogCi0jaW5jbHVkZSAiaTkxNV9tZW1jcHkuaCIKICNpbmNs dWRlICJpOTE1X3NlbGZ0ZXN0LmgiCiAjaW5jbHVkZSAiaW50ZWxfZ3B1X2NvbW1hbmRzLmgiCiAj aW5jbHVkZSAic2VsZnRlc3RzL2lndF9yZXNldC5oIgpAQCAtOTksNyArMTAwLDcgQEAgX19pZ3Rf cmVzZXRfc3RvbGVuKHN0cnVjdCBpbnRlbF9ndCAqZ3QsCiAJCQltZW1zZXRfaW8ocywgU1RBQ0tf TUFHSUMsIFBBR0VfU0laRSk7CiAKIAkJaW4gPSAodm9pZCBfX2ZvcmNlICopczsKLQkJaWYgKGk5 MTVfbWVtY3B5X2Zyb21fd2ModG1wLCBpbiwgUEFHRV9TSVpFKSkKKwkJaWYgKGRybV9tZW1jcHlf ZnJvbV93Yyh0bXAsIGluLCBQQUdFX1NJWkUpKQogCQkJaW4gPSB0bXA7CiAJCWNyY1twYWdlXSA9 IGNyYzMyX2xlKDAsIGluLCBQQUdFX1NJWkUpOwogCkBAIC0xMzUsNyArMTM2LDcgQEAgX19pZ3Rf cmVzZXRfc3RvbGVuKHN0cnVjdCBpbnRlbF9ndCAqZ3QsCiAJCQkJICAgICAgUEFHRV9TSVpFKTsK IAogCQlpbiA9ICh2b2lkIF9fZm9yY2UgKilzOwotCQlpZiAoaTkxNV9tZW1jcHlfZnJvbV93Yyh0 bXAsIGluLCBQQUdFX1NJWkUpKQorCQlpZiAoZHJtX21lbWNweV9mcm9tX3djKHRtcCwgaW4sIFBB R0VfU0laRSkpCiAJCQlpbiA9IHRtcDsKIAkJeCA9IGNyYzMyX2xlKDAsIGluLCBQQUdFX1NJWkUp OwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfbG9n LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9pbnRlbF9ndWNfbG9nLmMKaW5kZXggYzM2 ZDVlYjViYmI5Li5mMDQ1ZTQyYmU2Y2EgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2d0L3VjL2ludGVsX2d1Y19sb2cuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC91Yy9p bnRlbF9ndWNfbG9nLmMKQEAgLTUsOSArNSwxMCBAQAogCiAjaW5jbHVkZSA8bGludXgvZGVidWdm cy5oPgogCisjaW5jbHVkZSA8ZHJtL2RybV9tZW1jcHkuaD4KKwogI2luY2x1ZGUgImd0L2ludGVs X2d0LmgiCiAjaW5jbHVkZSAiaTkxNV9kcnYuaCIKLSNpbmNsdWRlICJpOTE1X21lbWNweS5oIgog I2luY2x1ZGUgImludGVsX2d1Y19sb2cuaCIKIAogc3RhdGljIHZvaWQgZ3VjX2xvZ19jYXB0dXJl X2xvZ3Moc3RydWN0IGludGVsX2d1Y19sb2cgKmxvZyk7CkBAIC0yOTUsMTMgKzI5NiwxMyBAQCBz dGF0aWMgdm9pZCBndWNfcmVhZF91cGRhdGVfbG9nX2J1ZmZlcihzdHJ1Y3QgaW50ZWxfZ3VjX2xv ZyAqbG9nKQogCiAJCS8qIEp1c3QgY29weSB0aGUgbmV3bHkgd3JpdHRlbiBkYXRhICovCiAJCWlm IChyZWFkX29mZnNldCA+IHdyaXRlX29mZnNldCkgewotCQkJaTkxNV9tZW1jcHlfZnJvbV93Yyhk c3RfZGF0YSwgc3JjX2RhdGEsIHdyaXRlX29mZnNldCk7CisJCQlkcm1fbWVtY3B5X2Zyb21fd2Mo ZHN0X2RhdGEsIHNyY19kYXRhLCB3cml0ZV9vZmZzZXQpOwogCQkJYnl0ZXNfdG9fY29weSA9IGJ1 ZmZlcl9zaXplIC0gcmVhZF9vZmZzZXQ7CiAJCX0gZWxzZSB7CiAJCQlieXRlc190b19jb3B5ID0g d3JpdGVfb2Zmc2V0IC0gcmVhZF9vZmZzZXQ7CiAJCX0KLQkJaTkxNV9tZW1jcHlfZnJvbV93Yyhk c3RfZGF0YSArIHJlYWRfb2Zmc2V0LAotCQkJCSAgICBzcmNfZGF0YSArIHJlYWRfb2Zmc2V0LCBi eXRlc190b19jb3B5KTsKKwkJZHJtX21lbWNweV9mcm9tX3djKGRzdF9kYXRhICsgcmVhZF9vZmZz ZXQsCisJCQkJICAgc3JjX2RhdGEgKyByZWFkX29mZnNldCwgYnl0ZXNfdG9fY29weSk7CiAKIAkJ c3JjX2RhdGEgKz0gYnVmZmVyX3NpemU7CiAJCWRzdF9kYXRhICs9IGJ1ZmZlcl9zaXplOwpAQCAt NTY5LDcgKzU3MCw3IEBAIGludCBpbnRlbF9ndWNfbG9nX3JlbGF5X29wZW4oc3RydWN0IGludGVs X2d1Y19sb2cgKmxvZykKIAkgKiBpdCBzaG91bGQgYmUgcHJlc2VudCBvbiB0aGUgY2hpcHNldHMg c3VwcG9ydGluZyBHdUMgYmFzZWQKIAkgKiBzdWJtaXNzc2lvbnMuCiAJICovCi0JaWYgKCFpOTE1 X2hhc19tZW1jcHlfZnJvbV93YygpKSB7CisJaWYgKCFkcm1faGFzX21lbWNweV9mcm9tX3djKCkp IHsKIAkJcmV0ID0gLUVOWElPOwogCQlnb3RvIG91dF91bmxvY2s7CiAJfQpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2NtZF9wYXJzZXIuYwppbmRleCA1YjRiMmJkNDZlN2MuLjk4NjUzZjFhMmIxZCAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMKKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9jbWRfcGFyc2VyLmMKQEAgLTI0LDEyICsyNCwxMiBA QAogICogICAgQnJhZCBWb2xraW4gPGJyYWRsZXkuZC52b2xraW5AaW50ZWwuY29tPgogICoKICAq LworI2luY2x1ZGUgPGRybS9kcm1fbWVtY3B5Lmg+CiAKICNpbmNsdWRlICJndC9pbnRlbF9lbmdp bmUuaCIKICNpbmNsdWRlICJndC9pbnRlbF9ncHVfY29tbWFuZHMuaCIKIAogI2luY2x1ZGUgImk5 MTVfZHJ2LmgiCi0jaW5jbHVkZSAiaTkxNV9tZW1jcHkuaCIKIAogLyoqCiAgKiBET0M6IGJhdGNo IGJ1ZmZlciBjb21tYW5kIHBhcnNlcgpAQCAtMTE1Miw3ICsxMTUyLDcgQEAgc3RhdGljIHUzMiAq Y29weV9iYXRjaChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqZHN0X29iaiwKIAogCWlmIChz cmMpIHsKIAkJR0VNX0JVR19PTighbmVlZHNfY2xmbHVzaCk7Ci0JCWk5MTVfdW5hbGlnbmVkX21l bWNweV9mcm9tX3djKGRzdCwgc3JjICsgb2Zmc2V0LCBsZW5ndGgpOworCQlkcm1fdW5hbGlnbmVk X21lbWNweV9mcm9tX3djKGRzdCwgc3JjICsgb2Zmc2V0LCBsZW5ndGgpOwogCX0gZWxzZSB7CiAJ CXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7CiAJCXZvaWQgKnB0cjsKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Ry di5jCmluZGV4IDEyMmRkMjk3YjZhZi4uMGRmOWRkNjJjNzE3IDEwMDY0NAotLS0gYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmMKQEAgLTcyLDcgKzcyLDYgQEAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUg Imk5MTVfaW9jMzIuaCIKICNpbmNsdWRlICJpOTE1X2lycS5oIgotI2luY2x1ZGUgImk5MTVfbWVt Y3B5LmgiCiAjaW5jbHVkZSAiaTkxNV9wZXJmLmgiCiAjaW5jbHVkZSAiaTkxNV9xdWVyeS5oIgog I2luY2x1ZGUgImk5MTVfc3VzcGVuZC5oIgpAQCAtMzI1LDcgKzMyNCw2IEBAIHN0YXRpYyBpbnQg aTkxNV9kcml2ZXJfZWFybHlfcHJvYmUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 KQogCW11dGV4X2luaXQoJmRldl9wcml2LT5wcHNfbXV0ZXgpOwogCW11dGV4X2luaXQoJmRldl9w cml2LT5oZGNwX2NvbXBfbXV0ZXgpOwogCi0JaTkxNV9tZW1jcHlfaW5pdF9lYXJseShkZXZfcHJp dik7CiAJaW50ZWxfcnVudGltZV9wbV9pbml0X2Vhcmx5KCZkZXZfcHJpdi0+cnVudGltZV9wbSk7 CiAKIAlyZXQgPSBpOTE1X3dvcmtxdWV1ZXNfaW5pdChkZXZfcHJpdik7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9ncHVfZXJyb3IuYwppbmRleCA5OWNhMjQyZWMxM2IuLmVlMTE5MjBmYmVhNSAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9ncHVfZXJyb3IuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dwdV9lcnJvci5jCkBAIC0zNCw2ICszNCw3IEBACiAjaW5j bHVkZSA8bGludXgvdXRzbmFtZS5oPgogI2luY2x1ZGUgPGxpbnV4L3psaWIuaD4KIAorI2luY2x1 ZGUgPGRybS9kcm1fbWVtY3B5Lmg+CiAjaW5jbHVkZSA8ZHJtL2RybV9wcmludC5oPgogCiAjaW5j bHVkZSAiZGlzcGxheS9pbnRlbF9jc3IuaCIKQEAgLTQ2LDcgKzQ3LDYgQEAKIAogI2luY2x1ZGUg Imk5MTVfZHJ2LmgiCiAjaW5jbHVkZSAiaTkxNV9ncHVfZXJyb3IuaCIKLSNpbmNsdWRlICJpOTE1 X21lbWNweS5oIgogI2luY2x1ZGUgImk5MTVfc2NhdHRlcmxpc3QuaCIKIAogI2RlZmluZSBBTExP V19GQUlMIChHRlBfS0VSTkVMIHwgX19HRlBfUkVUUllfTUFZRkFJTCB8IF9fR0ZQX05PV0FSTikK QEAgLTI1NSw3ICsyNTUsNyBAQCBzdGF0aWMgYm9vbCBjb21wcmVzc19pbml0KHN0cnVjdCBpOTE1 X3ZtYV9jb21wcmVzcyAqYykKIAl9CiAKIAljLT50bXAgPSBOVUxMOwotCWlmIChpOTE1X2hhc19t ZW1jcHlfZnJvbV93YygpKQorCWlmIChkcm1faGFzX21lbWNweV9mcm9tX3djKCkpCiAJCWMtPnRt cCA9IHBvb2xfYWxsb2MoJmMtPnBvb2wsIEFMTE9XX0ZBSUwpOwogCiAJcmV0dXJuIHRydWU7CkBA IC0yOTUsNyArMjk1LDcgQEAgc3RhdGljIGludCBjb21wcmVzc19wYWdlKHN0cnVjdCBpOTE1X3Zt YV9jb21wcmVzcyAqYywKIAlzdHJ1Y3Qgel9zdHJlYW1fcyAqenN0cmVhbSA9ICZjLT56c3RyZWFt OwogCiAJenN0cmVhbS0+bmV4dF9pbiA9IHNyYzsKLQlpZiAod2MgJiYgYy0+dG1wICYmIGk5MTVf bWVtY3B5X2Zyb21fd2MoYy0+dG1wLCBzcmMsIFBBR0VfU0laRSkpCisJaWYgKHdjICYmIGMtPnRt cCAmJiBkcm1fbWVtY3B5X2Zyb21fd2MoYy0+dG1wLCBzcmMsIFBBR0VfU0laRSkpCiAJCXpzdHJl YW0tPm5leHRfaW4gPSBjLT50bXA7CiAJenN0cmVhbS0+YXZhaWxfaW4gPSBQQUdFX1NJWkU7CiAK QEAgLTM5NSw3ICszOTUsNyBAQCBzdGF0aWMgaW50IGNvbXByZXNzX3BhZ2Uoc3RydWN0IGk5MTVf dm1hX2NvbXByZXNzICpjLAogCWlmICghcHRyKQogCQlyZXR1cm4gLUVOT01FTTsKIAotCWlmICgh KHdjICYmIGk5MTVfbWVtY3B5X2Zyb21fd2MocHRyLCBzcmMsIFBBR0VfU0laRSkpKQorCWlmICgh KHdjICYmIGRybV9tZW1jcHlfZnJvbV93YyhwdHIsIHNyYywgUEFHRV9TSVpFKSkpCiAJCW1lbWNw eShwdHIsIHNyYywgUEFHRV9TSVpFKTsKIAlkc3QtPnBhZ2VzW2RzdC0+cGFnZV9jb3VudCsrXSA9 IHB0cjsKIAljb25kX3Jlc2NoZWQoKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfbWVtY3B5LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X21lbWNweS5oCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZGYwNjNhMzI5M2IuLjAwMDAwMDAwMDAwMAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X21lbWNweS5oCisrKyAvZGV2L251bGwKQEAgLTEs MzQgKzAsMCBAQAotLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVCAqLwotLyoKLSAqIENv cHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCi0gKi8KLQotI2lmbmRlZiBfX0k5MTVf TUVNQ1BZX0hfXwotI2RlZmluZSBfX0k5MTVfTUVNQ1BZX0hfXwotCi0jaW5jbHVkZSA8bGludXgv dHlwZXMuaD4KLQotc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7Ci0KLXZvaWQgaTkxNV9tZW1jcHlf aW5pdF9lYXJseShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSk7Ci0KLWJvb2wgaTkxNV9t ZW1jcHlfZnJvbV93Yyh2b2lkICpkc3QsIGNvbnN0IHZvaWQgKnNyYywgdW5zaWduZWQgbG9uZyBs ZW4pOwotdm9pZCBpOTE1X3VuYWxpZ25lZF9tZW1jcHlfZnJvbV93Yyh2b2lkICpkc3QsIGNvbnN0 IHZvaWQgKnNyYywgdW5zaWduZWQgbG9uZyBsZW4pOwotCi0vKiBUaGUgbW92bnRkcWEgaW5zdHJ1 Y3Rpb25zIHVzZWQgZm9yIG1lbWNweS1mcm9tLXdjIHJlcXVpcmUgMTYtYnl0ZSBhbGlnbm1lbnQs Ci0gKiBhcyB3ZWxsIGFzIFNTRTQuMSBzdXBwb3J0LiBpOTE1X21lbWNweV9mcm9tX3djKCkgd2ls bCByZXBvcnQgaWYgaXQgY2Fubm90Ci0gKiBwZXJmb3JtIHRoZSBvcGVyYXRpb24uIFRvIGNoZWNr IGJlZm9yZWhhbmQsIHBhc3MgaW4gdGhlIHBhcmFtZXRlcnMgdG8KLSAqIHRvIGk5MTVfY2FuX21l bWNweV9mcm9tX3djKCkgLSBzaW5jZSB3ZSBvbmx5IGNhcmUgYWJvdXQgdGhlIGxvdyA0IGJpdHMs Ci0gKiB5b3Ugb25seSBuZWVkIHRvIHBhc3MgaW4gdGhlIG1pbm9yIG9mZnNldHMsIHBhZ2UtYWxp Z25lZCBwb2ludGVycyBhcmUKLSAqIGFsd2F5cyB2YWxpZC4KLSAqCi0gKiBGb3IganVzdCBjaGVj a2luZyBmb3IgU1NFNC4xLCBpbiB0aGUgZm9yZWtub3dsZWRnZSB0aGF0IHRoZSBmdXR1cmUgdXNl Ci0gKiB3aWxsIGJlIGNvcnJlY3RseSBhbGlnbmVkLCBqdXN0IHVzZSBpOTE1X2hhc19tZW1jcHlf ZnJvbV93YygpLgotICovCi0jZGVmaW5lIGk5MTVfY2FuX21lbWNweV9mcm9tX3djKGRzdCwgc3Jj LCBsZW4pIFwKLQlpOTE1X21lbWNweV9mcm9tX3djKCh2b2lkICopKCh1bnNpZ25lZCBsb25nKShk c3QpIHwgKHVuc2lnbmVkIGxvbmcpKHNyYykgfCAobGVuKSksIE5VTEwsIDApCi0KLSNkZWZpbmUg aTkxNV9oYXNfbWVtY3B5X2Zyb21fd2MoKSBcCi0JaTkxNV9tZW1jcHlfZnJvbV93YyhOVUxMLCBO VUxMLCAwKQotCi0jZW5kaWYgLyogX19JOTE1X01FTUNQWV9IX18gKi8KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pbnRlbF9tZW1vcnlfcmVnaW9uLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9zZWxmdGVzdHMvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jCmluZGV4IGM4 NWQ1MTZiODVjZC4uNmJiMzk5ZTliZTc4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvaW50ZWxfbWVtb3J5X3JlZ2lvbi5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L3NlbGZ0ZXN0cy9pbnRlbF9tZW1vcnlfcmVnaW9uLmMKQEAgLTYsNiArNiw4IEBACiAjaW5j bHVkZSA8bGludXgvcHJpbWVfbnVtYmVycy5oPgogI2luY2x1ZGUgPGxpbnV4L3NvcnQuaD4KIAor I2luY2x1ZGUgPGRybS9kcm1fbWVtY3B5Lmg+CisKICNpbmNsdWRlICIuLi9pOTE1X3NlbGZ0ZXN0 LmgiCiAKICNpbmNsdWRlICJtb2NrX2RybS5oIgpAQCAtMjAsNyArMjIsNiBAQAogI2luY2x1ZGUg ImdlbS9zZWxmdGVzdHMvbW9ja19jb250ZXh0LmgiCiAjaW5jbHVkZSAiZ3QvaW50ZWxfZW5naW5l X3VzZXIuaCIKICNpbmNsdWRlICJndC9pbnRlbF9ndC5oIgotI2luY2x1ZGUgImk5MTVfbWVtY3B5 LmgiCiAjaW5jbHVkZSAic2VsZnRlc3RzL2lndF9mbHVzaF90ZXN0LmgiCiAjaW5jbHVkZSAic2Vs ZnRlc3RzL2k5MTVfcmFuZG9tLmgiCiAKQEAgLTkwMSw3ICs5MDIsNyBAQCBzdGF0aWMgaW5saW5l IHZvaWQgaWd0X21lbWNweSh2b2lkICpkc3QsIGNvbnN0IHZvaWQgKnNyYywgc2l6ZV90IHNpemUp CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBpZ3RfbWVtY3B5X2Zyb21fd2Modm9pZCAqZHN0LCBjb25z dCB2b2lkICpzcmMsIHNpemVfdCBzaXplKQogewotCWk5MTVfbWVtY3B5X2Zyb21fd2MoZHN0LCBz cmMsIHNpemUpOworCWRybV9tZW1jcHlfZnJvbV93Yyhkc3QsIHNyYywgc2l6ZSk7CiB9CiAKIHN0 YXRpYyBpbnQgX3BlcmZfbWVtY3B5KHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICpzcmNfbXIs CkBAIC05MjUsNyArOTI2LDcgQEAgc3RhdGljIGludCBfcGVyZl9tZW1jcHkoc3RydWN0IGludGVs X21lbW9yeV9yZWdpb24gKnNyY19tciwKIAkJewogCQkJIm1lbWNweV9mcm9tX3djIiwKIAkJCWln dF9tZW1jcHlfZnJvbV93YywKLQkJCSFpOTE1X2hhc19tZW1jcHlfZnJvbV93YygpLAorCQkJIWRy bV9oYXNfbWVtY3B5X2Zyb21fd2MoKSwKIAkJfSwKIAl9OwogCXN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0ICpzcmMsICpkc3Q7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fbWVtY3B5Lmgg Yi9pbmNsdWRlL2RybS9kcm1fbWVtY3B5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi5kYmY1MmNkNDMzODIKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2RybS9k cm1fbWVtY3B5LmgKQEAgLTAsMCArMSw0MSBAQAorLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6 IE1JVCAqLworLyoKKyAqIENvcHlyaWdodCDCqSAyMDE5IEludGVsIENvcnBvcmF0aW9uCisgKi8K KworI2lmbmRlZiBfX0RSTV9NRU1DUFlfSF9fCisjZGVmaW5lIF9fRFJNX01FTUNQWV9IX18KKwor I2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisKKyNpZmRlZiBDT05GSUdfWDg2Citib29sIGRybV9t ZW1jcHlfZnJvbV93Yyh2b2lkICpkc3QsIGNvbnN0IHZvaWQgKnNyYywgdW5zaWduZWQgbG9uZyBs ZW4pOwordm9pZCBkcm1fdW5hbGlnbmVkX21lbWNweV9mcm9tX3djKHZvaWQgKmRzdCwgY29uc3Qg dm9pZCAqc3JjLCB1bnNpZ25lZCBsb25nIGxlbik7CisKKy8qIFRoZSBtb3ZudGRxYSBpbnN0cnVj dGlvbnMgdXNlZCBmb3IgbWVtY3B5LWZyb20td2MgcmVxdWlyZSAxNi1ieXRlIGFsaWdubWVudCwK KyAqIGFzIHdlbGwgYXMgU1NFNC4xIHN1cHBvcnQuIGRybV9tZW1jcHlfZnJvbV93YygpIHdpbGwg cmVwb3J0IGlmIGl0IGNhbm5vdAorICogcGVyZm9ybSB0aGUgb3BlcmF0aW9uLiBUbyBjaGVjayBi ZWZvcmVoYW5kLCBwYXNzIGluIHRoZSBwYXJhbWV0ZXJzIHRvCisgKiBkcm1fY2FuX21lbWNweV9m cm9tX3djKCkgLSBzaW5jZSB3ZSBvbmx5IGNhcmUgYWJvdXQgdGhlIGxvdyA0IGJpdHMsCisgKiB5 b3Ugb25seSBuZWVkIHRvIHBhc3MgaW4gdGhlIG1pbm9yIG9mZnNldHMsIHBhZ2UtYWxpZ25lZCBw b2ludGVycyBhcmUKKyAqIGFsd2F5cyB2YWxpZC4KKyAqCisgKiBGb3IganVzdCBjaGVja2luZyBm b3IgU1NFNC4xLCBpbiB0aGUgZm9yZWtub3dsZWRnZSB0aGF0IHRoZSBmdXR1cmUgdXNlCisgKiB3 aWxsIGJlIGNvcnJlY3RseSBhbGlnbmVkLCBqdXN0IHVzZSBkcm1faGFzX21lbWNweV9mcm9tX3dj KCkuCisgKi8KKyNkZWZpbmUgZHJtX2Nhbl9tZW1jcHlfZnJvbV93Yyhkc3QsIHNyYywgbGVuKSBc CisJZHJtX21lbWNweV9mcm9tX3djKCh2b2lkICopKCh1bnNpZ25lZCBsb25nKShkc3QpIHwgKHVu c2lnbmVkIGxvbmcpKHNyYykgfCAobGVuKSksIE5VTEwsIDApCisKKyNkZWZpbmUgZHJtX2hhc19t ZW1jcHlfZnJvbV93YygpIFwKKwlkcm1fbWVtY3B5X2Zyb21fd2MoTlVMTCwgTlVMTCwgMCkKKwor dm9pZCBkcm1fbWVtY3B5X2luaXRfZWFybHkodm9pZCk7CisKKyNlbHNlCisKKyNkZWZpbmUgZHJt X21lbWNweV9mcm9tX3djKF9kc3QsIF9zcmMsIF9sZW4pIChmYWxzZSkKKyNkZWZpbmUgZHJtX2Nh bl9tZW1jcHlfZnJvbV93YyhfZHN0LCBfc3JjLCBfbGVuKSAoZmFsc2UpCisjZGVmaW5lIGRybV9o YXNfbWVtY3B5X2Zyb21fd2MoKSAoZmFsc2UpCisjZGVmaW5lIGRybV91bmFsaWduZWRfbWVtY3B5 X2Zyb21fd2MoX2RzdCwgX3NyYywgX2xlbikgV0FSTl9PTigxKQorI2RlZmluZSBkcm1fbWVtY3B5 X2luaXRfZWFybHkoKSBkbyB7fSB3aGlsZSAoMCkKKyNlbmRpZiAvKiBDT05GSUdfWDg2ICovCisj ZW5kaWYgLyogX19EUk1fTUVNQ1BZX0hfXyAqLwotLSAKMi4zMS4xCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0Cklu dGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK