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,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 7F4A7C47082 for ; Mon, 31 May 2021 12:20:41 +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 4D77461263 for ; Mon, 31 May 2021 12:20:41 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4D77461263 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 F119E6E922; Mon, 31 May 2021 12:20:28 +0000 (UTC) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id D12156E927; Mon, 31 May 2021 12:20:26 +0000 (UTC) IronPort-SDR: KyDybwj8/GxH0/stZlJmyZzlbXIqx0ai556TSwPytLkegwUFMLpWTvq+cM9dY/NJNzpLGP4EbG BiFS3cFpwL/g== X-IronPort-AV: E=McAfee;i="6200,9189,10000"; a="203147092" X-IronPort-AV: E=Sophos;i="5.83,237,1616482800"; d="scan'208";a="203147092" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 May 2021 05:20:24 -0700 IronPort-SDR: TgVg5THgIrZXylYvQjOe9es9IcwobpkTId29rOKD1Jl0LYpCS3ir9QYQFHDpQahPihf/jrjDEd Yo8uX3rggWUg== X-IronPort-AV: E=Sophos;i="5.83,237,1616482800"; d="scan'208";a="473904030" Received: from fnygreen-mobl1.ger.corp.intel.com (HELO thellst-mobl1.intel.com) ([10.249.254.133]) by fmsmga003-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 May 2021 05:20:23 -0700 From: =?UTF-8?q?Thomas=20Hellstr=C3=B6m?= To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Date: Mon, 31 May 2021 14:19:40 +0200 Message-Id: <20210531121940.267032-16-thomas.hellstrom@linux.intel.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210531121940.267032-1-thomas.hellstrom@linux.intel.com> References: <20210531121940.267032-1-thomas.hellstrom@linux.intel.com> MIME-Version: 1.0 Subject: [Intel-gfx] [PATCH v7 15/15] drm/i915: Use ttm mmap handling for ttm bo's. 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" RnJvbTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNv bT4KClVzZSB0aGUgdHRtIGhhbmRsZXJzIGZvciBzZXJ2aWNpbmcgcGFnZSBmYXVsdHMsIGFuZCB2 bV9hY2Nlc3MuCgpXZSBkbyBvdXIgb3duIHZhbGlkYXRpb24gb2YgcmVhZC1vbmx5IGFjY2Vzcywg b3RoZXJ3aXNlIHVzZSB0aGUKdHRtIGhhbmRsZXJzIGFzIG11Y2ggYXMgcG9zc2libGUuCgpCZWNh dXNlIHRoZSB0dG0gaGFuZGxlcnMgZXhwZWN0IHRoZSB2bWFfbm9kZSBhdCB2bWEtPmJhc2UsIHdl IHNsaWdodGx5Cm5lZWQgdG8gbWFzc2FnZSB0aGUgbW1hcCBoYW5kbGVycyB0byBsb29rIGF0IHZt YV9ub2RlLT5kcml2ZXJfcHJpdmF0ZQp0byBmZXRjaCB0aGUgYm8sIGlmIGl0J3MgTlVMTCwgd2Ug YXNzdW1lIGk5MTUncyBub3JtYWwgbW1hcF9vZmZzZXQgdWFwaQppcyB1c2VkLgoKVGhpcyBpcyB0 aGUgZWFzaWVzdCB3YXkgdG8gYWNoaWV2ZSBjb21wYXRpYmlsaXR5IHdpdGhvdXQgY2hhbmdpbmcg dHRtJ3MKc2VtYW50aWNzLgoKU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0 ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4KLSBGaXhlZCBzb21lIG1pbm9yIHN0eWxlIGlz c3Vlcy4gKFRob21hcyBIZWxsc3Ryw7ZtKQotIEFkZGVkIGEgbXV0ZXggRGVzdHJveSAoVGhvbWFz IEhlbGxzdHLDtm0pCi0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4u YyAgICAgIHwgIDgzICsrKysrKysrLS0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVf Z2VtX29iamVjdC5oICAgIHwgICA2ICstCiAuLi4vZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9v YmplY3RfdHlwZXMuaCAgfCAgIDMgKwogZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2Vt X3BhZ2VzLmMgICAgIHwgICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1f dHRtLmMgICAgICAgfCAxMjEgKysrKysrKysrKysrKysrKystCiAuLi4vZHJtL2k5MTUvZ2VtL3Nl bGZ0ZXN0cy9pOTE1X2dlbV9tbWFuLmMgICAgfCAgOTAgKysrKysrLS0tLS0tLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9tbWFwLmMgICAgIHwgIDI1ICsrKy0KIGRyaXZlcnMv Z3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3RfbW1hcC5oICAgICB8ICAxMiArLQogOCBmaWxlcyBj aGFuZ2VkLCAyNTEgaW5zZXJ0aW9ucygrKSwgOTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4uYyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmMKaW5kZXggZmQxYzk3MTRmOGQ4Li5kMWRlOTdlNGFk ZmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9tbWFuLmMK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX21tYW4uYwpAQCAtMTksNiAr MTksNyBAQAogI2luY2x1ZGUgImk5MTVfZ2VtX21tYW4uaCIKICNpbmNsdWRlICJpOTE1X3RyYWNl LmgiCiAjaW5jbHVkZSAiaTkxNV91c2VyX2V4dGVuc2lvbnMuaCIKKyNpbmNsdWRlICJpOTE1X2dl bV90dG0uaCIKICNpbmNsdWRlICJpOTE1X3ZtYS5oIgogCiBzdGF0aWMgaW5saW5lIGJvb2wKQEAg LTYyMiw2ICs2MjMsOCBAQCBtbWFwX29mZnNldF9hdHRhY2goc3RydWN0IGRybV9pOTE1X2dlbV9v YmplY3QgKm9iaiwKIAlzdHJ1Y3QgaTkxNV9tbWFwX29mZnNldCAqbW1vOwogCWludCBlcnI7CiAK KwlHRU1fQlVHX09OKG9iai0+b3BzLT5tbWFwX29mZnNldCB8fCBvYmotPm9wcy0+bW1hcF9vcHMp OworCiAJbW1vID0gbG9va3VwX21tbyhvYmosIG1tYXBfdHlwZSk7CiAJaWYgKG1tbykKIAkJZ290 byBvdXQ7CkBAIC02NjQsNDAgKzY2Nyw0NyBAQCBtbWFwX29mZnNldF9hdHRhY2goc3RydWN0IGRy bV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIH0KIAogc3RhdGljIGludAotX19hc3NpZ25fbW1hcF9v ZmZzZXQoc3RydWN0IGRybV9maWxlICpmaWxlLAotCQkgICAgIHUzMiBoYW5kbGUsCitfX2Fzc2ln bl9tbWFwX29mZnNldChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkgICAgIGVu dW0gaTkxNV9tbWFwX3R5cGUgbW1hcF90eXBlLAotCQkgICAgIHU2NCAqb2Zmc2V0KQorCQkgICAg IHU2NCAqb2Zmc2V0LCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGUpCiB7Ci0Jc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iajsKIAlzdHJ1Y3QgaTkxNV9tbWFwX29mZnNldCAqbW1vOwotCWludCBl cnI7CiAKLQlvYmogPSBpOTE1X2dlbV9vYmplY3RfbG9va3VwKGZpbGUsIGhhbmRsZSk7Ci0JaWYg KCFvYmopCi0JCXJldHVybiAtRU5PRU5UOworCWlmIChpOTE1X2dlbV9vYmplY3RfbmV2ZXJfbW1h cChvYmopKQorCQlyZXR1cm4gLUVOT0RFVjsKIAotCWlmIChpOTE1X2dlbV9vYmplY3RfbmV2ZXJf bW1hcChvYmopKSB7Ci0JCWVyciA9IC1FTk9ERVY7Ci0JCWdvdG8gb3V0OworCWlmIChvYmotPm9w cy0+bW1hcF9vZmZzZXQpICB7CisJCSpvZmZzZXQgPSBvYmotPm9wcy0+bW1hcF9vZmZzZXQob2Jq KTsKKwkJcmV0dXJuIDA7CiAJfQogCiAJaWYgKG1tYXBfdHlwZSAhPSBJOTE1X01NQVBfVFlQRV9H VFQgJiYKIAkgICAgIWk5MTVfZ2VtX29iamVjdF9oYXNfc3RydWN0X3BhZ2Uob2JqKSAmJgotCSAg ICAhaTkxNV9nZW1fb2JqZWN0X3R5cGVfaGFzKG9iaiwgSTkxNV9HRU1fT0JKRUNUX0hBU19JT01F TSkpIHsKLQkJZXJyID0gLUVOT0RFVjsKLQkJZ290byBvdXQ7Ci0JfQorCSAgICAhaTkxNV9nZW1f b2JqZWN0X3R5cGVfaGFzKG9iaiwgSTkxNV9HRU1fT0JKRUNUX0hBU19JT01FTSkpCisJCXJldHVy biAtRU5PREVWOwogCiAJbW1vID0gbW1hcF9vZmZzZXRfYXR0YWNoKG9iaiwgbW1hcF90eXBlLCBm aWxlKTsKLQlpZiAoSVNfRVJSKG1tbykpIHsKLQkJZXJyID0gUFRSX0VSUihtbW8pOwotCQlnb3Rv IG91dDsKLQl9CisJaWYgKElTX0VSUihtbW8pKQorCQlyZXR1cm4gUFRSX0VSUihtbW8pOwogCiAJ Km9mZnNldCA9IGRybV92bWFfbm9kZV9vZmZzZXRfYWRkcigmbW1vLT52bWFfbm9kZSk7Ci0JZXJy ID0gMDsKLW91dDoKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludAorX19hc3NpZ25fbW1hcF9v ZmZzZXRfaGFuZGxlKHN0cnVjdCBkcm1fZmlsZSAqZmlsZSwKKwkJCSAgICB1MzIgaGFuZGxlLAor CQkJICAgIGVudW0gaTkxNV9tbWFwX3R5cGUgbW1hcF90eXBlLAorCQkJICAgIHU2NCAqb2Zmc2V0 KQoreworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJaW50IGVycjsKKworCW9i aiA9IGk5MTVfZ2VtX29iamVjdF9sb29rdXAoZmlsZSwgaGFuZGxlKTsKKwlpZiAoIW9iaikKKwkJ cmV0dXJuIC1FTk9FTlQ7CisKKwllcnIgPSBfX2Fzc2lnbl9tbWFwX29mZnNldChvYmosIG1tYXBf dHlwZSwgb2Zmc2V0LCBmaWxlKTsKIAlpOTE1X2dlbV9vYmplY3RfcHV0KG9iaik7CiAJcmV0dXJu IGVycjsKIH0KQEAgLTcxNyw3ICs3MjcsNyBAQCBpOTE1X2dlbV9kdW1iX21tYXBfb2Zmc2V0KHN0 cnVjdCBkcm1fZmlsZSAqZmlsZSwKIAllbHNlCiAJCW1tYXBfdHlwZSA9IEk5MTVfTU1BUF9UWVBF X0dUVDsKIAotCXJldHVybiBfX2Fzc2lnbl9tbWFwX29mZnNldChmaWxlLCBoYW5kbGUsIG1tYXBf dHlwZSwgb2Zmc2V0KTsKKwlyZXR1cm4gX19hc3NpZ25fbW1hcF9vZmZzZXRfaGFuZGxlKGZpbGUs IGhhbmRsZSwgbW1hcF90eXBlLCBvZmZzZXQpOwogfQogCiAvKioKQEAgLTc4NSw3ICs3OTUsNyBA QCBpOTE1X2dlbV9tbWFwX29mZnNldF9pb2N0bChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCB2b2lk ICpkYXRhLAogCQlyZXR1cm4gLUVJTlZBTDsKIAl9CiAKLQlyZXR1cm4gX19hc3NpZ25fbW1hcF9v ZmZzZXQoZmlsZSwgYXJncy0+aGFuZGxlLCB0eXBlLCAmYXJncy0+b2Zmc2V0KTsKKwlyZXR1cm4g X19hc3NpZ25fbW1hcF9vZmZzZXRfaGFuZGxlKGZpbGUsIGFyZ3MtPmhhbmRsZSwgdHlwZSwgJmFy Z3MtPm9mZnNldCk7CiB9CiAKIHN0YXRpYyB2b2lkIHZtX29wZW4oc3RydWN0IHZtX2FyZWFfc3Ry dWN0ICp2bWEpCkBAIC04ODksOCArODk5LDE4IEBAIGludCBpOTE1X2dlbV9tbWFwKHN0cnVjdCBm aWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAkJICogZGVzdHJveWVkIGFu ZCB3aWxsIGJlIGludmFsaWQgd2hlbiB0aGUgdm1hIG1hbmFnZXIgbG9jawogCQkgKiBpcyByZWxl YXNlZC4KIAkJICovCi0JCW1tbyA9IGNvbnRhaW5lcl9vZihub2RlLCBzdHJ1Y3QgaTkxNV9tbWFw X29mZnNldCwgdm1hX25vZGUpOwotCQlvYmogPSBpOTE1X2dlbV9vYmplY3RfZ2V0X3JjdShtbW8t Pm9iaik7CisJCWlmICghbm9kZS0+ZHJpdmVyX3ByaXZhdGUpIHsKKwkJCW1tbyA9IGNvbnRhaW5l cl9vZihub2RlLCBzdHJ1Y3QgaTkxNV9tbWFwX29mZnNldCwgdm1hX25vZGUpOworCQkJb2JqID0g aTkxNV9nZW1fb2JqZWN0X2dldF9yY3UobW1vLT5vYmopOworCisJCQlHRU1fQlVHX09OKG9iaiAm JiBvYmotPm9wcy0+bW1hcF9vcHMpOworCQl9IGVsc2UgeworCQkJb2JqID0gaTkxNV9nZW1fb2Jq ZWN0X2dldF9yY3UKKwkJCQkoY29udGFpbmVyX29mKG5vZGUsIHN0cnVjdCBkcm1faTkxNV9nZW1f b2JqZWN0LAorCQkJCQkgICAgICBiYXNlLnZtYV9ub2RlKSk7CisKKwkJCUdFTV9CVUdfT04ob2Jq ICYmICFvYmotPm9wcy0+bW1hcF9vcHMpOworCQl9CiAJfQogCWRybV92bWFfb2Zmc2V0X3VubG9j a19sb29rdXAoZGV2LT52bWFfb2Zmc2V0X21hbmFnZXIpOwogCXJjdV9yZWFkX3VubG9jaygpOwpA QCAtOTEyLDcgKzkzMiw5IEBAIGludCBpOTE1X2dlbV9tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBz dHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZtYSkKIAl9CiAKIAl2bWEtPnZtX2ZsYWdzIHw9IFZNX1BG Tk1BUCB8IFZNX0RPTlRFWFBBTkQgfCBWTV9ET05URFVNUDsKLQl2bWEtPnZtX3ByaXZhdGVfZGF0 YSA9IG1tbzsKKworCWlmIChpOTE1X2dlbV9vYmplY3RfaGFzX2lvbWVtKG9iaikpCisJCXZtYS0+ dm1fZmxhZ3MgfD0gVk1fSU87CiAKIAkvKgogCSAqIFdlIGtlZXAgdGhlIHJlZiBvbiBtbW8tPm9i aiwgbm90IHZtX2ZpbGUsIGJ1dCB3ZSByZXF1aXJlCkBAIC05MjYsNiArOTQ4LDE1IEBAIGludCBp OTE1X2dlbV9tbWFwKHN0cnVjdCBmaWxlICpmaWxwLCBzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKnZt YSkKIAkvKiBEcm9wIHRoZSBpbml0aWFsIGNyZWF0aW9uIHJlZmVyZW5jZSwgdGhlIHZtYSBpcyBu b3cgaG9sZGluZyBvbmUuICovCiAJZnB1dChhbm9uKTsKIAorCWlmIChvYmotPm9wcy0+bW1hcF9v cHMpIHsKKwkJdm1hLT52bV9wYWdlX3Byb3QgPSBwZ3Byb3RfZGVjcnlwdGVkKHZtX2dldF9wYWdl X3Byb3Qodm1hLT52bV9mbGFncykpOworCQl2bWEtPnZtX29wcyA9IG9iai0+b3BzLT5tbWFwX29w czsKKwkJdm1hLT52bV9wcml2YXRlX2RhdGEgPSBub2RlLT5kcml2ZXJfcHJpdmF0ZTsKKwkJcmV0 dXJuIDA7CisJfQorCisJdm1hLT52bV9wcml2YXRlX2RhdGEgPSBtbW87CisKIAlzd2l0Y2ggKG1t by0+bW1hcF90eXBlKSB7CiAJY2FzZSBJOTE1X01NQVBfVFlQRV9XQzoKIAkJdm1hLT52bV9wYWdl X3Byb3QgPQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29i amVjdC5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX29iamVjdC5oCmluZGV4 IGEzYWQ4Y2Y0ZWVmZC4uZmY1OWU2YzY0MGU2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2Vt L2k5MTVfZ2VtX29iamVjdC5oCkBAIC0zNDIsMTQgKzM0MiwxNCBAQCBzdHJ1Y3Qgc2NhdHRlcmxp c3QgKgogX19pOTE1X2dlbV9vYmplY3RfZ2V0X3NnKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmosCiAJCQkgc3RydWN0IGk5MTVfZ2VtX29iamVjdF9wYWdlX2l0ZXIgKml0ZXIsCiAJCQkg dW5zaWduZWQgaW50IG4sCi0JCQkgdW5zaWduZWQgaW50ICpvZmZzZXQsIGJvb2wgYWxsb3dfYWxs b2MpOworCQkJIHVuc2lnbmVkIGludCAqb2Zmc2V0LCBib29sIGFsbG93X2FsbG9jLCBib29sIGRt YSk7CiAKIHN0YXRpYyBpbmxpbmUgc3RydWN0IHNjYXR0ZXJsaXN0ICoKIGk5MTVfZ2VtX29iamVj dF9nZXRfc2coc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiwKIAkJICAgICAgIHVuc2ln bmVkIGludCBuLAogCQkgICAgICAgdW5zaWduZWQgaW50ICpvZmZzZXQsIGJvb2wgYWxsb3dfYWxs b2MpCiB7Ci0JcmV0dXJuIF9faTkxNV9nZW1fb2JqZWN0X2dldF9zZyhvYmosICZvYmotPm1tLmdl dF9wYWdlLCBuLCBvZmZzZXQsIGFsbG93X2FsbG9jKTsKKwlyZXR1cm4gX19pOTE1X2dlbV9vYmpl Y3RfZ2V0X3NnKG9iaiwgJm9iai0+bW0uZ2V0X3BhZ2UsIG4sIG9mZnNldCwgYWxsb3dfYWxsb2Ms IGZhbHNlKTsKIH0KIAogc3RhdGljIGlubGluZSBzdHJ1Y3Qgc2NhdHRlcmxpc3QgKgpAQCAtMzU3 LDcgKzM1Nyw3IEBAIGk5MTVfZ2VtX29iamVjdF9nZXRfc2dfZG1hKHN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmosCiAJCQkgICB1bnNpZ25lZCBpbnQgbiwKIAkJCSAgIHVuc2lnbmVkIGlu dCAqb2Zmc2V0LCBib29sIGFsbG93X2FsbG9jKQogewotCXJldHVybiBfX2k5MTVfZ2VtX29iamVj dF9nZXRfc2cob2JqLCAmb2JqLT5tbS5nZXRfZG1hX3BhZ2UsIG4sIG9mZnNldCwgYWxsb3dfYWxs b2MpOworCXJldHVybiBfX2k5MTVfZ2VtX29iamVjdF9nZXRfc2cob2JqLCAmb2JqLT5tbS5nZXRf ZG1hX3BhZ2UsIG4sIG9mZnNldCwgYWxsb3dfYWxsb2MsIHRydWUpOwogfQogCiBzdHJ1Y3QgcGFn ZSAqCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0 X3R5cGVzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVz LmgKaW5kZXggNjgzMTM0NzRlNmE2Li4yYTIzYjc3NDI0YjMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9vYmplY3RfdHlwZXMuaAorKysgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9nZW0vaTkxNV9nZW1fb2JqZWN0X3R5cGVzLmgKQEAgLTYxLDYgKzYxLDcgQEAg c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Rfb3BzIHsKIAkJICAgICBjb25zdCBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX3ByZWFkICphcmcpOwogCWludCAoKnB3cml0ZSkoc3RydWN0IGRybV9pOTE1X2dl bV9vYmplY3QgKm9iaiwKIAkJICAgICAgY29uc3Qgc3RydWN0IGRybV9pOTE1X2dlbV9wd3JpdGUg KmFyZyk7CisJdTY0ICgqbW1hcF9vZmZzZXQpKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpv YmopOwogCiAJaW50ICgqZG1hYnVmX2V4cG9ydCkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Qg Km9iaik7CiAKQEAgLTc5LDYgKzgwLDcgQEAgc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3Rfb3Bz IHsKIAl2b2lkICgqZGVsYXllZF9mcmVlKShzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2Jq KTsKIAl2b2lkICgqcmVsZWFzZSkoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaik7CiAK Kwljb25zdCBzdHJ1Y3Qgdm1fb3BlcmF0aW9uc19zdHJ1Y3QgKm1tYXBfb3BzOwogCWNvbnN0IGNo YXIgKm5hbWU7IC8qIGZyaWVuZGx5IG5hbWUgZm9yIGRlYnVnLCBlLmcuIGxvY2tkZXAgY2xhc3Nl cyAqLwogfTsKIApAQCAtMzI4LDYgKzMzMCw3IEBAIHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 IHsKIAogCXN0cnVjdCB7CiAJCXN0cnVjdCBzZ190YWJsZSAqY2FjaGVkX2lvX3N0OworCQlzdHJ1 Y3QgaTkxNV9nZW1fb2JqZWN0X3BhZ2VfaXRlciBnZXRfaW9fcGFnZTsKIAkJYm9vbCBjcmVhdGVk OjE7CiAJfSB0dG07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV9wYWdlcy5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ2VtL2k5MTVfZ2VtX3BhZ2VzLmMK aW5kZXggNjQ0NGUwOTcwMTZkLi4wODYwMDVjMWM3ZWEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2dlbS9pOTE1X2dlbV9wYWdlcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2dlbS9pOTE1X2dlbV9wYWdlcy5jCkBAIC00NjcsOSArNDY3LDggQEAgX19pOTE1X2dlbV9vYmpl Y3RfZ2V0X3NnKHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmosCiAJCQkgc3RydWN0IGk5 MTVfZ2VtX29iamVjdF9wYWdlX2l0ZXIgKml0ZXIsCiAJCQkgdW5zaWduZWQgaW50IG4sCiAJCQkg dW5zaWduZWQgaW50ICpvZmZzZXQsCi0JCQkgYm9vbCBhbGxvd19hbGxvYykKKwkJCSBib29sIGFs bG93X2FsbG9jLCBib29sIGRtYSkKIHsKLQljb25zdCBib29sIGRtYSA9IGl0ZXIgPT0gJm9iai0+ bW0uZ2V0X2RtYV9wYWdlOwogCXN0cnVjdCBzY2F0dGVybGlzdCAqc2c7CiAJdW5zaWduZWQgaW50 IGlkeCwgY291bnQ7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1 X2dlbV90dG0uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9pOTE1X2dlbV90dG0uYwppbmRl eCBmYmIzMmIxNDhiZTMuLjM3NDgwOThiNDJkNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZ2VtL2k5MTVfZ2VtX3R0bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2dlbS9p OTE1X2dlbV90dG0uYwpAQCAtMTMsNiArMTMsNyBAQAogI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9v YmplY3QuaCIKICNpbmNsdWRlICJnZW0vaTkxNV9nZW1fcmVnaW9uLmgiCiAjaW5jbHVkZSAiZ2Vt L2k5MTVfZ2VtX3R0bS5oIgorI2luY2x1ZGUgImdlbS9pOTE1X2dlbV9tbWFuLmgiCiAKICNkZWZp bmUgSTkxNV9QTF9MTUVNMCBUVE1fUExfUFJJVgogI2RlZmluZSBJOTE1X1BMX1NZU1RFTSBUVE1f UExfU1lTVEVNCkBAIC0xNTgsMTEgKzE1OSwyMCBAQCBzdGF0aWMgaW50IGk5MTVfdHRtX21vdmVf bm90aWZ5KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCiAKIHN0YXRpYyB2b2lkIGk5MTVf dHRtX2ZyZWVfY2FjaGVkX2lvX3N0KHN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmopCiB7 Ci0JaWYgKG9iai0+dHRtLmNhY2hlZF9pb19zdCkgewotCQlzZ19mcmVlX3RhYmxlKG9iai0+dHRt LmNhY2hlZF9pb19zdCk7Ci0JCWtmcmVlKG9iai0+dHRtLmNhY2hlZF9pb19zdCk7Ci0JCW9iai0+ dHRtLmNhY2hlZF9pb19zdCA9IE5VTEw7Ci0JfQorCXN0cnVjdCByYWRpeF90cmVlX2l0ZXIgaXRl cjsKKwl2b2lkIF9fcmN1ICoqc2xvdDsKKworCWlmICghb2JqLT50dG0uY2FjaGVkX2lvX3N0KQor CQlyZXR1cm47CisKKwlyY3VfcmVhZF9sb2NrKCk7CisJcmFkaXhfdHJlZV9mb3JfZWFjaF9zbG90 KHNsb3QsICZvYmotPnR0bS5nZXRfaW9fcGFnZS5yYWRpeCwgJml0ZXIsIDApCisJCXJhZGl4X3Ry ZWVfZGVsZXRlKCZvYmotPnR0bS5nZXRfaW9fcGFnZS5yYWRpeCwgaXRlci5pbmRleCk7CisJcmN1 X3JlYWRfdW5sb2NrKCk7CisKKwlzZ19mcmVlX3RhYmxlKG9iai0+dHRtLmNhY2hlZF9pb19zdCk7 CisJa2ZyZWUob2JqLT50dG0uY2FjaGVkX2lvX3N0KTsKKwlvYmotPnR0bS5jYWNoZWRfaW9fc3Qg PSBOVUxMOwogfQogCiBzdGF0aWMgdm9pZCBpOTE1X3R0bV9wdXJnZShzdHJ1Y3QgZHJtX2k5MTVf Z2VtX29iamVjdCAqb2JqKQpAQCAtMzM4LDEyICszNDgsNDEgQEAgc3RhdGljIGludCBpOTE1X3R0 bV9tb3ZlKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sIGJvb2wgZXZpY3QsCiAJdHRtX2Jv X21vdmVfc3luY19jbGVhbnVwKGJvLCBkc3RfbWVtKTsKIAlpOTE1X3R0bV9mcmVlX2NhY2hlZF9p b19zdChvYmopOwogCi0JaWYgKCFkc3RfbWFuLT51c2VfdHQpCisJaWYgKCFkc3RfbWFuLT51c2Vf dHQpIHsKIAkJb2JqLT50dG0uY2FjaGVkX2lvX3N0ID0gZHN0X3N0OworCQlvYmotPnR0bS5nZXRf aW9fcGFnZS5zZ19wb3MgPSBkc3Rfc3QtPnNnbDsKKwkJb2JqLT50dG0uZ2V0X2lvX3BhZ2Uuc2df aWR4ID0gMDsKKwl9CiAKIAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIGludCBpOTE1X3R0bV9pb19t ZW1fcmVzZXJ2ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwgc3RydWN0IHR0bV9yZXNvdXJjZSAq bWVtKQoreworCWlmIChtZW0tPm1lbV90eXBlIDwgSTkxNV9QTF9MTUVNMCkKKwkJcmV0dXJuIDA7 CisKKwltZW0tPmJ1cy5jYWNoaW5nID0gdHRtX3dyaXRlX2NvbWJpbmVkOworCW1lbS0+YnVzLmlz X2lvbWVtID0gdHJ1ZTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgdW5zaWduZWQgbG9uZyBp OTE1X3R0bV9pb19tZW1fcGZuKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCisJCQkJCSB1 bnNpZ25lZCBsb25nIHBhZ2Vfb2Zmc2V0KQoreworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0 ICpvYmogPSBpOTE1X3R0bV90b19nZW0oYm8pOworCXVuc2lnbmVkIGxvbmcgYmFzZSA9IG9iai0+ bW0ucmVnaW9uLT5pb21hcC5iYXNlIC0gb2JqLT5tbS5yZWdpb24tPnJlZ2lvbi5zdGFydDsKKwlz dHJ1Y3Qgc2NhdHRlcmxpc3QgKnNnOworCXVuc2lnbmVkIGludCBvZnM7CisKKwlHRU1fV0FSTl9P Tihiby0+dHRtKTsKKworCXNnID0gX19pOTE1X2dlbV9vYmplY3RfZ2V0X3NnKG9iaiwgJm9iai0+ dHRtLmdldF9pb19wYWdlLCBwYWdlX29mZnNldCwgJm9mcywgdHJ1ZSwgdHJ1ZSk7CisKKwlyZXR1 cm4gKChiYXNlICsgc2dfZG1hX2FkZHJlc3Moc2cpKSA+PiBQQUdFX1NISUZUKSArIG9mczsKK30K Kwogc3RhdGljIHN0cnVjdCB0dG1fZGV2aWNlX2Z1bmNzIGk5MTVfdHRtX2JvX2RyaXZlciA9IHsK IAkudHRtX3R0X2NyZWF0ZSA9IGk5MTVfdHRtX3R0X2NyZWF0ZSwKIAkudHRtX3R0X3VucG9wdWxh dGUgPSBpOTE1X3R0bV90dF91bnBvcHVsYXRlLApAQCAtMzUzLDYgKzM5Miw4IEBAIHN0YXRpYyBz dHJ1Y3QgdHRtX2RldmljZV9mdW5jcyBpOTE1X3R0bV9ib19kcml2ZXIgPSB7CiAJLm1vdmUgPSBp OTE1X3R0bV9tb3ZlLAogCS5zd2FwX25vdGlmeSA9IGk5MTVfdHRtX3N3YXBfbm90aWZ5LAogCS5k ZWxldGVfbWVtX25vdGlmeSA9IGk5MTVfdHRtX2RlbGV0ZV9tZW1fbm90aWZ5LAorCS5pb19tZW1f cmVzZXJ2ZSA9IGk5MTVfdHRtX2lvX21lbV9yZXNlcnZlLAorCS5pb19tZW1fcGZuID0gaTkxNV90 dG1faW9fbWVtX3BmbiwKIH07CiAKIC8qKgpAQCAtNDYwLDcgKzUwMSw2NyBAQCBzdGF0aWMgdm9p ZCBpOTE1X3R0bV9kZWxheWVkX2ZyZWUoc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaikK IAl9CiB9CiAKLXN0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdF9vcHMgaTkx NV9nZW1fdHRtX29ial9vcHMgPSB7CitzdGF0aWMgdm1fZmF1bHRfdCB2bV9mYXVsdF90dG0oc3Ry dWN0IHZtX2ZhdWx0ICp2bWYpCit7CisJc3RydWN0IHZtX2FyZWFfc3RydWN0ICphcmVhID0gdm1m LT52bWE7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9CisJCWk5MTVfdHRtX3Rv X2dlbShhcmVhLT52bV9wcml2YXRlX2RhdGEpOworCisJLyogU2FuaXR5IGNoZWNrIHRoYXQgd2Ug YWxsb3cgd3JpdGluZyBpbnRvIHRoaXMgb2JqZWN0ICovCisJaWYgKHVubGlrZWx5KGk5MTVfZ2Vt X29iamVjdF9pc19yZWFkb25seShvYmopICYmCisJCSAgICAgYXJlYS0+dm1fZmxhZ3MgJiBWTV9X UklURSkpCisJCXJldHVybiBWTV9GQVVMVF9TSUdCVVM7CisKKwlyZXR1cm4gdHRtX2JvX3ZtX2Zh dWx0KHZtZik7Cit9CisKK3N0YXRpYyBpbnQKK3ZtX2FjY2Vzc190dG0oc3RydWN0IHZtX2FyZWFf c3RydWN0ICphcmVhLCB1bnNpZ25lZCBsb25nIGFkZHIsCisJICAgICAgdm9pZCAqYnVmLCBpbnQg bGVuLCBpbnQgd3JpdGUpCit7CisJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iaiA9CisJ CWk5MTVfdHRtX3RvX2dlbShhcmVhLT52bV9wcml2YXRlX2RhdGEpOworCisJaWYgKGk5MTVfZ2Vt X29iamVjdF9pc19yZWFkb25seShvYmopICYmIHdyaXRlKQorCQlyZXR1cm4gLUVBQ0NFUzsKKwor CXJldHVybiB0dG1fYm9fdm1fYWNjZXNzKGFyZWEsIGFkZHIsIGJ1ZiwgbGVuLCB3cml0ZSk7Cit9 CisKK3N0YXRpYyB2b2lkIHR0bV92bV9vcGVuKHN0cnVjdCB2bV9hcmVhX3N0cnVjdCAqdm1hKQor eworCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPQorCQlpOTE1X3R0bV90b19nZW0o dm1hLT52bV9wcml2YXRlX2RhdGEpOworCisJR0VNX0JVR19PTighb2JqKTsKKwlpOTE1X2dlbV9v YmplY3RfZ2V0KG9iaik7Cit9CisKK3N0YXRpYyB2b2lkIHR0bV92bV9jbG9zZShzdHJ1Y3Qgdm1f YXJlYV9zdHJ1Y3QgKnZtYSkKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0K KwkJaTkxNV90dG1fdG9fZ2VtKHZtYS0+dm1fcHJpdmF0ZV9kYXRhKTsKKworCUdFTV9CVUdfT04o IW9iaik7CisJaTkxNV9nZW1fb2JqZWN0X3B1dChvYmopOworfQorCitzdGF0aWMgY29uc3Qgc3Ry dWN0IHZtX29wZXJhdGlvbnNfc3RydWN0IHZtX29wc190dG0gPSB7CisJLmZhdWx0ID0gdm1fZmF1 bHRfdHRtLAorCS5hY2Nlc3MgPSB2bV9hY2Nlc3NfdHRtLAorCS5vcGVuID0gdHRtX3ZtX29wZW4s CisJLmNsb3NlID0gdHRtX3ZtX2Nsb3NlLAorfTsKKworc3RhdGljIHU2NCBpOTE1X3R0bV9tbWFw X29mZnNldChzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqKQoreworCS8qIFRoZSB0dG1f Ym8gbXVzdCBiZSBhbGxvY2F0ZWQgd2l0aCBJOTE1X0JPX0FMTE9DX1VTRVIgKi8KKwlHRU1fQlVH X09OKCFkcm1fbW1fbm9kZV9hbGxvY2F0ZWQoJm9iai0+YmFzZS52bWFfbm9kZS52bV9ub2RlKSk7 CisKKwlyZXR1cm4gZHJtX3ZtYV9ub2RlX29mZnNldF9hZGRyKCZvYmotPmJhc2Uudm1hX25vZGUp OworfQorCitjb25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdF9vcHMgaTkxNV9nZW1fdHRt X29ial9vcHMgPSB7CiAJLm5hbWUgPSAiaTkxNV9nZW1fb2JqZWN0X3R0bSIsCiAJLmZsYWdzID0g STkxNV9HRU1fT0JKRUNUX0hBU19JT01FTSwKIApAQCAtNDY5LDYgKzU3MCw4IEBAIHN0YXRpYyBj b25zdCBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdF9vcHMgaTkxNV9nZW1fdHRtX29ial9vcHMg PSB7CiAJLnRydW5jYXRlID0gaTkxNV90dG1fcHVyZ2UsCiAJLmFkanVzdF9scnUgPSBpOTE1X3R0 bV9hZGp1c3RfbHJ1LAogCS5kZWxheWVkX2ZyZWUgPSBpOTE1X3R0bV9kZWxheWVkX2ZyZWUsCisJ Lm1tYXBfb2Zmc2V0ID0gaTkxNV90dG1fbW1hcF9vZmZzZXQsCisJLm1tYXBfb3BzID0gJnZtX29w c190dG0sCiB9OwogCiB2b2lkIGk5MTVfdHRtX2JvX2Rlc3Ryb3koc3RydWN0IHR0bV9idWZmZXJf b2JqZWN0ICpibykKQEAgLTQ3Niw2ICs1NzksNyBAQCB2b2lkIGk5MTVfdHRtX2JvX2Rlc3Ryb3ko c3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibykKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVj dCAqb2JqID0gaTkxNV90dG1fdG9fZ2VtKGJvKTsKIAogCWk5MTVfZ2VtX29iamVjdF9yZWxlYXNl X21lbW9yeV9yZWdpb24ob2JqKTsKKwltdXRleF9kZXN0cm95KCZvYmotPnR0bS5nZXRfaW9fcGFn ZS5sb2NrKTsKIAlpZiAob2JqLT50dG0uY3JlYXRlZCkKIAkJY2FsbF9yY3UoJm9iai0+cmN1LCBf X2k5MTVfZ2VtX2ZyZWVfb2JqZWN0X3JjdSk7CiB9CkBAIC01MTcsNiArNjIxLDggQEAgaW50IF9f aTkxNV9nZW1fdHRtX29iamVjdF9pbml0KHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9uICptZW0s CiAJaTkxNV9nZW1fb2JqZWN0X21ha2VfdW5zaHJpbmthYmxlKG9iaik7CiAJb2JqLT5yZWFkX2Rv bWFpbnMgPSBJOTE1X0dFTV9ET01BSU5fV0MgfCBJOTE1X0dFTV9ET01BSU5fR1RUOwogCWk5MTVf Z2VtX29iamVjdF9zZXRfY2FjaGVfY29oZXJlbmN5KG9iaiwgSTkxNV9DQUNIRV9OT05FKTsKKwlJ TklUX1JBRElYX1RSRUUoJm9iai0+dHRtLmdldF9pb19wYWdlLnJhZGl4LCBHRlBfS0VSTkVMIHwg X19HRlBfTk9XQVJOKTsKKwltdXRleF9pbml0KCZvYmotPnR0bS5nZXRfaW9fcGFnZS5sb2NrKTsK IAogCWJvX3R5cGUgPSAob2JqLT5mbGFncyAmIEk5MTVfQk9fQUxMT0NfVVNFUikgPyB0dG1fYm9f dHlwZV9kZXZpY2UgOgogCQl0dG1fYm9fdHlwZV9rZXJuZWw7CkBAIC01MjgsNiArNjM0LDcgQEAg aW50IF9faTkxNV9nZW1fdHRtX29iamVjdF9pbml0KHN0cnVjdCBpbnRlbF9tZW1vcnlfcmVnaW9u ICptZW0sCiAJICogU2ltaWxhcmx5LCBpbiBkZWxheWVkX2Rlc3Ryb3ksIHdlIGNhbid0IGNhbGwg dHRtX2JvX3B1dCgpCiAJICogdW50aWwgc3VjY2Vzc2Z1bCBpbml0aWFsaXphdGlvbi4KIAkgKi8K KwlvYmotPmJhc2Uudm1hX25vZGUuZHJpdmVyX3ByaXZhdGUgPSBpOTE1X2dlbV90b190dG0ob2Jq KTsKIAlyZXQgPSB0dG1fYm9faW5pdCgmaTkxNS0+YmRldiwgaTkxNV9nZW1fdG9fdHRtKG9iaiks IHNpemUsCiAJCQkgIGJvX3R5cGUsICZpOTE1X3N5c19wbGFjZW1lbnQsIGFsaWdubWVudCwKIAkJ CSAgdHJ1ZSwgTlVMTCwgTlVMTCwgaTkxNV90dG1fYm9fZGVzdHJveSk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9nZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX21tYW4uYyBiL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2dlbS9zZWxmdGVzdHMvaTkxNV9nZW1fbW1hbi5jCmluZGV4IDA1YTNi MjlmNTQ1ZS4uY2E2OWEyOWI3ZjJhIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n ZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX21tYW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9n ZW0vc2VsZnRlc3RzL2k5MTVfZ2VtX21tYW4uYwpAQCAtNTc4LDE2ICs1NzgsMTcgQEAgc3RhdGlj IGJvb2wgYXNzZXJ0X21tYXBfb2Zmc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAog CQkJICAgICAgIGludCBleHBlY3RlZCkKIHsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqOwotCXN0cnVjdCBpOTE1X21tYXBfb2Zmc2V0ICptbW87CisJdTY0IG9mZnNldDsKKwlpbnQg cmV0OwogCiAJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbChpOTE1LCBzaXpl KTsKIAlpZiAoSVNfRVJSKG9iaikpCi0JCXJldHVybiBmYWxzZTsKKwkJcmV0dXJuIGV4cGVjdGVk ICYmIGV4cGVjdGVkID09IFBUUl9FUlIob2JqKTsKIAotCW1tbyA9IG1tYXBfb2Zmc2V0X2F0dGFj aChvYmosIEk5MTVfTU1BUF9PRkZTRVRfR1RULCBOVUxMKTsKKwlyZXQgPSBfX2Fzc2lnbl9tbWFw X29mZnNldChvYmosIEk5MTVfTU1BUF9UWVBFX0dUVCwgJm9mZnNldCwgTlVMTCk7CiAJaTkxNV9n ZW1fb2JqZWN0X3B1dChvYmopOwogCi0JcmV0dXJuIFBUUl9FUlJfT1JfWkVSTyhtbW8pID09IGV4 cGVjdGVkOworCXJldHVybiByZXQgPT0gZXhwZWN0ZWQ7CiB9CiAKIHN0YXRpYyB2b2lkIGRpc2Fi bGVfcmV0aXJlX3dvcmtlcihzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSkKQEAgLTYyMiw4 ICs2MjMsOCBAQCBzdGF0aWMgaW50IGlndF9tbWFwX29mZnNldF9leGhhdXN0aW9uKHZvaWQgKmFy ZykKIAlzdHJ1Y3QgZHJtX21tICptbSA9ICZpOTE1LT5kcm0udm1hX29mZnNldF9tYW5hZ2VyLT52 bV9hZGRyX3NwYWNlX21tOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CiAJc3Ry dWN0IGRybV9tbV9ub2RlICpob2xlLCAqbmV4dDsKLQlzdHJ1Y3QgaTkxNV9tbWFwX29mZnNldCAq bW1vOwogCWludCBsb29wLCBlcnIgPSAwOworCXU2NCBvZmZzZXQ7CiAKIAkvKiBEaXNhYmxlIGJh Y2tncm91bmQgcmVhcGVyICovCiAJZGlzYWJsZV9yZXRpcmVfd29ya2VyKGk5MTUpOwpAQCAtNjg0 LDEzICs2ODUsMTMgQEAgc3RhdGljIGludCBpZ3RfbW1hcF9vZmZzZXRfZXhoYXVzdGlvbih2b2lk ICphcmcpCiAJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2NyZWF0ZV9pbnRlcm5hbChpOTE1LCBQQUdF X1NJWkUpOwogCWlmIChJU19FUlIob2JqKSkgewogCQllcnIgPSBQVFJfRVJSKG9iaik7CisJCXBy X2VycigiVW5hYmxlIHRvIGNyZWF0ZSBvYmplY3QgZm9yIHJlY2xhaW1lZCBob2xlXG4iKTsKIAkJ Z290byBvdXQ7CiAJfQogCi0JbW1vID0gbW1hcF9vZmZzZXRfYXR0YWNoKG9iaiwgSTkxNV9NTUFQ X09GRlNFVF9HVFQsIE5VTEwpOwotCWlmIChJU19FUlIobW1vKSkgeworCWVyciA9IF9fYXNzaWdu X21tYXBfb2Zmc2V0KG9iaiwgSTkxNV9NTUFQX1RZUEVfR1RULCAmb2Zmc2V0LCBOVUxMKTsKKwlp ZiAoZXJyKSB7CiAJCXByX2VycigiVW5hYmxlIHRvIGluc2VydCBvYmplY3QgaW50byByZWNsYWlt ZWQgaG9sZVxuIik7Ci0JCWVyciA9IFBUUl9FUlIobW1vKTsKIAkJZ290byBlcnJfb2JqOwogCX0K IApAQCAtODY1LDEwICs4NjYsMTAgQEAgc3RhdGljIGludCBfX2lndF9tbWFwKHN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICppOTE1LAogCQkgICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAq b2JqLAogCQkgICAgICBlbnVtIGk5MTVfbW1hcF90eXBlIHR5cGUpCiB7Ci0Jc3RydWN0IGk5MTVf bW1hcF9vZmZzZXQgKm1tbzsKIAlzdHJ1Y3Qgdm1fYXJlYV9zdHJ1Y3QgKmFyZWE7CiAJdW5zaWdu ZWQgbG9uZyBhZGRyOwogCWludCBlcnIsIGk7CisJdTY0IG9mZnNldDsKIAogCWlmICghY2FuX21t YXAob2JqLCB0eXBlKSkKIAkJcmV0dXJuIDA7CkBAIC04NzksMTEgKzg4MCwxMSBAQCBzdGF0aWMg aW50IF9faWd0X21tYXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJaWYgKGVycikK IAkJcmV0dXJuIGVycjsKIAotCW1tbyA9IG1tYXBfb2Zmc2V0X2F0dGFjaChvYmosIHR5cGUsIE5V TEwpOwotCWlmIChJU19FUlIobW1vKSkKLQkJcmV0dXJuIFBUUl9FUlIobW1vKTsKKwllcnIgPSBf X2Fzc2lnbl9tbWFwX29mZnNldChvYmosIHR5cGUsICZvZmZzZXQsIE5VTEwpOworCWlmIChlcnIp CisJCXJldHVybiBlcnI7CiAKLQlhZGRyID0gaWd0X21tYXBfbm9kZShpOTE1LCAmbW1vLT52bWFf bm9kZSwgMCwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCk7CisJYWRkciA9IGlndF9tbWFwX29mZnNl dChpOTE1LCBvZmZzZXQsIG9iai0+YmFzZS5zaXplLCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVEKTsK IAlpZiAoSVNfRVJSX1ZBTFVFKGFkZHIpKQogCQlyZXR1cm4gYWRkcjsKIApAQCAtODk3LDEzICs4 OTgsNiBAQCBzdGF0aWMgaW50IF9faWd0X21tYXAoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5 MTUsCiAJCWdvdG8gb3V0X3VubWFwOwogCX0KIAotCWlmIChhcmVhLT52bV9wcml2YXRlX2RhdGEg IT0gbW1vKSB7Ci0JCXByX2VycigiJXM6IHZtX2FyZWFfc3RydWN0IGRpZCBub3QgcG9pbnQgYmFj ayB0byBvdXIgbW1hcF9vZmZzZXQgb2JqZWN0IVxuIiwKLQkJICAgICAgIG9iai0+bW0ucmVnaW9u LT5uYW1lKTsKLQkJZXJyID0gLUVJTlZBTDsKLQkJZ290byBvdXRfdW5tYXA7Ci0JfQotCiAJZm9y IChpID0gMDsgaSA8IG9iai0+YmFzZS5zaXplIC8gc2l6ZW9mKHUzMik7IGkrKykgewogCQl1MzIg X191c2VyICp1eCA9IHU2NF90b191c2VyX3B0cigodTY0KShhZGRyICsgaSAqIHNpemVvZigqdXgp KSk7CiAJCXUzMiB4OwpAQCAtOTYxLDcgKzk1NSw3IEBAIHN0YXRpYyBpbnQgaWd0X21tYXAodm9p ZCAqYXJnKQogCQkJc3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKIAkJCWludCBlcnI7 CiAKLQkJCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVhdGVfcmVnaW9uKG1yLCBzaXplc1tpXSwg MCk7CisJCQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3JlYXRlX3JlZ2lvbihtciwgc2l6ZXNbaV0s IEk5MTVfQk9fQUxMT0NfVVNFUik7CiAJCQlpZiAob2JqID09IEVSUl9QVFIoLUVOT0RFVikpCiAJ CQkJY29udGludWU7CiAKQEAgLTEwMDQsMTIgKzk5OCwxMiBAQCBzdGF0aWMgaW50IF9faWd0X21t YXBfYWNjZXNzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkJICAgICBzdHJ1Y3Qg ZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqLAogCQkJICAgICBlbnVtIGk5MTVfbW1hcF90eXBlIHR5 cGUpCiB7Ci0Jc3RydWN0IGk5MTVfbW1hcF9vZmZzZXQgKm1tbzsKIAl1bnNpZ25lZCBsb25nIF9f dXNlciAqcHRyOwogCXVuc2lnbmVkIGxvbmcgQSwgQjsKIAl1bnNpZ25lZCBsb25nIHgsIHk7CiAJ dW5zaWduZWQgbG9uZyBhZGRyOwogCWludCBlcnI7CisJdTY0IG9mZnNldDsKIAogCW1lbXNldCgm QSwgMHhBQSwgc2l6ZW9mKEEpKTsKIAltZW1zZXQoJkIsIDB4QkIsIHNpemVvZihCKSk7CkBAIC0x MDE3LDExICsxMDExLDExIEBAIHN0YXRpYyBpbnQgX19pZ3RfbW1hcF9hY2Nlc3Moc3RydWN0IGRy bV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJaWYgKCFjYW5fbW1hcChvYmosIHR5cGUpIHx8ICFjYW5f YWNjZXNzKG9iaikpCiAJCXJldHVybiAwOwogCi0JbW1vID0gbW1hcF9vZmZzZXRfYXR0YWNoKG9i aiwgdHlwZSwgTlVMTCk7Ci0JaWYgKElTX0VSUihtbW8pKQotCQlyZXR1cm4gUFRSX0VSUihtbW8p OworCWVyciA9IF9fYXNzaWduX21tYXBfb2Zmc2V0KG9iaiwgdHlwZSwgJm9mZnNldCwgTlVMTCk7 CisJaWYgKGVycikKKwkJcmV0dXJuIGVycjsKIAotCWFkZHIgPSBpZ3RfbW1hcF9ub2RlKGk5MTUs ICZtbW8tPnZtYV9ub2RlLCAwLCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVEKTsKKwlhZGRyID0gaWd0 X21tYXBfb2Zmc2V0KGk5MTUsIG9mZnNldCwgb2JqLT5iYXNlLnNpemUsIFBST1RfV1JJVEUsIE1B UF9TSEFSRUQpOwogCWlmIChJU19FUlJfVkFMVUUoYWRkcikpCiAJCXJldHVybiBhZGRyOwogCXB0 ciA9ICh1bnNpZ25lZCBsb25nIF9fdXNlciAqKWFkZHI7CkBAIC0xMDgxLDcgKzEwNzUsNyBAQCBz dGF0aWMgaW50IGlndF9tbWFwX2FjY2Vzcyh2b2lkICphcmcpCiAJCXN0cnVjdCBkcm1faTkxNV9n ZW1fb2JqZWN0ICpvYmo7CiAJCWludCBlcnI7CiAKLQkJb2JqID0gaTkxNV9nZW1fb2JqZWN0X2Ny ZWF0ZV9yZWdpb24obXIsIFBBR0VfU0laRSwgMCk7CisJCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9j cmVhdGVfcmVnaW9uKG1yLCBQQUdFX1NJWkUsIEk5MTVfQk9fQUxMT0NfVVNFUik7CiAJCWlmIChv YmogPT0gRVJSX1BUUigtRU5PREVWKSkKIAkJCWNvbnRpbnVlOwogCkBAIC0xMTExLDExICsxMTA1 LDExIEBAIHN0YXRpYyBpbnQgX19pZ3RfbW1hcF9ncHUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg Kmk5MTUsCiAJCQkgIGVudW0gaTkxNV9tbWFwX3R5cGUgdHlwZSkKIHsKIAlzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmU7Ci0Jc3RydWN0IGk5MTVfbW1hcF9vZmZzZXQgKm1tbzsKIAl1bnNp Z25lZCBsb25nIGFkZHI7CiAJdTMyIF9fdXNlciAqdXg7CiAJdTMyIGJiZTsKIAlpbnQgZXJyOwor CXU2NCBvZmZzZXQ7CiAKIAkvKgogCSAqIFZlcmlmeSB0aGF0IHRoZSBtbWFwIGFjY2VzcyBpbnRv IHRoZSBiYWNraW5nIHN0b3JlIGFsaWducyB3aXRoCkBAIC0xMTMyLDExICsxMTI2LDExIEBAIHN0 YXRpYyBpbnQgX19pZ3RfbW1hcF9ncHUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmk5MTUsCiAJ aWYgKGVycikKIAkJcmV0dXJuIGVycjsKIAotCW1tbyA9IG1tYXBfb2Zmc2V0X2F0dGFjaChvYmos IHR5cGUsIE5VTEwpOwotCWlmIChJU19FUlIobW1vKSkKLQkJcmV0dXJuIFBUUl9FUlIobW1vKTsK KwllcnIgPSBfX2Fzc2lnbl9tbWFwX29mZnNldChvYmosIHR5cGUsICZvZmZzZXQsIE5VTEwpOwor CWlmIChlcnIpCisJCXJldHVybiBlcnI7CiAKLQlhZGRyID0gaWd0X21tYXBfbm9kZShpOTE1LCAm bW1vLT52bWFfbm9kZSwgMCwgUFJPVF9XUklURSwgTUFQX1NIQVJFRCk7CisJYWRkciA9IGlndF9t bWFwX29mZnNldChpOTE1LCBvZmZzZXQsIG9iai0+YmFzZS5zaXplLCBQUk9UX1dSSVRFLCBNQVBf U0hBUkVEKTsKIAlpZiAoSVNfRVJSX1ZBTFVFKGFkZHIpKQogCQlyZXR1cm4gYWRkcjsKIApAQCAt MTIyNiw3ICsxMjIwLDcgQEAgc3RhdGljIGludCBpZ3RfbW1hcF9ncHUodm9pZCAqYXJnKQogCQlz dHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqOwogCQlpbnQgZXJyOwogCi0JCW9iaiA9IGk5 MTVfZ2VtX29iamVjdF9jcmVhdGVfcmVnaW9uKG1yLCBQQUdFX1NJWkUsIDApOworCQlvYmogPSBp OTE1X2dlbV9vYmplY3RfY3JlYXRlX3JlZ2lvbihtciwgUEFHRV9TSVpFLCBJOTE1X0JPX0FMTE9D X1VTRVIpOwogCQlpZiAob2JqID09IEVSUl9QVFIoLUVOT0RFVikpCiAJCQljb250aW51ZTsKIApA QCAtMTMwMywxOCArMTI5NywxOCBAQCBzdGF0aWMgaW50IF9faWd0X21tYXBfcmV2b2tlKHN0cnVj dCBkcm1faTkxNV9wcml2YXRlICppOTE1LAogCQkJICAgICBzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29i amVjdCAqb2JqLAogCQkJICAgICBlbnVtIGk5MTVfbW1hcF90eXBlIHR5cGUpCiB7Ci0Jc3RydWN0 IGk5MTVfbW1hcF9vZmZzZXQgKm1tbzsKIAl1bnNpZ25lZCBsb25nIGFkZHI7CiAJaW50IGVycjsK Kwl1NjQgb2Zmc2V0OwogCiAJaWYgKCFjYW5fbW1hcChvYmosIHR5cGUpKQogCQlyZXR1cm4gMDsK IAotCW1tbyA9IG1tYXBfb2Zmc2V0X2F0dGFjaChvYmosIHR5cGUsIE5VTEwpOwotCWlmIChJU19F UlIobW1vKSkKLQkJcmV0dXJuIFBUUl9FUlIobW1vKTsKKwllcnIgPSBfX2Fzc2lnbl9tbWFwX29m ZnNldChvYmosIHR5cGUsICZvZmZzZXQsIE5VTEwpOworCWlmIChlcnIpCisJCXJldHVybiBlcnI7 CiAKLQlhZGRyID0gaWd0X21tYXBfbm9kZShpOTE1LCAmbW1vLT52bWFfbm9kZSwgMCwgUFJPVF9X UklURSwgTUFQX1NIQVJFRCk7CisJYWRkciA9IGlndF9tbWFwX29mZnNldChpOTE1LCBvZmZzZXQs IG9iai0+YmFzZS5zaXplLCBQUk9UX1dSSVRFLCBNQVBfU0hBUkVEKTsKIAlpZiAoSVNfRVJSX1ZB TFVFKGFkZHIpKQogCQlyZXR1cm4gYWRkcjsKIApAQCAtMTM1MCwxMCArMTM0NCwyMCBAQCBzdGF0 aWMgaW50IF9faWd0X21tYXBfcmV2b2tlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAog CQl9CiAJfQogCi0JZXJyID0gY2hlY2tfYWJzZW50KGFkZHIsIG9iai0+YmFzZS5zaXplKTsKLQlp ZiAoZXJyKSB7Ci0JCXByX2VycigiJXM6IHdhcyBub3QgYWJzZW50XG4iLCBvYmotPm1tLnJlZ2lv bi0+bmFtZSk7Ci0JCWdvdG8gb3V0X3VubWFwOworCWlmICghb2JqLT5vcHMtPm1tYXBfb3BzKSB7 CisJCWVyciA9IGNoZWNrX2Fic2VudChhZGRyLCBvYmotPmJhc2Uuc2l6ZSk7CisJCWlmIChlcnIp IHsKKwkJCXByX2VycigiJXM6IHdhcyBub3QgYWJzZW50XG4iLCBvYmotPm1tLnJlZ2lvbi0+bmFt ZSk7CisJCQlnb3RvIG91dF91bm1hcDsKKwkJfQorCX0gZWxzZSB7CisJCS8qIHR0bSBhbGxvd3Mg YWNjZXNzIHRvIGV2aWN0ZWQgcmVnaW9ucyBieSBkZXNpZ24gKi8KKworCQllcnIgPSBjaGVja19w cmVzZW50KGFkZHIsIG9iai0+YmFzZS5zaXplKTsKKwkJaWYgKGVycikgeworCQkJcHJfZXJyKCIl czogd2FzIG5vdCBwcmVzZW50XG4iLCBvYmotPm1tLnJlZ2lvbi0+bmFtZSk7CisJCQlnb3RvIG91 dF91bm1hcDsKKwkJfQogCX0KIAogb3V0X3VubWFwOgpAQCAtMTM3MSw3ICsxMzc1LDcgQEAgc3Rh dGljIGludCBpZ3RfbW1hcF9yZXZva2Uodm9pZCAqYXJnKQogCQlzdHJ1Y3QgZHJtX2k5MTVfZ2Vt X29iamVjdCAqb2JqOwogCQlpbnQgZXJyOwogCi0JCW9iaiA9IGk5MTVfZ2VtX29iamVjdF9jcmVh dGVfcmVnaW9uKG1yLCBQQUdFX1NJWkUsIDApOworCQlvYmogPSBpOTE1X2dlbV9vYmplY3RfY3Jl YXRlX3JlZ2lvbihtciwgUEFHRV9TSVpFLCBJOTE1X0JPX0FMTE9DX1VTRVIpOwogCQlpZiAob2Jq ID09IEVSUl9QVFIoLUVOT0RFVikpCiAJCQljb250aW51ZTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9tbWFwLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9zZWxmdGVzdHMvaWd0X21tYXAuYwppbmRleCA1ODNhNGZmOGI4YzkuLmU5MjBhNDYxYmQzNiAx MDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9tbWFwLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9tbWFwLmMKQEAgLTksMTUgKzks MjggQEAKICNpbmNsdWRlICJpOTE1X2Rydi5oIgogI2luY2x1ZGUgImlndF9tbWFwLmgiCiAKLXVu c2lnbmVkIGxvbmcgaWd0X21tYXBfbm9kZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwK LQkJCSAgICBzdHJ1Y3QgZHJtX3ZtYV9vZmZzZXRfbm9kZSAqbm9kZSwKLQkJCSAgICB1bnNpZ25l ZCBsb25nIGFkZHIsCi0JCQkgICAgdW5zaWduZWQgbG9uZyBwcm90LAotCQkJICAgIHVuc2lnbmVk IGxvbmcgZmxhZ3MpCit1bnNpZ25lZCBsb25nIGlndF9tbWFwX29mZnNldChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqaTkxNSwKKwkJCSAgICAgIHU2NCBvZmZzZXQsCisJCQkgICAgICB1bnNpZ25l ZCBsb25nIHNpemUsCisJCQkgICAgICB1bnNpZ25lZCBsb25nIHByb3QsCisJCQkgICAgICB1bnNp Z25lZCBsb25nIGZsYWdzKQogeworCXN0cnVjdCBkcm1fdm1hX29mZnNldF9ub2RlICpub2RlOwog CXN0cnVjdCBmaWxlICpmaWxlOworCXVuc2lnbmVkIGxvbmcgYWRkcjsKIAlpbnQgZXJyOwogCisJ Lyogbm8gbmVlZCB0byByZWZjb3VudCwgd2Ugb3duIHRoaXMgb2JqZWN0ICovCisJZHJtX3ZtYV9v ZmZzZXRfbG9ja19sb29rdXAoaTkxNS0+ZHJtLnZtYV9vZmZzZXRfbWFuYWdlcik7CisJbm9kZSA9 IGRybV92bWFfb2Zmc2V0X2V4YWN0X2xvb2t1cF9sb2NrZWQoaTkxNS0+ZHJtLnZtYV9vZmZzZXRf bWFuYWdlciwKKwkJCQkJCSAgb2Zmc2V0IC8gUEFHRV9TSVpFLCBzaXplIC8gUEFHRV9TSVpFKTsK Kwlkcm1fdm1hX29mZnNldF91bmxvY2tfbG9va3VwKGk5MTUtPmRybS52bWFfb2Zmc2V0X21hbmFn ZXIpOworCisJaWYgKEdFTV9XQVJOX09OKCFub2RlKSkgeworCQlwcl9pbmZvKCJGYWlsZWQgdG8g bG9va3VwICVsbHhcbiIsIG9mZnNldCk7CisJCXJldHVybiAtRU5PRU5UOworCX0KKwogCS8qIFBy ZXRlbmQgdG8gb3BlbigiL2Rldi9kcmkvY2FyZDAiKSAqLwogCWZpbGUgPSBtb2NrX2RybV9nZXRm aWxlKGk5MTUtPmRybS5wcmltYXJ5LCBPX1JEV1IpOwogCWlmIChJU19FUlIoZmlsZSkpCkBAIC0y OSw3ICs0Miw3IEBAIHVuc2lnbmVkIGxvbmcgaWd0X21tYXBfbm9kZShzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqaTkxNSwKIAkJZ290byBvdXRfZmlsZTsKIAl9CiAKLQlhZGRyID0gdm1fbW1hcChm aWxlLCBhZGRyLCBkcm1fdm1hX25vZGVfc2l6ZShub2RlKSA8PCBQQUdFX1NISUZULAorCWFkZHIg PSB2bV9tbWFwKGZpbGUsIDAsIGRybV92bWFfbm9kZV9zaXplKG5vZGUpIDw8IFBBR0VfU0hJRlQs CiAJCSAgICAgICBwcm90LCBmbGFncywgZHJtX3ZtYV9ub2RlX29mZnNldF9hZGRyKG5vZGUpKTsK IAogCWRybV92bWFfbm9kZV9yZXZva2Uobm9kZSwgZmlsZS0+cHJpdmF0ZV9kYXRhKTsKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3RfbW1hcC5oIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvc2VsZnRlc3RzL2lndF9tbWFwLmgKaW5kZXggNmU3MTZjYjU5ZDdlLi5h Y2JlMzRkODFhNmQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9p Z3RfbW1hcC5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L3NlbGZ0ZXN0cy9pZ3RfbW1hcC5o CkBAIC03LDEzICs3LDE1IEBACiAjaWZuZGVmIElHVF9NTUFQX0gKICNkZWZpbmUgSUdUX01NQVBf SAogCisjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKwogc3RydWN0IGRybV9pOTE1X3ByaXZhdGU7 CiBzdHJ1Y3QgZHJtX3ZtYV9vZmZzZXRfbm9kZTsKIAotdW5zaWduZWQgbG9uZyBpZ3RfbW1hcF9u b2RlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LAotCQkJICAgIHN0cnVjdCBkcm1fdm1h X29mZnNldF9ub2RlICpub2RlLAotCQkJICAgIHVuc2lnbmVkIGxvbmcgYWRkciwKLQkJCSAgICB1 bnNpZ25lZCBsb25nIHByb3QsCi0JCQkgICAgdW5zaWduZWQgbG9uZyBmbGFncyk7Cit1bnNpZ25l ZCBsb25nIGlndF9tbWFwX29mZnNldChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqaTkxNSwKKwkJ CSAgICAgIHU2NCBvZmZzZXQsCisJCQkgICAgICB1bnNpZ25lZCBsb25nIHNpemUsCisJCQkgICAg ICB1bnNpZ25lZCBsb25nIHByb3QsCisJCQkgICAgICB1bnNpZ25lZCBsb25nIGZsYWdzKTsKIAog I2VuZGlmIC8qIElHVF9NTUFQX0ggKi8KLS0gCjIuMzEuMQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==