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=-13.5 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_INVALID,DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,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 D3221C433E0 for ; Mon, 25 Jan 2021 13:25:26 +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 78C0122DFB for ; Mon, 25 Jan 2021 13:25:26 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 78C0122DFB Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 221D389C9C; Mon, 25 Jan 2021 13:25:22 +0000 (UTC) Received: from mail-ed1-x530.google.com (mail-ed1-x530.google.com [IPv6:2a00:1450:4864:20::530]) by gabe.freedesktop.org (Postfix) with ESMTPS id 148FE89C21 for ; Mon, 25 Jan 2021 13:25:19 +0000 (UTC) Received: by mail-ed1-x530.google.com with SMTP id z22so603605edb.9 for ; Mon, 25 Jan 2021 05:25:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=nLlAmuHANCJIjjfIYK5ZEAISGf7L8G8yX1LtrKqslIA=; b=SrdB1+3t4pMZ/xoItfLxvGnByBdnnHNxkUQcLUO5/v7nabYTUEw/GGiB2dX6udAarC QaP5zceViAytZDY1rS4ccBLudZ9xDVk72HaWcXgQ1tEg2j9dRH4lkzD0/Xzh07pKDE+b g6B95AHjhm93yxeS6deZ1oSxZbV+woHMvCgNJrDdyqGCg3TXktVunKCbVNZN7LhmoiRM cu3aqpuXIriUxfA381QFoUTfwt90zMsBlkkVTBs7do28p25e3WSLaCrEyi008IyrdY6f F2sKLowfO+gGaHAzi7QW7Iqm6RwK9eIEGlhP7o4BW8z3rEtOhrOjCy1kKAqvCQKeOEpC u5lQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=nLlAmuHANCJIjjfIYK5ZEAISGf7L8G8yX1LtrKqslIA=; b=mOh3OFOLwC4apqJxbPrsGH92oW2q7FR3XCJEfl+xNF857+eJY57C1nsfx29zSMJvZJ +cFkfcZDRpidAevnK7IKm/0hP+fAlq6grD6mChXWYcwvEAXOhX7O1ZurH0zvpTQq0q5j 1zlIytOLTIaH6drwx+hsv9YE/TNF/vBhzdU/7vRWAb8/S/kFFsSV5ChZtxjIRDty8auv zOnMQH6br5A3NNPpf1tlu5Pm7IvKwF6EOtRSVa7JdEQQ/uM7ywMvQPoD2F6rKj9+y/D1 R5CMpkfchIg3VWj59cM5dqLjp7Ctmli8jZAgLjbQ9sggm6RMh0OqHcyb7zEzWffklAfn ZZuw== X-Gm-Message-State: AOAM532hFn5N9jWIidLFpjZOGfCwBkI5DWuYUL3992BDzLXJNXaUwLKP jgCVI6rqr0mw4QK9aedi/fQ= X-Google-Smtp-Source: ABdhPJzpHWH0fi5Vyt+t7/5dil+o8Y/8S4wjqb8dnYmx7J6R+CkpMWRYgsWvpe4G9va23YpfqZ8fgA== X-Received: by 2002:a05:6402:212:: with SMTP id t18mr449223edv.37.1611581117384; Mon, 25 Jan 2021 05:25:17 -0800 (PST) Received: from abel.fritz.box ([2a02:908:1252:fb60:4de7:5eb0:ebd7:49ad]) by smtp.gmail.com with ESMTPSA id j23sm8381181ejs.112.2021.01.25.05.25.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 25 Jan 2021 05:25:16 -0800 (PST) From: "=?UTF-8?q?Christian=20K=C3=B6nig?=" X-Google-Original-From: =?UTF-8?q?Christian=20K=C3=B6nig?= To: daniel@ffwll.ch, dri-devel@lists.freedesktop.org Subject: [PATCH 2/3] drm/ttm: move memory accounting into vmwgfx Date: Mon, 25 Jan 2021 14:25:13 +0100 Message-Id: <20210125132514.3819-2-christian.koenig@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210125132514.3819-1-christian.koenig@amd.com> References: <20210125132514.3819-1-christian.koenig@amd.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" VGhpcyBpcyBqdXN0IGFub3RoZXIgZmVhdHVyZSB3aGljaCBpcyBvbmx5IHVzZWQgYnkgVk1XR0ZY LCBzbyBtb3ZlCml0IGludG8gdGhlIGRyaXZlciBpbnN0ZWFkLgoKSSd2ZSB0cmllZCB0byBhZGQg dGhlIGFjY291bnRpbmcgc3lzZnMgZmlsZSB0byB0aGUga29iamVjdCBvZiB0aGUgZHJtCm1pbm9y LCBidXQgSSdtIG5vdCAxMDAlIHN1cmUgaWYgdGhpcyB3b3JrcyBhcyBleHBlY3RlZC4KClNpZ25l ZC1vZmYtYnk6IENocmlzdGlhbiBLw7ZuaWcgPGNocmlzdGlhbi5rb2VuaWdAYW1kLmNvbT4KLS0t CiAuLi4vZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYyAgfCAxNiArKysr KystLS0KIGRyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYyAgICB8ICA4 ICsrLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jICAgICAgICAgfCAg NiArKy0tCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMgICAgICAgICAgfCAg NyArKy0tCiBkcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rydi5oICAgICAgICAgfCAg MSAtCiBkcml2ZXJzL2dwdS9kcm0vcXhsL3F4bF9vYmplY3QuYyAgICAgICAgICAgICAgfCAgNCAr LS0KIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jICAgICAgICB8ICA4ICsr LS0tCiBkcml2ZXJzL2dwdS9kcm0vdHRtL01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgNyAr Ky0tCiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jICAgICAgICAgICAgICAgICAgfCAzMyAr LS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMgICAg ICAgICAgICAgfCAgMSAtCiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9kZXZpY2UuYyAgICAgICAg ICAgICAgfCAyNCArKysrKysrKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcG9vbC5j ICAgICAgICAgICAgICAgIHwgMTMgKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvTWFr ZWZpbGUgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0ve3R0bSA9PiB2bXdn Znh9L3R0bV9tZW1vcnkuYyAgfCAxOSArKysrLS0tLS0tLQogLi4uL2dwdS9kcm0vdm13Z2Z4fS90 dG1fbWVtb3J5LmggICAgICAgICAgICAgIHwgIDUgKy0tCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L3R0bV9vYmplY3QuaCAgICAgICAgICAgfCAgMyArLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92 bXdnZnhfYm8uYyAgICAgICAgICAgIHwgMjIgKysrKysrKysrKy0tLQogZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfZHJ2LmMgICAgICAgICAgIHwgIDUgKysrCiBkcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3Ztd2dmeF90dG1fYnVmZmVyLmMgICAgfCAyOCArKysrKysrKysrKysrKystCiBpbmNs dWRlL2RybS90dG0vdHRtX2JvX2FwaS5oICAgICAgICAgICAgICAgICAgfCAxMyArKy0tLS0tLQog aW5jbHVkZS9kcm0vdHRtL3R0bV9ib19kcml2ZXIuaCAgICAgICAgICAgICAgIHwgIDEgLQogaW5j bHVkZS9kcm0vdHRtL3R0bV90dC5oICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogMjIgZmls ZXMgY2hhbmdlZCwgMTEyIGluc2VydGlvbnMoKyksIDExNSBkZWxldGlvbnMoLSkKIHJlbmFtZSBk cml2ZXJzL2dwdS9kcm0ve3R0bSA9PiB2bXdnZnh9L3R0bV9tZW1vcnkuYyAoOTclKQogcmVuYW1l IHtpbmNsdWRlL2RybS90dG0gPT4gZHJpdmVycy9ncHUvZHJtL3Ztd2dmeH0vdHRtX21lbW9yeS5o ICg5NyUpCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2Ft ZGtmZF9ncHV2bS5jIGIvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9n cHV2bS5jCmluZGV4IDA4NDliNjhlNzg0Zi4uM2U2MjkyM2E3ZTYzIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfYW1ka2ZkX2dwdXZtLmMKKysrIGIvZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9ncHV2bS5jCkBAIC0xMTgsNiArMTE4 LDE2IEBAIHZvaWQgYW1kZ3B1X2FtZGtmZF9ncHV2bV9pbml0X21lbV9saW1pdHModm9pZCkKICAq LwogI2RlZmluZSBFU1RJTUFURV9QVF9TSVpFKG1lbV9zaXplKSAoKG1lbV9zaXplKSA+PiAxNCkK IAorc3RhdGljIHNpemVfdCBhbWRncHVfYW1ka2ZkX2FjY19zaXplKHVpbnQ2NF90IHNpemUpCit7 CisJc2l6ZSA+Pj0gUEFHRV9TSElGVDsKKwlzaXplICo9IHNpemVvZihkbWFfYWRkcl90KSArIHNp emVvZih2b2lkICopOworCisJcmV0dXJuIF9fcm91bmR1cF9wb3dfb2ZfdHdvKHNpemVvZihzdHJ1 Y3QgYW1kZ3B1X2JvKSkgKworCQlfX3JvdW50dXBfcG93X29mX3R3byhzaXplb2Yoc3RydWN0IHR0 bV90dCkpICsKKwkJUEFHRV9BTElHTihzaXplKTsKK30KKwogc3RhdGljIGludCBhbWRncHVfYW1k a2ZkX3Jlc2VydmVfbWVtX2xpbWl0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQl1aW50 NjRfdCBzaXplLCB1MzIgZG9tYWluLCBib29sIHNnKQogewpAQCAtMTI2LDggKzEzNiw3IEBAIHN0 YXRpYyBpbnQgYW1kZ3B1X2FtZGtmZF9yZXNlcnZlX21lbV9saW1pdChzdHJ1Y3QgYW1kZ3B1X2Rl dmljZSAqYWRldiwKIAlzaXplX3QgYWNjX3NpemUsIHN5c3RlbV9tZW1fbmVlZGVkLCB0dG1fbWVt X25lZWRlZCwgdnJhbV9uZWVkZWQ7CiAJaW50IHJldCA9IDA7CiAKLQlhY2Nfc2l6ZSA9IHR0bV9i b19kbWFfYWNjX3NpemUoJmFkZXYtPm1tYW4uYmRldiwgc2l6ZSwKLQkJCQkgICAgICAgc2l6ZW9m KHN0cnVjdCBhbWRncHVfYm8pKTsKKwlhY2Nfc2l6ZSA9IGFtZGdwdV9hbWRrZmRfYWNjX3NpemUo c2l6ZSk7CiAKIAl2cmFtX25lZWRlZCA9IDA7CiAJaWYgKGRvbWFpbiA9PSBBTURHUFVfR0VNX0RP TUFJTl9HVFQpIHsKQEAgLTE3NCw4ICsxODMsNyBAQCBzdGF0aWMgdm9pZCB1bnJlc2VydmVfbWVt X2xpbWl0KHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogewogCXNpemVfdCBhY2Nfc2l6ZTsK IAotCWFjY19zaXplID0gdHRtX2JvX2RtYV9hY2Nfc2l6ZSgmYWRldi0+bW1hbi5iZGV2LCBzaXpl LAotCQkJCSAgICAgICBzaXplb2Yoc3RydWN0IGFtZGdwdV9ibykpOworCWFjY19zaXplID0gYW1k Z3B1X2FtZGtmZF9hY2Nfc2l6ZShzaXplKTsKIAogCXNwaW5fbG9jaygma2ZkX21lbV9saW1pdC5t ZW1fbGltaXRfbG9jayk7CiAJaWYgKGRvbWFpbiA9PSBBTURHUFVfR0VNX0RPTUFJTl9HVFQpIHsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmplY3QuYwppbmRleCA2Y2M5OTE5 YjEyY2MuLjU5OWM5YTEzMmViNiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2FtZC9hbWRn cHUvYW1kZ3B1X29iamVjdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdw dV9vYmplY3QuYwpAQCAtNTIzLDcgKzUyMyw2IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2JvX2RvX2Ny ZWF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAl9OwogCXN0cnVjdCBhbWRncHVfYm8g KmJvOwogCXVuc2lnbmVkIGxvbmcgcGFnZV9hbGlnbiwgc2l6ZSA9IGJwLT5zaXplOwotCXNpemVf dCBhY2Nfc2l6ZTsKIAlpbnQgcjsKIAogCS8qIE5vdGUgdGhhdCBHRFMvR1dTL09BIGFsbG9jYXRl cyAxIHBhZ2UgcGVyIGJ5dGUvcmVzb3VyY2UuICovCkBAIC01NDYsOSArNTQ1LDYgQEAgc3RhdGlj IGludCBhbWRncHVfYm9fZG9fY3JlYXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCiAJ KmJvX3B0ciA9IE5VTEw7CiAKLQlhY2Nfc2l6ZSA9IHR0bV9ib19kbWFfYWNjX3NpemUoJmFkZXYt Pm1tYW4uYmRldiwgc2l6ZSwKLQkJCQkgICAgICAgc2l6ZW9mKHN0cnVjdCBhbWRncHVfYm8pKTsK LQogCWJvID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGFtZGdwdV9ibyksIEdGUF9LRVJORUwpOwog CWlmIChibyA9PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKQEAgLTU3Nyw4ICs1NzMsOCBAQCBz dGF0aWMgaW50IGFtZGdwdV9ib19kb19jcmVhdGUoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYs CiAJCWJvLT50Ym8ucHJpb3JpdHkgPSAxOwogCiAJciA9IHR0bV9ib19pbml0X3Jlc2VydmVkKCZh ZGV2LT5tbWFuLmJkZXYsICZiby0+dGJvLCBzaXplLCBicC0+dHlwZSwKLQkJCQkgJmJvLT5wbGFj ZW1lbnQsIHBhZ2VfYWxpZ24sICZjdHgsIGFjY19zaXplLAotCQkJCSBOVUxMLCBicC0+cmVzdiwg JmFtZGdwdV9ib19kZXN0cm95KTsKKwkJCQkgJmJvLT5wbGFjZW1lbnQsIHBhZ2VfYWxpZ24sICZj dHgsICBOVUxMLAorCQkJCSBicC0+cmVzdiwgJmFtZGdwdV9ib19kZXN0cm95KTsKIAlpZiAodW5s aWtlbHkociAhPSAwKSkKIAkJcmV0dXJuIHI7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hl bHBlci5jCmluZGV4IDBiMTNjODUwNzY4OC4uYTA5OTJmMGI4YWZkIDEwMDY0NAotLS0gYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hlbHBlci5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fZ2VtX3ZyYW1faGVscGVyLmMKQEAgLTE4OSw3ICsxODksNiBAQCBzdHJ1Y3QgZHJtX2dlbV92 cmFtX29iamVjdCAqZHJtX2dlbV92cmFtX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAog CXN0cnVjdCBkcm1fdnJhbV9tbSAqdm1tID0gZGV2LT52cmFtX21tOwogCXN0cnVjdCB0dG1fZGV2 aWNlICpiZGV2OwogCWludCByZXQ7Ci0Jc2l6ZV90IGFjY19zaXplOwogCiAJaWYgKFdBUk5fT05D RSghdm1tLCAiVlJBTSBNTSBub3QgaW5pdGlhbGl6ZWQiKSkKIAkJcmV0dXJuIEVSUl9QVFIoLUVJ TlZBTCk7CkBAIC0yMTYsNyArMjE1LDYgQEAgc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmRy bV9nZW1fdnJhbV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAl9CiAKIAliZGV2ID0g JnZtbS0+YmRldjsKLQlhY2Nfc2l6ZSA9IHR0bV9ib19kbWFfYWNjX3NpemUoYmRldiwgc2l6ZSwg c2l6ZW9mKCpnYm8pKTsKIAogCWdiby0+Ym8uYmRldiA9IGJkZXY7CiAJZHJtX2dlbV92cmFtX3Bs YWNlbWVudChnYm8sIERSTV9HRU1fVlJBTV9QTF9GTEFHX1NZU1RFTSk7CkBAIC0yMjYsOCArMjI0 LDggQEAgc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmRybV9nZW1fdnJhbV9jcmVhdGUoc3Ry dWN0IGRybV9kZXZpY2UgKmRldiwKIAkgKiB0byByZWxlYXNlIGdiby0+Ym8uYmFzZSBhbmQga2Zy ZWUgZ2JvLgogCSAqLwogCXJldCA9IHR0bV9ib19pbml0KGJkZXYsICZnYm8tPmJvLCBzaXplLCB0 dG1fYm9fdHlwZV9kZXZpY2UsCi0JCQkgICZnYm8tPnBsYWNlbWVudCwgcGdfYWxpZ24sIGZhbHNl LCBhY2Nfc2l6ZSwKLQkJCSAgTlVMTCwgTlVMTCwgdHRtX2J1ZmZlcl9vYmplY3RfZGVzdHJveSk7 CisJCQkgICZnYm8tPnBsYWNlbWVudCwgcGdfYWxpZ24sIGZhbHNlLCBOVUxMLCBOVUxMLAorCQkJ ICB0dG1fYnVmZmVyX29iamVjdF9kZXN0cm95KTsKIAlpZiAocmV0KQogCQlyZXR1cm4gRVJSX1BU UihyZXQpOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Jv LmMgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMKaW5kZXggYzE3Nzk0MGQ2 ZTJjLi5jYTJhOGFlMTkzOGUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25v dXZlYXVfYm8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMKQEAg LTMwMCwxOCArMzAwLDE1IEBAIG5vdXZlYXVfYm9faW5pdChzdHJ1Y3Qgbm91dmVhdV9ibyAqbnZi bywgdTY0IHNpemUsIGludCBhbGlnbiwgdTMyIGRvbWFpbiwKIAkJc3RydWN0IHNnX3RhYmxlICpz Zywgc3RydWN0IGRtYV9yZXN2ICpyb2JqKQogewogCWludCB0eXBlID0gc2cgPyB0dG1fYm9fdHlw ZV9zZyA6IHR0bV9ib190eXBlX2RldmljZTsKLQlzaXplX3QgYWNjX3NpemU7CiAJaW50IHJldDsK IAotCWFjY19zaXplID0gdHRtX2JvX2RtYV9hY2Nfc2l6ZShudmJvLT5iby5iZGV2LCBzaXplLCBz aXplb2YoKm52Ym8pKTsKLQogCW52Ym8tPmJvLm1lbS5udW1fcGFnZXMgPSBzaXplID4+IFBBR0Vf U0hJRlQ7CiAJbm91dmVhdV9ib19wbGFjZW1lbnRfc2V0KG52Ym8sIGRvbWFpbiwgMCk7CiAJSU5J VF9MSVNUX0hFQUQoJm52Ym8tPmlvX3Jlc2VydmVfbHJ1KTsKIAogCXJldCA9IHR0bV9ib19pbml0 KG52Ym8tPmJvLmJkZXYsICZudmJvLT5ibywgc2l6ZSwgdHlwZSwKLQkJCSAgJm52Ym8tPnBsYWNl bWVudCwgYWxpZ24gPj4gUEFHRV9TSElGVCwgZmFsc2UsCi0JCQkgIGFjY19zaXplLCBzZywgcm9i aiwgbm91dmVhdV9ib19kZWxfdHRtKTsKKwkJCSAgJm52Ym8tPnBsYWNlbWVudCwgYWxpZ24gPj4g UEFHRV9TSElGVCwgZmFsc2UsIHNnLAorCQkJICByb2JqLCBub3V2ZWF1X2JvX2RlbF90dG0pOwog CWlmIChyZXQpIHsKIAkJLyogdHRtIHdpbGwgY2FsbCBub3V2ZWF1X2JvX2RlbF90dG0gaWYgaXQg ZmFpbHMuLiAqLwogCQlyZXR1cm4gcmV0OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25v dXZlYXUvbm91dmVhdV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJ2 LmgKaW5kZXggZWRmOWQxZWU5ZDU4Li5hNDkxYzJjMWM1NmUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMv Z3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL25vdXZl YXUvbm91dmVhdV9kcnYuaApAQCAtNTQsNyArNTQsNiBAQAogI2luY2x1ZGUgPGRybS90dG0vdHRt X2JvX2FwaS5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2RyaXZlci5oPgogI2luY2x1ZGUg PGRybS90dG0vdHRtX3BsYWNlbWVudC5oPgotI2luY2x1ZGUgPGRybS90dG0vdHRtX21lbW9yeS5o PgogCiAjaW5jbHVkZSA8ZHJtL2RybV9hdWRpb19jb21wb25lbnQuaD4KIApkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9kcm0vcXhsL3F4 bF9vYmplY3QuYwppbmRleCBjZWViYzU4ODFmNjguLjcwNWI1MTUzNTQ5MiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfb2JqZWN0LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3F4 bC9xeGxfb2JqZWN0LmMKQEAgLTEzOCw4ICsxMzgsOCBAQCBpbnQgcXhsX2JvX2NyZWF0ZShzdHJ1 Y3QgcXhsX2RldmljZSAqcWRldiwKIAlxeGxfdHRtX3BsYWNlbWVudF9mcm9tX2RvbWFpbihibywg ZG9tYWluKTsKIAogCXIgPSB0dG1fYm9faW5pdF9yZXNlcnZlZCgmcWRldi0+bW1hbi5iZGV2LCAm Ym8tPnRibywgc2l6ZSwgdHlwZSwKLQkJCQkgJmJvLT5wbGFjZW1lbnQsIDAsICZjdHgsIHNpemUs Ci0JCQkJIE5VTEwsIE5VTEwsICZxeGxfdHRtX2JvX2Rlc3Ryb3kpOworCQkJCSAmYm8tPnBsYWNl bWVudCwgMCwgJmN0eCwgTlVMTCwgTlVMTCwKKwkJCQkgJnF4bF90dG1fYm9fZGVzdHJveSk7CiAJ aWYgKHVubGlrZWx5KHIgIT0gMCkpIHsKIAkJaWYgKHIgIT0gLUVSRVNUQVJUU1lTKQogCQkJZGV2 X2VycihxZGV2LT5kZGV2LmRldiwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMK aW5kZXggNmEzMzYyODQ0NjZmLi44MDRmN2E0MjdiZTcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX29iamVjdC5jCkBAIC0xNTksNyArMTU5LDYgQEAgaW50IHJhZGVvbl9ib19jcmVhdGUo c3RydWN0IHJhZGVvbl9kZXZpY2UgKnJkZXYsCiAJc3RydWN0IHJhZGVvbl9ibyAqYm87CiAJZW51 bSB0dG1fYm9fdHlwZSB0eXBlOwogCXVuc2lnbmVkIGxvbmcgcGFnZV9hbGlnbiA9IHJvdW5kdXAo Ynl0ZV9hbGlnbiwgUEFHRV9TSVpFKSA+PiBQQUdFX1NISUZUOwotCXNpemVfdCBhY2Nfc2l6ZTsK IAlpbnQgcjsKIAogCXNpemUgPSBBTElHTihzaXplLCBQQUdFX1NJWkUpOwpAQCAtMTczLDkgKzE3 Miw2IEBAIGludCByYWRlb25fYm9fY3JlYXRlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAog CX0KIAkqYm9fcHRyID0gTlVMTDsKIAotCWFjY19zaXplID0gdHRtX2JvX2RtYV9hY2Nfc2l6ZSgm cmRldi0+bW1hbi5iZGV2LCBzaXplLAotCQkJCSAgICAgICBzaXplb2Yoc3RydWN0IHJhZGVvbl9i bykpOwotCiAJYm8gPSBremFsbG9jKHNpemVvZihzdHJ1Y3QgcmFkZW9uX2JvKSwgR0ZQX0tFUk5F TCk7CiAJaWYgKGJvID09IE5VTEwpCiAJCXJldHVybiAtRU5PTUVNOwpAQCAtMjMwLDggKzIyNiw4 IEBAIGludCByYWRlb25fYm9fY3JlYXRlKHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2LAogCS8q IEtlcm5lbCBhbGxvY2F0aW9uIGFyZSB1bmludGVycnVwdGlibGUgKi8KIAlkb3duX3JlYWQoJnJk ZXYtPnBtLm1jbGtfbG9jayk7CiAJciA9IHR0bV9ib19pbml0KCZyZGV2LT5tbWFuLmJkZXYsICZi by0+dGJvLCBzaXplLCB0eXBlLAotCQkJJmJvLT5wbGFjZW1lbnQsIHBhZ2VfYWxpZ24sICFrZXJu ZWwsIGFjY19zaXplLAotCQkJc2csIHJlc3YsICZyYWRlb25fdHRtX2JvX2Rlc3Ryb3kpOworCQkJ JmJvLT5wbGFjZW1lbnQsIHBhZ2VfYWxpZ24sICFrZXJuZWwsIHNnLCByZXN2LAorCQkJJnJhZGVv bl90dG1fYm9fZGVzdHJveSk7CiAJdXBfcmVhZCgmcmRldi0+cG0ubWNsa19sb2NrKTsKIAlpZiAo dW5saWtlbHkociAhPSAwKSkgewogCQlyZXR1cm4gcjsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS90dG0vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL01ha2VmaWxlCmluZGV4IDhl NjQzN2VhZGFiZS4uNDBlNWU5ZGE3OTUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRt L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vTWFrZWZpbGUKQEAgLTIsMTAgKzIs OSBAQAogIwogIyBNYWtlZmlsZSBmb3IgdGhlIGRybSBkZXZpY2UgZHJpdmVyLiAgVGhpcyBkcml2 ZXIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgdGhlCiAKLXR0bS15IDo9IHR0bV9tZW1vcnkubyB0dG1f dHQubyB0dG1fYm8ubyBcCi0JdHRtX2JvX3V0aWwubyB0dG1fYm9fdm0ubyB0dG1fbW9kdWxlLm8g XAotCXR0bV9leGVjYnVmX3V0aWwubyB0dG1fcmFuZ2VfbWFuYWdlci5vIFwKLQl0dG1fcmVzb3Vy Y2UubyB0dG1fcG9vbC5vIHR0bV9kZXZpY2UubwordHRtLXkgOj0gdHRtX3R0Lm8gdHRtX2JvLm8g dHRtX2JvX3V0aWwubyB0dG1fYm9fdm0ubyB0dG1fbW9kdWxlLm8gXAorCXR0bV9leGVjYnVmX3V0 aWwubyB0dG1fcmFuZ2VfbWFuYWdlci5vIHR0bV9yZXNvdXJjZS5vIHR0bV9wb29sLm8gXAorCXR0 bV9kZXZpY2UubwogdHRtLSQoQ09ORklHX0FHUCkgKz0gdHRtX2FncF9iYWNrZW5kLm8KIAogb2Jq LSQoQ09ORklHX0RSTV9UVE0pICs9IHR0bS5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v dHRtL3R0bV9iby5jIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwppbmRleCA2NDNiZWZj MWE2ZjIuLmUzODEwMjI4MmZkNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1f Ym8uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9iby5jCkBAIC00MjUsNyArNDI1LDYg QEAgc3RhdGljIHZvaWQgdHRtX2JvX3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCiAJc3RydWN0 IHR0bV9idWZmZXJfb2JqZWN0ICpibyA9CiAJICAgIGNvbnRhaW5lcl9vZihrcmVmLCBzdHJ1Y3Qg dHRtX2J1ZmZlcl9vYmplY3QsIGtyZWYpOwogCXN0cnVjdCB0dG1fZGV2aWNlICpiZGV2ID0gYm8t PmJkZXY7Ci0Jc2l6ZV90IGFjY19zaXplID0gYm8tPmFjY19zaXplOwogCWludCByZXQ7CiAKIAlp ZiAoIWJvLT5kZWxldGVkKSB7CkBAIC00ODUsNyArNDg0LDYgQEAgc3RhdGljIHZvaWQgdHRtX2Jv X3JlbGVhc2Uoc3RydWN0IGtyZWYgKmtyZWYpCiAJaWYgKCF0dG1fYm9fdXNlc19lbWJlZGRlZF9n ZW1fb2JqZWN0KGJvKSkKIAkJZG1hX3Jlc3ZfZmluaSgmYm8tPmJhc2UuX3Jlc3YpOwogCWJvLT5k ZXN0cm95KGJvKTsKLQl0dG1fbWVtX2dsb2JhbF9mcmVlKCZ0dG1fbWVtX2dsb2IsIGFjY19zaXpl KTsKIH0KIAogdm9pZCB0dG1fYm9fcHV0KHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8pCkBA IC0xMDQ2LDI1ICsxMDQ0LDEzIEBAIGludCB0dG1fYm9faW5pdF9yZXNlcnZlZChzdHJ1Y3QgdHRt X2RldmljZSAqYmRldiwKIAkJCSBzdHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGxhY2VtZW50LAogCQkJ IHVpbnQzMl90IHBhZ2VfYWxpZ25tZW50LAogCQkJIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAq Y3R4LAotCQkJIHNpemVfdCBhY2Nfc2l6ZSwKIAkJCSBzdHJ1Y3Qgc2dfdGFibGUgKnNnLAogCQkJ IHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKIAkJCSB2b2lkICgqZGVzdHJveSkgKHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqKSkKIHsKLQlzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgKm1lbV9nbG9iID0g JnR0bV9tZW1fZ2xvYjsKIAlib29sIGxvY2tlZDsKIAlpbnQgcmV0ID0gMDsKIAotCXJldCA9IHR0 bV9tZW1fZ2xvYmFsX2FsbG9jKG1lbV9nbG9iLCBhY2Nfc2l6ZSwgY3R4KTsKLQlpZiAocmV0KSB7 Ci0JCXByX2VycigiT3V0IG9mIGtlcm5lbCBtZW1vcnlcbiIpOwotCQlpZiAoZGVzdHJveSkKLQkJ CSgqZGVzdHJveSkoYm8pOwotCQllbHNlCi0JCQlrZnJlZShibyk7Ci0JCXJldHVybiAtRU5PTUVN OwotCX0KLQogCWJvLT5kZXN0cm95ID0gZGVzdHJveSA/IGRlc3Ryb3kgOiB0dG1fYm9fZGVmYXVs dF9kZXN0cm95OwogCiAJa3JlZl9pbml0KCZiby0+a3JlZik7CkBAIC0xMDgxLDcgKzEwNjcsNiBA QCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCiAJYm8t Pm1lbS5idXMuYWRkciA9IE5VTEw7CiAJYm8tPm1vdmluZyA9IE5VTEw7CiAJYm8tPm1lbS5wbGFj ZW1lbnQgPSAwOwotCWJvLT5hY2Nfc2l6ZSA9IGFjY19zaXplOwogCWJvLT5waW5fY291bnQgPSAw OwogCWJvLT5zZyA9IHNnOwogCWlmIChyZXN2KSB7CkBAIC0xMTQyLDcgKzExMjcsNiBAQCBpbnQg dHRtX2JvX2luaXQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCiAJCXN0cnVjdCB0dG1fcGxhY2Vt ZW50ICpwbGFjZW1lbnQsCiAJCXVpbnQzMl90IHBhZ2VfYWxpZ25tZW50LAogCQlib29sIGludGVy cnVwdGlibGUsCi0JCXNpemVfdCBhY2Nfc2l6ZSwKIAkJc3RydWN0IHNnX3RhYmxlICpzZywKIAkJ c3RydWN0IGRtYV9yZXN2ICpyZXN2LAogCQl2b2lkICgqZGVzdHJveSkgKHN0cnVjdCB0dG1fYnVm ZmVyX29iamVjdCAqKSkKQEAgLTExNTEsOCArMTEzNSw3IEBAIGludCB0dG1fYm9faW5pdChzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldiwKIAlpbnQgcmV0OwogCiAJcmV0ID0gdHRtX2JvX2luaXRfcmVz ZXJ2ZWQoYmRldiwgYm8sIHNpemUsIHR5cGUsIHBsYWNlbWVudCwKLQkJCQkgICBwYWdlX2FsaWdu bWVudCwgJmN0eCwgYWNjX3NpemUsCi0JCQkJICAgc2csIHJlc3YsIGRlc3Ryb3kpOworCQkJCSAg IHBhZ2VfYWxpZ25tZW50LCAmY3R4LCBzZywgcmVzdiwgZGVzdHJveSk7CiAJaWYgKHJldCkKIAkJ cmV0dXJuIHJldDsKIApAQCAtMTE2MywyMCArMTE0Niw2IEBAIGludCB0dG1fYm9faW5pdChzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldiwKIH0KIEVYUE9SVF9TWU1CT0wodHRtX2JvX2luaXQpOwogCi1z aXplX3QgdHRtX2JvX2RtYV9hY2Nfc2l6ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKLQkJCSAg IHVuc2lnbmVkIGxvbmcgYm9fc2l6ZSwKLQkJCSAgIHVuc2lnbmVkIHN0cnVjdF9zaXplKQotewot CXVuc2lnbmVkIG5wYWdlcyA9IChQQUdFX0FMSUdOKGJvX3NpemUpKSA+PiBQQUdFX1NISUZUOwot CXNpemVfdCBzaXplID0gMDsKLQotCXNpemUgKz0gdHRtX3JvdW5kX3BvdChzdHJ1Y3Rfc2l6ZSk7 Ci0Jc2l6ZSArPSB0dG1fcm91bmRfcG90KG5wYWdlcyAqICgyKnNpemVvZih2b2lkICopICsgc2l6 ZW9mKGRtYV9hZGRyX3QpKSk7Ci0Jc2l6ZSArPSB0dG1fcm91bmRfcG90KHNpemVvZihzdHJ1Y3Qg dHRtX3R0KSk7Ci0JcmV0dXJuIHNpemU7Ci19Ci1FWFBPUlRfU1lNQk9MKHR0bV9ib19kbWFfYWNj X3NpemUpOwotCiAvKgogICogYnVmZmVyIG9iamVjdCB2bSBmdW5jdGlvbnMuCiAgKi8KZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYyBiL2RyaXZlcnMvZ3B1L2Ry bS90dG0vdHRtX2JvX3V0aWwuYwppbmRleCBkYjBmMjY2MWQ1MDQuLjAzMWU1ODE5ZmVjNCAxMDA2 NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm9fdXRpbC5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYwpAQCAtMzA5LDcgKzMwOSw2IEBAIHN0YXRpYyBpbnQg dHRtX2J1ZmZlcl9vYmplY3RfdHJhbnNmZXIoc3RydWN0IHR0bV9idWZmZXJfb2JqZWN0ICpibywK IAogCWtyZWZfaW5pdCgmZmJvLT5iYXNlLmtyZWYpOwogCWZiby0+YmFzZS5kZXN0cm95ID0gJnR0 bV90cmFuc2ZlcmVkX2Rlc3Ryb3k7Ci0JZmJvLT5iYXNlLmFjY19zaXplID0gMDsKIAlmYm8tPmJh c2UucGluX2NvdW50ID0gMDsKIAlpZiAoYm8tPnR5cGUgIT0gdHRtX2JvX3R5cGVfc2cpCiAJCWZi by0+YmFzZS5iYXNlLnJlc3YgPSAmZmJvLT5iYXNlLmJhc2UuX3Jlc3Y7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9kZXZpY2UuYyBiL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRt X2RldmljZS5jCmluZGV4IGFjMDkwM2M5ZTYwYS4uYjllYWUzNTJhZWY4IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9kZXZpY2UuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9kZXZpY2UuYwpAQCAtMjcsOSArMjcsMTIgQEAKIAogI2RlZmluZSBwcl9mbXQoZm10KSAi W1RUTSBERVZJQ0VdICIgZm10CiAKKyNpbmNsdWRlIDxsaW51eC9tbS5oPgorCiAjaW5jbHVkZSA8 ZHJtL3R0bS90dG1fZGV2aWNlLmg+Ci0jaW5jbHVkZSA8ZHJtL3R0bS90dG1fbWVtb3J5Lmg+Cisj aW5jbHVkZSA8ZHJtL3R0bS90dG1fdHQuaD4KICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9wbGFjZW1l bnQuaD4KKyNpbmNsdWRlIDxkcm0vdHRtL3R0bV9ib19hcGkuaD4KIAogI2luY2x1ZGUgInR0bV9t b2R1bGUuaCIKIApAQCAtNDksOSArNTIsMTEgQEAgc3RhdGljIHZvaWQgdHRtX2dsb2JhbF9yZWxl YXNlKHZvaWQpCiAJaWYgKC0tdHRtX2dsb2JfdXNlX2NvdW50ID4gMCkKIAkJZ290byBvdXQ7CiAK Kwl0dG1fcG9vbF9tZ3JfZmluaSgpOworCXR0bV90dF9tZ3JfZmluaSgpOworCiAJa29iamVjdF9k ZWwoJmdsb2ItPmtvYmopOwogCWtvYmplY3RfcHV0KCZnbG9iLT5rb2JqKTsKLQl0dG1fbWVtX2ds b2JhbF9yZWxlYXNlKCZ0dG1fbWVtX2dsb2IpOwogCV9fZnJlZV9wYWdlKGdsb2ItPmR1bW15X3Jl YWRfcGFnZSk7CiAJbWVtc2V0KGdsb2IsIDAsIHNpemVvZigqZ2xvYikpOwogb3V0OgpAQCAtNjEs NiArNjYsOCBAQCBzdGF0aWMgdm9pZCB0dG1fZ2xvYmFsX3JlbGVhc2Uodm9pZCkKIHN0YXRpYyBp bnQgdHRtX2dsb2JhbF9pbml0KHZvaWQpCiB7CiAJc3RydWN0IHR0bV9nbG9iYWwgKmdsb2IgPSAm dHRtX2dsb2I7CisJdWludDY0X3QgbnVtX3BhZ2VzOworCXN0cnVjdCBzeXNpbmZvIHNpOwogCWlu dCByZXQgPSAwOwogCXVuc2lnbmVkIGk7CiAKQEAgLTY4LDkgKzc1LDE2IEBAIHN0YXRpYyBpbnQg dHRtX2dsb2JhbF9pbml0KHZvaWQpCiAJaWYgKCsrdHRtX2dsb2JfdXNlX2NvdW50ID4gMSkKIAkJ Z290byBvdXQ7CiAKLQlyZXQgPSB0dG1fbWVtX2dsb2JhbF9pbml0KCZ0dG1fbWVtX2dsb2IpOwot CWlmIChyZXQpCi0JCWdvdG8gb3V0OworCXNpX21lbWluZm8oJnNpKTsKKworCS8qIExpbWl0IHRo ZSBudW1iZXIgb2YgcGFnZXMgaW4gdGhlIHBvb2wgdG8gYWJvdXQgNTAlIG9mIHRoZSB0b3RhbAor CSAqIHN5c3RlbSBtZW1vcnkuCisJICovCisJbnVtX3BhZ2VzID0gKHU2NClzaS50b3RhbHJhbSAq IHNpLm1lbV91bml0OworCW51bV9wYWdlcyA9IChudW1fcGFnZXMgKiA1MCAvIDEwMCkgPj4gUEFH RV9TSElGVDsKKworCXR0bV9wb29sX21ncl9pbml0KG51bV9wYWdlcyk7CisJdHRtX3R0X21ncl9p bml0KCk7CiAKIAlzcGluX2xvY2tfaW5pdCgmZ2xvYi0+bHJ1X2xvY2spOwogCWdsb2ItPmR1bW15 X3JlYWRfcGFnZSA9IGFsbG9jX3BhZ2UoX19HRlBfWkVSTyB8IEdGUF9ETUEzMik7CmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wb29sLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9wb29sLmMKaW5kZXggZTA2MTc3MTcxMTNmLi42YjBmOTU3ZDYzZDUgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3Bvb2wuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRt L3R0bV9wb29sLmMKQEAgLTQwNCwxNiArNDA0LDEwIEBAIGludCB0dG1fcG9vbF9hbGxvYyhzdHJ1 Y3QgdHRtX3Bvb2wgKnBvb2wsIHN0cnVjdCB0dG1fdHQgKnR0LAogCQkJY2FjaGluZyA9IHBhZ2Vz ICsgKDEgPDwgb3JkZXIpOwogCQl9CiAKLQkJciA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jX3BhZ2Uo JnR0bV9tZW1fZ2xvYiwgcCwKLQkJCQkJICAgICAgKDEgPDwgb3JkZXIpICogUEFHRV9TSVpFLAot CQkJCQkgICAgICBjdHgpOwotCQlpZiAocikKLQkJCWdvdG8gZXJyb3JfZnJlZV9wYWdlOwotCiAJ CWlmIChkbWFfYWRkcikgewogCQkJciA9IHR0bV9wb29sX21hcChwb29sLCBvcmRlciwgcCwgJmRt YV9hZGRyKTsKIAkJCWlmIChyKQotCQkJCWdvdG8gZXJyb3JfZ2xvYmFsX2ZyZWU7CisJCQkJZ290 byBlcnJvcl9mcmVlX3BhZ2U7CiAJCX0KIAogCQludW1fcGFnZXMgLT0gMSA8PCBvcmRlcjsKQEAg LTQyNyw5ICs0MjEsNiBAQCBpbnQgdHRtX3Bvb2xfYWxsb2Moc3RydWN0IHR0bV9wb29sICpwb29s LCBzdHJ1Y3QgdHRtX3R0ICp0dCwKIAogCXJldHVybiAwOwogCi1lcnJvcl9nbG9iYWxfZnJlZToK LQl0dG1fbWVtX2dsb2JhbF9mcmVlX3BhZ2UoJnR0bV9tZW1fZ2xvYiwgcCwgKDEgPDwgb3JkZXIp ICogUEFHRV9TSVpFKTsKLQogZXJyb3JfZnJlZV9wYWdlOgogCXR0bV9wb29sX2ZyZWVfcGFnZShw b29sLCB0dC0+Y2FjaGluZywgb3JkZXIsIHApOwogCkBAIC00NjQsOCArNDU1LDYgQEAgdm9pZCB0 dG1fcG9vbF9mcmVlKHN0cnVjdCB0dG1fcG9vbCAqcG9vbCwgc3RydWN0IHR0bV90dCAqdHQpCiAK IAkJb3JkZXIgPSB0dG1fcG9vbF9wYWdlX29yZGVyKHBvb2wsIHApOwogCQludW1fcGFnZXMgPSAx VUxMIDw8IG9yZGVyOwotCQl0dG1fbWVtX2dsb2JhbF9mcmVlX3BhZ2UoJnR0bV9tZW1fZ2xvYiwg cCwKLQkJCQkJIG51bV9wYWdlcyAqIFBBR0VfU0laRSk7CiAJCWlmICh0dC0+ZG1hX2FkZHJlc3Mp CiAJCQl0dG1fcG9vbF91bm1hcChwb29sLCB0dC0+ZG1hX2FkZHJlc3NbaV0sIG51bV9wYWdlcyk7 CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvTWFrZWZpbGUgYi9kcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L01ha2VmaWxlCmluZGV4IGNjNGNkY2E3MTc2ZS4uOGMwMmZhNTg1MmU3 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L01ha2VmaWxlCisrKyBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvTWFrZWZpbGUKQEAgLTksNyArOSw3IEBAIHZtd2dmeC15IDo9IHZt d2dmeF9leGVjYnVmLm8gdm13Z2Z4X2dtci5vIHZtd2dmeF9rbXMubyB2bXdnZnhfZHJ2Lm8gXAog CSAgICB2bXdnZnhfY290YWJsZS5vIHZtd2dmeF9zby5vIHZtd2dmeF9iaW5kaW5nLm8gdm13Z2Z4 X21zZy5vIFwKIAkgICAgdm13Z2Z4X3NpbXBsZV9yZXNvdXJjZS5vIHZtd2dmeF92YS5vIHZtd2dm eF9ibGl0Lm8gXAogCSAgICB2bXdnZnhfdmFsaWRhdGlvbi5vIHZtd2dmeF9wYWdlX2RpcnR5Lm8g dm13Z2Z4X3N0cmVhbW91dHB1dC5vIFwKLQkgICAgdHRtX29iamVjdC5vIHR0bV9sb2NrLm8KKwkg ICAgdHRtX29iamVjdC5vIHR0bV9sb2NrLm8gdHRtX21lbW9yeS5vCiAKIHZtd2dmeC0kKENPTkZJ R19UUkFOU1BBUkVOVF9IVUdFUEFHRSkgKz0gdm13Z2Z4X3RocC5vCiBvYmotJChDT05GSUdfRFJN X1ZNV0dGWCkgOj0gdm13Z2Z4Lm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRt X21lbW9yeS5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fbWVtb3J5LmMKc2ltaWxhcml0 eSBpbmRleCA5NyUKcmVuYW1lIGZyb20gZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fbWVtb3J5LmMK cmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdHRtX21lbW9yeS5jCmluZGV4IDYzNGE4 NWMyZGM0Yy4uMTMwNmQ5ZTBmMDk1IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV9tZW1vcnkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9tZW1vcnkuYwpAQCAt MjgsNyArMjgsNiBAQAogCiAjZGVmaW5lIHByX2ZtdChmbXQpICJbVFRNXSAiIGZtdAogCi0jaW5j bHVkZSA8ZHJtL3R0bS90dG1fbWVtb3J5Lmg+CiAjaW5jbHVkZSA8bGludXgvc3BpbmxvY2suaD4K ICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUgPGxpbnV4L3dhaXQuaD4KQEAgLTM2 LDEwICszNSwxMSBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgogI2luY2x1ZGUgPGxpbnV4 L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9zd2FwLmg+Ci0jaW5jbHVkZSA8ZHJtL3R0bS90dG1f cG9vbC5oPgotI2luY2x1ZGUgPGRybS90dG0vdHRtX3R0Lmg+CiAKLSNpbmNsdWRlICJ0dG1fbW9k dWxlLmgiCisjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4KKyNpbmNsdWRlIDxkcm0vZHJtX2Zp bGUuaD4KKworI2luY2x1ZGUgInR0bV9tZW1vcnkuaCIKIAogI2RlZmluZSBUVE1fTUVNT1JZX0FM TE9DX1JFVFJJRVMgNAogCkBAIC00MTQsNyArNDE0LDcgQEAgc3RhdGljIGludCB0dG1fbWVtX2lu aXRfZG1hMzJfem9uZShzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgKmdsb2IsCiB9CiAjZW5kaWYKIAot aW50IHR0bV9tZW1fZ2xvYmFsX2luaXQoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iKQoraW50 IHR0bV9tZW1fZ2xvYmFsX2luaXQoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iLCBzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBzeXNpbmZvIHNpOwogCWludCByZXQ7CkBAIC00 MjUsNyArNDI1LDggQEAgaW50IHR0bV9tZW1fZ2xvYmFsX2luaXQoc3RydWN0IHR0bV9tZW1fZ2xv YmFsICpnbG9iKQogCWdsb2ItPnN3YXBfcXVldWUgPSBjcmVhdGVfc2luZ2xldGhyZWFkX3dvcmtx dWV1ZSgidHRtX3N3YXAiKTsKIAlJTklUX1dPUksoJmdsb2ItPndvcmssIHR0bV9zaHJpbmtfd29y ayk7CiAJcmV0ID0ga29iamVjdF9pbml0X2FuZF9hZGQoCi0JCSZnbG9iLT5rb2JqLCAmdHRtX21l bV9nbG9iX2tvYmpfdHlwZSwgdHRtX2dldF9rb2JqKCksICJtZW1vcnlfYWNjb3VudGluZyIpOwor CQkmZ2xvYi0+a29iaiwgJnR0bV9tZW1fZ2xvYl9rb2JqX3R5cGUsICZkZXYtPnByaW1hcnktPmtk ZXYtPmtvYmosCisJCSJtZW1vcnlfYWNjb3VudGluZyIpOwogCWlmICh1bmxpa2VseShyZXQgIT0g MCkpIHsKIAkJa29iamVjdF9wdXQoJmdsb2ItPmtvYmopOwogCQlyZXR1cm4gcmV0OwpAQCAtNDUz LDggKzQ1NCw2IEBAIGludCB0dG1fbWVtX2dsb2JhbF9pbml0KHN0cnVjdCB0dG1fbWVtX2dsb2Jh bCAqZ2xvYikKIAkJcHJfaW5mbygiWm9uZSAlN3M6IEF2YWlsYWJsZSBncmFwaGljcyBtZW1vcnk6 ICVsbHUgS2lCXG4iLAogCQkJem9uZS0+bmFtZSwgKHVuc2lnbmVkIGxvbmcgbG9uZyl6b25lLT5t YXhfbWVtID4+IDEwKTsKIAl9Ci0JdHRtX3Bvb2xfbWdyX2luaXQoZ2xvYi0+em9uZV9rZXJuZWwt Pm1heF9tZW0vKDIqUEFHRV9TSVpFKSk7Ci0JdHRtX3R0X21ncl9pbml0KCk7CiAJcmV0dXJuIDA7 CiBvdXRfbm9fem9uZToKIAl0dG1fbWVtX2dsb2JhbF9yZWxlYXNlKGdsb2IpOwpAQCAtNDY2LDEw ICs0NjUsNiBAQCB2b2lkIHR0bV9tZW1fZ2xvYmFsX3JlbGVhc2Uoc3RydWN0IHR0bV9tZW1fZ2xv YmFsICpnbG9iKQogCXN0cnVjdCB0dG1fbWVtX3pvbmUgKnpvbmU7CiAJdW5zaWduZWQgaW50IGk7 CiAKLQkvKiBsZXQgdGhlIHBhZ2UgYWxsb2NhdG9yIGZpcnN0IHN0b3AgdGhlIHNocmluayB3b3Jr LiAqLwotCXR0bV9wb29sX21ncl9maW5pKCk7Ci0JdHRtX3R0X21ncl9maW5pKCk7Ci0KIAlmbHVz aF93b3JrcXVldWUoZ2xvYi0+c3dhcF9xdWV1ZSk7CiAJZGVzdHJveV93b3JrcXVldWUoZ2xvYi0+ c3dhcF9xdWV1ZSk7CiAJZ2xvYi0+c3dhcF9xdWV1ZSA9IE5VTEw7CmRpZmYgLS1naXQgYS9pbmNs dWRlL2RybS90dG0vdHRtX21lbW9yeS5oIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fbWVt b3J5LmgKc2ltaWxhcml0eSBpbmRleCA5NyUKcmVuYW1lIGZyb20gaW5jbHVkZS9kcm0vdHRtL3R0 bV9tZW1vcnkuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fbWVtb3J5LmgK aW5kZXggYzFmMTY3ODgxZTMzLi44NTBlZTZjODY3ZGEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJt L3R0bS90dG1fbWVtb3J5LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fbWVtb3J5 LmgKQEAgLTM1LDcgKzM1LDggQEAKICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgogI2luY2x1ZGUg PGxpbnV4L2tvYmplY3QuaD4KICNpbmNsdWRlIDxsaW51eC9tbS5oPgotI2luY2x1ZGUgInR0bV9i b19hcGkuaCIKKworI2luY2x1ZGUgPGRybS90dG0vdHRtX2JvX2FwaS5oPgogCiAvKioKICAqIHN0 cnVjdCB0dG1fbWVtX2dsb2JhbCAtIEdsb2JhbCBtZW1vcnkgYWNjb3VudGluZyBzdHJ1Y3R1cmUu CkBAIC03OSw3ICs4MCw3IEBAIGV4dGVybiBzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgewogI2VuZGlm CiB9IHR0bV9tZW1fZ2xvYjsKIAotaW50IHR0bV9tZW1fZ2xvYmFsX2luaXQoc3RydWN0IHR0bV9t ZW1fZ2xvYmFsICpnbG9iKTsKK2ludCB0dG1fbWVtX2dsb2JhbF9pbml0KHN0cnVjdCB0dG1fbWVt X2dsb2JhbCAqZ2xvYiwgc3RydWN0IGRybV9kZXZpY2UgKmRldik7CiB2b2lkIHR0bV9tZW1fZ2xv YmFsX3JlbGVhc2Uoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iKTsKIGludCB0dG1fbWVtX2ds b2JhbF9hbGxvYyhzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgKmdsb2IsIHVpbnQ2NF90IG1lbW9yeSwK IAkJCSBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCk7CmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdm13Z2Z4L3R0bV9vYmplY3QuaCBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdHRt X29iamVjdC5oCmluZGV4IGVkZTI2ZGY4N2M5My4uNDliMDY0ZjBjYjE5IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9vYmplY3QuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0v dm13Z2Z4L3R0bV9vYmplY3QuaApAQCAtNDMsNyArNDMsOCBAQAogI2luY2x1ZGUgPGxpbnV4L3Jj dXBkYXRlLmg+CiAKICNpbmNsdWRlIDxkcm0vZHJtX2hhc2h0YWIuaD4KLSNpbmNsdWRlIDxkcm0v dHRtL3R0bV9tZW1vcnkuaD4KKworI2luY2x1ZGUgInR0bV9tZW1vcnkuaCIKIAogLyoqCiAgKiBl bnVtIHR0bV9yZWZfdHlwZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn ZnhfYm8uYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMKaW5kZXggNmIzYmZk OGM2NzhhLi41MGU1MjlhMDE2NzcgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS92bXdnZngv dm13Z2Z4X2JvLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYm8uYwpAQCAt NTA3LDExICs1MDcsMTYgQEAgaW50IHZtd19ib19jcmVhdGVfa2VybmVsKHN0cnVjdCB2bXdfcHJp dmF0ZSAqZGV2X3ByaXYsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKIAlhY2Nfc2l6ZSA9IHR0bV9yb3Vu ZF9wb3Qoc2l6ZW9mKCpibykpOwogCWFjY19zaXplICs9IHR0bV9yb3VuZF9wb3QobnBhZ2VzICog c2l6ZW9mKHZvaWQgKikpOwogCWFjY19zaXplICs9IHR0bV9yb3VuZF9wb3Qoc2l6ZW9mKHN0cnVj dCB0dG1fdHQpKTsKKworCXJldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jKCZ0dG1fbWVtX2dsb2Is IGFjY19zaXplLCAmY3R4KTsKKwlpZiAodW5saWtlbHkocmV0KSkKKwkJZ290byBlcnJvcl9mcmVl OworCiAJcmV0ID0gdHRtX2JvX2luaXRfcmVzZXJ2ZWQoJmRldl9wcml2LT5iZGV2LCBibywgc2l6 ZSwKIAkJCQkgICB0dG1fYm9fdHlwZV9kZXZpY2UsIHBsYWNlbWVudCwgMCwKLQkJCQkgICAmY3R4 LCBhY2Nfc2l6ZSwgTlVMTCwgTlVMTCwgTlVMTCk7CisJCQkJICAgJmN0eCwgTlVMTCwgTlVMTCwg TlVMTCk7CiAJaWYgKHVubGlrZWx5KHJldCkpCi0JCWdvdG8gZXJyb3JfZnJlZTsKKwkJZ290byBl cnJvcl9hY2NvdW50OwogCiAJdHRtX2JvX3Bpbihibyk7CiAJdHRtX2JvX3VucmVzZXJ2ZShibyk7 CkBAIC01MTksNiArNTI0LDkgQEAgaW50IHZtd19ib19jcmVhdGVfa2VybmVsKHN0cnVjdCB2bXdf cHJpdmF0ZSAqZGV2X3ByaXYsIHVuc2lnbmVkIGxvbmcgc2l6ZSwKIAogCXJldHVybiAwOwogCitl cnJvcl9hY2NvdW50OgorCXR0bV9tZW1fZ2xvYmFsX2ZyZWUoJnR0bV9tZW1fZ2xvYiwgYWNjX3Np emUpOworCiBlcnJvcl9mcmVlOgogCWtmcmVlKGJvKTsKIAlyZXR1cm4gcmV0OwpAQCAtNTU4LDEx ICs1NjYsMTcgQEAgaW50IHZtd19ib19pbml0KHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYs CiAJdm13X2JvLT5iYXNlLnByaW9yaXR5ID0gMzsKIAl2bXdfYm8tPnJlc190cmVlID0gUkJfUk9P VDsKIAorCXJldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jKCZ0dG1fbWVtX2dsb2IsIGFjY19zaXpl LCAmY3R4KTsKKwlpZiAodW5saWtlbHkocmV0KSkKKwkJcmV0dXJuIHJldDsKKwogCXJldCA9IHR0 bV9ib19pbml0X3Jlc2VydmVkKGJkZXYsICZ2bXdfYm8tPmJhc2UsIHNpemUsCiAJCQkJICAgdHRt X2JvX3R5cGVfZGV2aWNlLCBwbGFjZW1lbnQsCi0JCQkJICAgMCwgJmN0eCwgYWNjX3NpemUsIE5V TEwsIE5VTEwsIGJvX2ZyZWUpOwotCWlmICh1bmxpa2VseShyZXQpKQorCQkJCSAgIDAsICZjdHgs IE5VTEwsIE5VTEwsIGJvX2ZyZWUpOworCWlmICh1bmxpa2VseShyZXQpKSB7CisJCXR0bV9tZW1f Z2xvYmFsX2ZyZWUoJnR0bV9tZW1fZ2xvYiwgYWNjX3NpemUpOwogCQlyZXR1cm4gcmV0OworCX0K IAogCWlmIChwaW4pCiAJCXR0bV9ib19waW4oJnZtd19iby0+YmFzZSk7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdn Zngvdm13Z2Z4X2Rydi5jCmluZGV4IDcxMGJhNTE2OWE3NC4uY2E1OWE4NzlmMGYwIDEwMDY0NAot LS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuYworKysgYi9kcml2ZXJzL2dw dS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuYwpAQCAtMTI2OCw2ICsxMjY4LDcgQEAgc3RhdGljIHZv aWQgdm13X3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldikKIHsKIAlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOwogCisJdHRtX21lbV9nbG9iYWxfcmVsZWFz ZSgmdHRtX21lbV9nbG9iKTsKIAlkcm1fZGV2X3VucmVnaXN0ZXIoZGV2KTsKIAl2bXdfZHJpdmVy X3VubG9hZChkZXYpOwogfQpAQCAtMTUxMSw2ICsxNTEyLDEwIEBAIHN0YXRpYyBpbnQgdm13X3By b2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1Y3QgcGNpX2RldmljZV9pZCAqZW50 KQogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKKwlyZXQgPSB0dG1fbWVtX2dsb2JhbF9pbml0 KCZ0dG1fbWVtX2dsb2IsICZ2bXctPmRybSk7CisJaWYgKHJldCkKKwkJcmV0dXJuIHJldDsKKwog CXZtdyA9IGRldm1fZHJtX2Rldl9hbGxvYygmcGRldi0+ZGV2LCAmZHJpdmVyLAogCQkJCSBzdHJ1 Y3Qgdm13X3ByaXZhdGUsIGRybSk7CiAJaWYgKElTX0VSUih2bXcpKQpkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2J1ZmZlci5jIGIvZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC92bXdnZnhfdHRtX2J1ZmZlci5jCmluZGV4IGQxYmZhNTk1NzlmMS4uNjNmMTBjODY1 MDYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF90dG1fYnVmZmVy LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2J1ZmZlci5jCkBAIC01 NzYsMTEgKzU3NiwzMSBAQCBzdGF0aWMgdm9pZCB2bXdfdHRtX2Rlc3Ryb3koc3RydWN0IHR0bV9k ZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSkKIHN0YXRpYyBpbnQgdm13X3R0bV9wb3B1 bGF0ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKIAkJCSAgICBzdHJ1Y3QgdHRtX3R0ICp0dG0s IHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KQogeworCXVuc2lnbmVkIGludCBpOworCWlu dCByZXQ7CisKIAkvKiBUT0RPOiBtYXliZSBjb21wbGV0ZWx5IGRyb3AgdGhpcyA/ICovCiAJaWYg KHR0bV90dF9pc19wb3B1bGF0ZWQodHRtKSkKIAkJcmV0dXJuIDA7CiAKLQlyZXR1cm4gdHRtX3Bv b2xfYWxsb2MoJmJkZXYtPnBvb2wsIHR0bSwgY3R4KTsKKwlyZXQgPSB0dG1fcG9vbF9hbGxvYygm YmRldi0+cG9vbCwgdHRtLCBjdHgpOworCWlmIChyZXQpCisJCXJldHVybiByZXQ7CisKKwlmb3Ig KGkgPSAwOyBpIDwgdHRtLT5udW1fcGFnZXM7ICsraSkgeworCQlyZXQgPSB0dG1fbWVtX2dsb2Jh bF9hbGxvY19wYWdlKCZ0dG1fbWVtX2dsb2IsIHR0bS0+cGFnZXNbaV0sCisJCQkJCQlQQUdFX1NJ WkUsIGN0eCk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9yOworCX0KKwlyZXR1cm4gMDsKKwor ZXJyb3I6CisJd2hpbGUgKGktLSkKKwkJdHRtX21lbV9nbG9iYWxfZnJlZV9wYWdlKCZ0dG1fbWVt X2dsb2IsIHR0bS0+cGFnZXNbaV0sCisJCQkJCSBQQUdFX1NJWkUpOworCXR0bV9wb29sX2ZyZWUo JmJkZXYtPnBvb2wsIHR0bSk7CisJcmV0dXJuIHJldDsKIH0KIAogc3RhdGljIHZvaWQgdm13X3R0 bV91bnBvcHVsYXRlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LApAQCAtNTg4LDYgKzYwOCw3IEBA IHN0YXRpYyB2b2lkIHZtd190dG1fdW5wb3B1bGF0ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwK IHsKIAlzdHJ1Y3Qgdm13X3R0bV90dCAqdm13X3R0ID0gY29udGFpbmVyX29mKHR0bSwgc3RydWN0 IHZtd190dG1fdHQsCiAJCQkJCQkgZG1hX3R0bSk7CisJdW5zaWduZWQgaW50IGk7CiAKIAlpZiAo dm13X3R0LT5tb2IpIHsKIAkJdm13X21vYl9kZXN0cm95KHZtd190dC0+bW9iKTsKQEAgLTU5NSw2 ICs2MTYsMTEgQEAgc3RhdGljIHZvaWQgdm13X3R0bV91bnBvcHVsYXRlKHN0cnVjdCB0dG1fZGV2 aWNlICpiZGV2LAogCX0KIAogCXZtd190dG1fdW5tYXBfZG1hKHZtd190dCk7CisKKwlmb3IgKGkg PSAwOyBpIDwgdHRtLT5udW1fcGFnZXM7ICsraSkKKwkJdHRtX21lbV9nbG9iYWxfZnJlZV9wYWdl KCZ0dG1fbWVtX2dsb2IsIHR0bS0+cGFnZXNbaV0sCisJCQkJCSBQQUdFX1NJWkUpOworCiAJdHRt X3Bvb2xfZnJlZSgmYmRldi0+cG9vbCwgdHRtKTsKIH0KIApkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k cm0vdHRtL3R0bV9ib19hcGkuaCBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmgKaW5kZXgg MTI5N2E4ZmI3Y2NiLi40ZmI1MjNkZmFiMzIgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL3R0bS90 dG1fYm9fYXBpLmgKKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaApAQCAtODgsNyAr ODgsNiBAQCBzdHJ1Y3QgdHRtX3R0OwogICogQHR5cGU6IFRoZSBibyB0eXBlLgogICogQGRlc3Ry b3k6IERlc3RydWN0aW9uIGZ1bmN0aW9uLiBJZiBOVUxMLCBrZnJlZSBpcyB1c2VkLgogICogQG51 bV9wYWdlczogQWN0dWFsIG51bWJlciBvZiBwYWdlcy4KLSAqIEBhY2Nfc2l6ZTogQWNjb3VudGVk IHNpemUgZm9yIHRoaXMgb2JqZWN0LgogICogQGtyZWY6IFJlZmVyZW5jZSBjb3VudCBvZiB0aGlz IGJ1ZmZlciBvYmplY3QuIFdoZW4gdGhpcyByZWZjb3VudCByZWFjaGVzCiAgKiB6ZXJvLCB0aGUg b2JqZWN0IGlzIGRlc3Ryb3llZCBvciBwdXQgb24gdGhlIGRlbGF5ZWQgZGVsZXRlIGxpc3QuCiAg KiBAbWVtOiBzdHJ1Y3R1cmUgZGVzY3JpYmluZyBjdXJyZW50IHBsYWNlbWVudC4KQEAgLTEyNSw3 ICsxMjQsNiBAQCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgewogCXN0cnVjdCB0dG1fZGV2aWNl ICpiZGV2OwogCWVudW0gdHRtX2JvX3R5cGUgdHlwZTsKIAl2b2lkICgqZGVzdHJveSkgKHN0cnVj dCB0dG1fYnVmZmVyX29iamVjdCAqKTsKLQlzaXplX3QgYWNjX3NpemU7CiAKIAkvKioKIAkqIE1l bWJlcnMgbm90IG5lZWRpbmcgcHJvdGVjdGlvbi4KQEAgLTM1NywxMCArMzU1LDYgQEAgdm9pZCB0 dG1fYm9fdW5sb2NrX2RlbGF5ZWRfd29ya3F1ZXVlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LCBp bnQgcmVzY2hlZCk7CiBib29sIHR0bV9ib19ldmljdGlvbl92YWx1YWJsZShzdHJ1Y3QgdHRtX2J1 ZmZlcl9vYmplY3QgKmJvLAogCQkJICAgICAgY29uc3Qgc3RydWN0IHR0bV9wbGFjZSAqcGxhY2Up OwogCi1zaXplX3QgdHRtX2JvX2RtYV9hY2Nfc2l6ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwK LQkJCSAgIHVuc2lnbmVkIGxvbmcgYm9fc2l6ZSwKLQkJCSAgIHVuc2lnbmVkIHN0cnVjdF9zaXpl KTsKLQogLyoqCiAgKiB0dG1fYm9faW5pdF9yZXNlcnZlZAogICoKQEAgLTM3MSw3ICszNjUsNiBA QCBzaXplX3QgdHRtX2JvX2RtYV9hY2Nfc2l6ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKICAq IEBmbGFnczogSW5pdGlhbCBwbGFjZW1lbnQgZmxhZ3MuCiAgKiBAcGFnZV9hbGlnbm1lbnQ6IERh dGEgYWxpZ25tZW50IGluIHBhZ2VzLgogICogQGN0eDogVFRNIG9wZXJhdGlvbiBjb250ZXh0IGZv ciBtZW1vcnkgYWxsb2NhdGlvbi4KLSAqIEBhY2Nfc2l6ZTogQWNjb3VudGVkIHNpemUgZm9yIHRo aXMgb2JqZWN0LgogICogQHJlc3Y6IFBvaW50ZXIgdG8gYSBkbWFfcmVzdiwgb3IgTlVMTCB0byBs ZXQgdHRtIGFsbG9jYXRlIG9uZS4KICAqIEBkZXN0cm95OiBEZXN0cm95IGZ1bmN0aW9uLiBVc2Ug TlVMTCBmb3Iga2ZyZWUoKS4KICAqCkBAIC00MDIsOCArMzk1LDcgQEAgaW50IHR0bV9ib19pbml0 X3Jlc2VydmVkKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAogCQkJIHN0cnVjdCB0dG1fcGxhY2Vt ZW50ICpwbGFjZW1lbnQsCiAJCQkgdWludDMyX3QgcGFnZV9hbGlnbm1lbnQsCiAJCQkgc3RydWN0 IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgsCi0JCQkgc2l6ZV90IGFjY19zaXplLCBzdHJ1Y3Qgc2df dGFibGUgKnNnLAotCQkJIHN0cnVjdCBkbWFfcmVzdiAqcmVzdiwKKwkJCSBzdHJ1Y3Qgc2dfdGFi bGUgKnNnLCBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YsCiAJCQkgdm9pZCAoKmRlc3Ryb3kpIChzdHJ1 Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKikpOwogCiAvKioKQEAgLTQyMSw3ICs0MTMsNiBAQCBpbnQg dHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCiAgKiBob2xkcyBh IHBvaW50ZXIgdG8gYSBwZXJzaXN0ZW50IHNobWVtIG9iamVjdC4gVHlwaWNhbGx5LCB0aGlzIHdv dWxkCiAgKiBwb2ludCB0byB0aGUgc2htZW0gb2JqZWN0IGJhY2tpbmcgYSBHRU0gb2JqZWN0IGlm IFRUTSBpcyB1c2VkIHRvIGJhY2sgYQogICogR0VNIHVzZXIgaW50ZXJmYWNlLgotICogQGFjY19z aXplOiBBY2NvdW50ZWQgc2l6ZSBmb3IgdGhpcyBvYmplY3QuCiAgKiBAcmVzdjogUG9pbnRlciB0 byBhIGRtYV9yZXN2LCBvciBOVUxMIHRvIGxldCB0dG0gYWxsb2NhdGUgb25lLgogICogQGRlc3Ry b3k6IERlc3Ryb3kgZnVuY3Rpb24uIFVzZSBOVUxMIGZvciBrZnJlZSgpLgogICoKQEAgLTQ0Niw3 ICs0MzcsNyBAQCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9kZXZpY2UgKmJk ZXYsCiBpbnQgdHRtX2JvX2luaXQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqYm8sCiAJCXNpemVfdCBzaXplLCBlbnVtIHR0bV9ib190eXBlIHR5cGUs CiAJCXN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFjZW1lbnQsCi0JCXVpbnQzMl90IHBhZ2VfYWxp Z25tZW50LCBib29sIGludGVycnVidGlibGUsIHNpemVfdCBhY2Nfc2l6ZSwKKwkJdWludDMyX3Qg cGFnZV9hbGlnbm1lbnQsIGJvb2wgaW50ZXJydWJ0aWJsZSwKIAkJc3RydWN0IHNnX3RhYmxlICpz Zywgc3RydWN0IGRtYV9yZXN2ICpyZXN2LAogCQl2b2lkICgqZGVzdHJveSkgKHN0cnVjdCB0dG1f YnVmZmVyX29iamVjdCAqKSk7CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9f ZHJpdmVyLmggYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCmluZGV4IDFjOWJmOTkz ZTI1Mi4uODk1OWMwMDc1Y2ZkIDEwMDY0NAotLS0gYS9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2Ry aXZlci5oCisrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmgKQEAgLTQwLDcgKzQw LDYgQEAKICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9kZXZpY2UuaD4KIAogI2luY2x1ZGUgInR0bV9i b19hcGkuaCIKLSNpbmNsdWRlICJ0dG1fbWVtb3J5LmgiCiAjaW5jbHVkZSAidHRtX3BsYWNlbWVu dC5oIgogI2luY2x1ZGUgInR0bV90dC5oIgogI2luY2x1ZGUgInR0bV9wb29sLmgiCmRpZmYgLS1n aXQgYS9pbmNsdWRlL2RybS90dG0vdHRtX3R0LmggYi9pbmNsdWRlL2RybS90dG0vdHRtX3R0LmgK aW5kZXggY2NlNTdmYjQ5ZTJjLi4wNjlmODEzMDI0MWEgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZHJt L3R0bS90dG1fdHQuaAorKysgYi9pbmNsdWRlL2RybS90dG0vdHRtX3R0LmgKQEAgLTMwLDYgKzMw LDcgQEAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGRybS90dG0vdHRtX2Nh Y2hpbmcuaD4KIAorc3RydWN0IHR0bV9ib19kZXZpY2U7CiBzdHJ1Y3QgdHRtX3R0Owogc3RydWN0 IHR0bV9yZXNvdXJjZTsKIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdDsKLS0gCjIuMjUuMQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1h aWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==