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 C5220C433E0 for ; Tue, 26 Jan 2021 14:48:39 +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 736E722EBF for ; Tue, 26 Jan 2021 14:48:39 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 736E722EBF 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 02E4A6E431; Tue, 26 Jan 2021 14:48:37 +0000 (UTC) Received: from mail-ej1-x62c.google.com (mail-ej1-x62c.google.com [IPv6:2a00:1450:4864:20::62c]) by gabe.freedesktop.org (Postfix) with ESMTPS id DC0126E431 for ; Tue, 26 Jan 2021 14:48:33 +0000 (UTC) Received: by mail-ej1-x62c.google.com with SMTP id gx5so23294773ejb.7 for ; Tue, 26 Jan 2021 06:48:33 -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=z+k1bA+IaN5BNZkIkMhN1m9Ci3sLfnQfGl8382asU1M=; b=ncCkwEEem+konJWEHEFHfq28REc4IXg2mkVFFHya1YeCTnfLvuPKkhz2WNACOfvrp7 bf4wZUDDrdOoq8B2OgGf+Rd30rKwZbFAHOf/0MLi5AKXXgocQ0xMROtzQQFR4P+QDylD EAEpHXFZ6/SO9PmfMcc/MgWWK2Y37w7x9wQIH5aJTPlej+WESKDzPCeC+G9RsCECHxqh UvfpfkpSVSINyZeg8aON0sEtte6tIHwYAfneOxYCQQalTB35J8sEfCrs5Y60XutbqRS8 SdDqA/5rH2vJiFcfDp+u68ZrIdjxynYsiNOsQvFHkdgDc8Cv4sieQfqDOmticO+9q8iU 8nuQ== 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=z+k1bA+IaN5BNZkIkMhN1m9Ci3sLfnQfGl8382asU1M=; b=mugnnZ5/nSNEQtL++07cspQYSv0JY9nQRu7cNZ5HYZtUQVi+oW8LhWA1WeCI1euEoY +32I/RAvDLJ6wBqCJ0c9omP5SRQgfrccJ3t3fsqM5AhMnGYSum+bbbND1SJ4MMWyyDr+ G3WsbtwaqRmzUbGBwGLcsap05U30f1yuM+DchMBTDfX1QpGZUqbBp6yEiJhdzXwwNHPl PvwEWiWPw6i7PiSTADk7t0nX9JwyhmFsNobDyix1ykp5wXZLcfS0EFuMA3LblZd4M7dL s0ajcbKx1nWHYx+zTVlytiBWKwcE2wtrnkezgPfIgXy7mMQcfqOjQJL0DG7CrvWWvNyB EWjQ== X-Gm-Message-State: AOAM5300xkFVbVM1PFHQmICnatfA6kb9DEu9MOh0qPNOIOly7UdtPqrn gWJsOxiX+h5UoC8KWURPMkd/nFa/tkI= X-Google-Smtp-Source: ABdhPJytWIqr7xTW2e8aHhlaeEeqo5WmpvQDHV9uHTEa0c33QIsckI31POi9dwqGP3el5sTKCwW1Jw== X-Received: by 2002:a17:906:178d:: with SMTP id t13mr3588109eje.455.1611672512453; Tue, 26 Jan 2021 06:48:32 -0800 (PST) Received: from abel.fritz.box ([2a02:908:1252:fb60:3f0b:7c92:b3ef:fda6]) by smtp.gmail.com with ESMTPSA id dm6sm9518334ejc.32.2021.01.26.06.48.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Jan 2021 06:48:31 -0800 (PST) From: "=?UTF-8?q?Christian=20K=C3=B6nig?=" X-Google-Original-From: =?UTF-8?q?Christian=20K=C3=B6nig?= To: sroland@vmware.com, zackr@vmware.com, daniel@ffwll.ch, linux-graphics-maintainer@vmware.com, dri-devel@lists.freedesktop.org Subject: [PATCH 2/3] drm/ttm: move memory accounting into vmwgfx v2 Date: Tue, 26 Jan 2021 15:48:28 +0100 Message-Id: <20210126144829.75179-2-christian.koenig@amd.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210126144829.75179-1-christian.koenig@amd.com> References: <20210126144829.75179-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 LCBidXQgSSdtIG5vdCAxMDAlIHN1cmUgaWYgdGhpcyB3b3JrcyBhcyBleHBlY3RlZC4KCnYyOiBm aXggdHlwbyBpbiBLRkQgYW5kIGF2b2lkIDY0Yml0IGRpdmlkZQoKU2lnbmVkLW9mZi1ieTogQ2hy aXN0aWFuIEvDtm5pZyA8Y2hyaXN0aWFuLmtvZW5pZ0BhbWQuY29tPgotLS0KIC4uLi9ncHUvZHJt L2FtZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9ncHV2bS5jICB8IDE2ICsrKysrKy0tLQogZHJpdmVy cy9ncHUvZHJtL2FtZC9hbWRncHUvYW1kZ3B1X29iamVjdC5jICAgIHwgIDggKystLS0KIGRyaXZl cnMvZ3B1L2RybS9kcm1fZ2VtX3ZyYW1faGVscGVyLmMgICAgICAgICB8ICA2ICsrLS0KIGRyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfYm8uYyAgICAgICAgICB8ICA3ICsrLS0KIGRyaXZl cnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJ2LmggICAgICAgICB8ICAxIC0KIGRyaXZlcnMv Z3B1L2RybS9xeGwvcXhsX29iamVjdC5jICAgICAgICAgICAgICB8ICA0ICstLQogZHJpdmVycy9n cHUvZHJtL3JhZGVvbi9yYWRlb25fb2JqZWN0LmMgICAgICAgIHwgIDggKystLS0KIGRyaXZlcnMv Z3B1L2RybS90dG0vTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICA3ICsrLS0KIGRyaXZlcnMv Z3B1L2RybS90dG0vdHRtX2JvLmMgICAgICAgICAgICAgICAgICB8IDMzICstLS0tLS0tLS0tLS0t LS0tLS0KIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYyAgICAgICAgICAgICB8ICAx IC0KIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2RldmljZS5jICAgICAgICAgICAgICB8IDIyICsr KysrKysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3Bvb2wuYyAgICAgICAgICAgICAg ICB8IDEzICstLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L01ha2VmaWxlICAgICAgICAg ICAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL3t0dG0gPT4gdm13Z2Z4fS90dG1fbWVtb3J5 LmMgIHwgMTkgKysrKy0tLS0tLS0KIC4uLi9ncHUvZHJtL3Ztd2dmeH0vdHRtX21lbW9yeS5oICAg ICAgICAgICAgICB8ICA1ICstLQogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90dG1fb2JqZWN0Lmgg ICAgICAgICAgIHwgIDMgKy0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMgICAg ICAgICAgICB8IDIyICsrKysrKysrKystLS0KIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4 X2Rydi5jICAgICAgICAgICB8ICA1ICsrKwogZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhf dHRtX2J1ZmZlci5jICAgIHwgMjggKysrKysrKysrKysrKysrLQogaW5jbHVkZS9kcm0vdHRtL3R0 bV9ib19hcGkuaCAgICAgICAgICAgICAgICAgIHwgMTMgKystLS0tLS0KIGluY2x1ZGUvZHJtL3R0 bS90dG1fYm9fZHJpdmVyLmggICAgICAgICAgICAgICB8ICAxIC0KIGluY2x1ZGUvZHJtL3R0bS90 dG1fdHQuaCAgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIDIyIGZpbGVzIGNoYW5nZWQsIDEx MCBpbnNlcnRpb25zKCspLCAxMTUgZGVsZXRpb25zKC0pCiByZW5hbWUgZHJpdmVycy9ncHUvZHJt L3t0dG0gPT4gdm13Z2Z4fS90dG1fbWVtb3J5LmMgKDk3JSkKIHJlbmFtZSB7aW5jbHVkZS9kcm0v dHRtID0+IGRyaXZlcnMvZ3B1L2RybS92bXdnZnh9L3R0bV9tZW1vcnkuaCAoOTclKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYyBi L2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYwppbmRleCAw ODQ5YjY4ZTc4NGYuLmU0NDBhZjM3ZGRlOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ft ZC9hbWRncHUvYW1kZ3B1X2FtZGtmZF9ncHV2bS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9hbWQv YW1kZ3B1L2FtZGdwdV9hbWRrZmRfZ3B1dm0uYwpAQCAtMTE4LDYgKzExOCwxNiBAQCB2b2lkIGFt ZGdwdV9hbWRrZmRfZ3B1dm1faW5pdF9tZW1fbGltaXRzKHZvaWQpCiAgKi8KICNkZWZpbmUgRVNU SU1BVEVfUFRfU0laRShtZW1fc2l6ZSkgKChtZW1fc2l6ZSkgPj4gMTQpCiAKK3N0YXRpYyBzaXpl X3QgYW1kZ3B1X2FtZGtmZF9hY2Nfc2l6ZSh1aW50NjRfdCBzaXplKQoreworCXNpemUgPj49IFBB R0VfU0hJRlQ7CisJc2l6ZSAqPSBzaXplb2YoZG1hX2FkZHJfdCkgKyBzaXplb2Yodm9pZCAqKTsK KworCXJldHVybiBfX3JvdW5kdXBfcG93X29mX3R3byhzaXplb2Yoc3RydWN0IGFtZGdwdV9ibykp ICsKKwkJX19yb3VuZHVwX3Bvd19vZl90d28oc2l6ZW9mKHN0cnVjdCB0dG1fdHQpKSArCisJCVBB R0VfQUxJR04oc2l6ZSk7Cit9CisKIHN0YXRpYyBpbnQgYW1kZ3B1X2FtZGtmZF9yZXNlcnZlX21l bV9saW1pdChzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAkJdWludDY0X3Qgc2l6ZSwgdTMy IGRvbWFpbiwgYm9vbCBzZykKIHsKQEAgLTEyNiw4ICsxMzYsNyBAQCBzdGF0aWMgaW50IGFtZGdw dV9hbWRrZmRfcmVzZXJ2ZV9tZW1fbGltaXQoc3RydWN0IGFtZGdwdV9kZXZpY2UgKmFkZXYsCiAJ c2l6ZV90IGFjY19zaXplLCBzeXN0ZW1fbWVtX25lZWRlZCwgdHRtX21lbV9uZWVkZWQsIHZyYW1f bmVlZGVkOwogCWludCByZXQgPSAwOwogCi0JYWNjX3NpemUgPSB0dG1fYm9fZG1hX2FjY19zaXpl KCZhZGV2LT5tbWFuLmJkZXYsIHNpemUsCi0JCQkJICAgICAgIHNpemVvZihzdHJ1Y3QgYW1kZ3B1 X2JvKSk7CisJYWNjX3NpemUgPSBhbWRncHVfYW1ka2ZkX2FjY19zaXplKHNpemUpOwogCiAJdnJh bV9uZWVkZWQgPSAwOwogCWlmIChkb21haW4gPT0gQU1ER1BVX0dFTV9ET01BSU5fR1RUKSB7CkBA IC0xNzQsOCArMTgzLDcgQEAgc3RhdGljIHZvaWQgdW5yZXNlcnZlX21lbV9saW1pdChzdHJ1Y3Qg YW1kZ3B1X2RldmljZSAqYWRldiwKIHsKIAlzaXplX3QgYWNjX3NpemU7CiAKLQlhY2Nfc2l6ZSA9 IHR0bV9ib19kbWFfYWNjX3NpemUoJmFkZXYtPm1tYW4uYmRldiwgc2l6ZSwKLQkJCQkgICAgICAg c2l6ZW9mKHN0cnVjdCBhbWRncHVfYm8pKTsKKwlhY2Nfc2l6ZSA9IGFtZGdwdV9hbWRrZmRfYWNj X3NpemUoc2l6ZSk7CiAKIAlzcGluX2xvY2soJmtmZF9tZW1fbGltaXQubWVtX2xpbWl0X2xvY2sp OwogCWlmIChkb21haW4gPT0gQU1ER1BVX0dFTV9ET01BSU5fR1RUKSB7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMgYi9kcml2ZXJzL2dwdS9k cm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKaW5kZXggNmNjOTkxOWIxMmNjLi41OTljOWEx MzJlYjYgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9hbWQvYW1kZ3B1L2FtZGdwdV9vYmpl Y3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vYW1kL2FtZGdwdS9hbWRncHVfb2JqZWN0LmMKQEAg LTUyMyw3ICs1MjMsNiBAQCBzdGF0aWMgaW50IGFtZGdwdV9ib19kb19jcmVhdGUoc3RydWN0IGFt ZGdwdV9kZXZpY2UgKmFkZXYsCiAJfTsKIAlzdHJ1Y3QgYW1kZ3B1X2JvICpibzsKIAl1bnNpZ25l ZCBsb25nIHBhZ2VfYWxpZ24sIHNpemUgPSBicC0+c2l6ZTsKLQlzaXplX3QgYWNjX3NpemU7CiAJ aW50IHI7CiAKIAkvKiBOb3RlIHRoYXQgR0RTL0dXUy9PQSBhbGxvY2F0ZXMgMSBwYWdlIHBlciBi eXRlL3Jlc291cmNlLiAqLwpAQCAtNTQ2LDkgKzU0NSw2IEBAIHN0YXRpYyBpbnQgYW1kZ3B1X2Jv X2RvX2NyZWF0ZShzdHJ1Y3QgYW1kZ3B1X2RldmljZSAqYWRldiwKIAogCSpib19wdHIgPSBOVUxM OwogCi0JYWNjX3NpemUgPSB0dG1fYm9fZG1hX2FjY19zaXplKCZhZGV2LT5tbWFuLmJkZXYsIHNp emUsCi0JCQkJICAgICAgIHNpemVvZihzdHJ1Y3QgYW1kZ3B1X2JvKSk7Ci0KIAlibyA9IGt6YWxs b2Moc2l6ZW9mKHN0cnVjdCBhbWRncHVfYm8pLCBHRlBfS0VSTkVMKTsKIAlpZiAoYm8gPT0gTlVM TCkKIAkJcmV0dXJuIC1FTk9NRU07CkBAIC01NzcsOCArNTczLDggQEAgc3RhdGljIGludCBhbWRn cHVfYm9fZG9fY3JlYXRlKHN0cnVjdCBhbWRncHVfZGV2aWNlICphZGV2LAogCQliby0+dGJvLnBy aW9yaXR5ID0gMTsKIAogCXIgPSB0dG1fYm9faW5pdF9yZXNlcnZlZCgmYWRldi0+bW1hbi5iZGV2 LCAmYm8tPnRibywgc2l6ZSwgYnAtPnR5cGUsCi0JCQkJICZiby0+cGxhY2VtZW50LCBwYWdlX2Fs aWduLCAmY3R4LCBhY2Nfc2l6ZSwKLQkJCQkgTlVMTCwgYnAtPnJlc3YsICZhbWRncHVfYm9fZGVz dHJveSk7CisJCQkJICZiby0+cGxhY2VtZW50LCBwYWdlX2FsaWduLCAmY3R4LCAgTlVMTCwKKwkJ CQkgYnAtPnJlc3YsICZhbWRncHVfYm9fZGVzdHJveSk7CiAJaWYgKHVubGlrZWx5KHIgIT0gMCkp CiAJCXJldHVybiByOwogCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFt X2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9nZW1fdnJhbV9oZWxwZXIuYwppbmRleCAw YjEzYzg1MDc2ODguLmEwOTkyZjBiOGFmZCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9nZW1fdnJhbV9oZWxwZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2dlbV92cmFtX2hl bHBlci5jCkBAIC0xODksNyArMTg5LDYgQEAgc3RydWN0IGRybV9nZW1fdnJhbV9vYmplY3QgKmRy bV9nZW1fdnJhbV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlzdHJ1Y3QgZHJtX3Zy YW1fbW0gKnZtbSA9IGRldi0+dnJhbV9tbTsKIAlzdHJ1Y3QgdHRtX2RldmljZSAqYmRldjsKIAlp bnQgcmV0OwotCXNpemVfdCBhY2Nfc2l6ZTsKIAogCWlmIChXQVJOX09OQ0UoIXZtbSwgIlZSQU0g TU0gbm90IGluaXRpYWxpemVkIikpCiAJCXJldHVybiBFUlJfUFRSKC1FSU5WQUwpOwpAQCAtMjE2 LDcgKzIxNSw2IEBAIHN0cnVjdCBkcm1fZ2VtX3ZyYW1fb2JqZWN0ICpkcm1fZ2VtX3ZyYW1fY3Jl YXRlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJfQogCiAJYmRldiA9ICZ2bW0tPmJkZXY7Ci0J YWNjX3NpemUgPSB0dG1fYm9fZG1hX2FjY19zaXplKGJkZXYsIHNpemUsIHNpemVvZigqZ2JvKSk7 CiAKIAlnYm8tPmJvLmJkZXYgPSBiZGV2OwogCWRybV9nZW1fdnJhbV9wbGFjZW1lbnQoZ2JvLCBE Uk1fR0VNX1ZSQU1fUExfRkxBR19TWVNURU0pOwpAQCAtMjI2LDggKzIyNCw4IEBAIHN0cnVjdCBk cm1fZ2VtX3ZyYW1fb2JqZWN0ICpkcm1fZ2VtX3ZyYW1fY3JlYXRlKHN0cnVjdCBkcm1fZGV2aWNl ICpkZXYsCiAJICogdG8gcmVsZWFzZSBnYm8tPmJvLmJhc2UgYW5kIGtmcmVlIGdiby4KIAkgKi8K IAlyZXQgPSB0dG1fYm9faW5pdChiZGV2LCAmZ2JvLT5ibywgc2l6ZSwgdHRtX2JvX3R5cGVfZGV2 aWNlLAotCQkJICAmZ2JvLT5wbGFjZW1lbnQsIHBnX2FsaWduLCBmYWxzZSwgYWNjX3NpemUsCi0J CQkgIE5VTEwsIE5VTEwsIHR0bV9idWZmZXJfb2JqZWN0X2Rlc3Ryb3kpOworCQkJICAmZ2JvLT5w bGFjZW1lbnQsIHBnX2FsaWduLCBmYWxzZSwgTlVMTCwgTlVMTCwKKwkJCSAgdHRtX2J1ZmZlcl9v YmplY3RfZGVzdHJveSk7CiAJaWYgKHJldCkKIAkJcmV0dXJuIEVSUl9QVFIocmV0KTsKIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jIGIvZHJpdmVycy9n cHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jCmluZGV4IGMxNzc5NDBkNmUyYy4uY2EyYThhZTE5 MzhlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2JvLmMKKysr IGIvZHJpdmVycy9ncHUvZHJtL25vdXZlYXUvbm91dmVhdV9iby5jCkBAIC0zMDAsMTggKzMwMCwx NSBAQCBub3V2ZWF1X2JvX2luaXQoc3RydWN0IG5vdXZlYXVfYm8gKm52Ym8sIHU2NCBzaXplLCBp bnQgYWxpZ24sIHUzMiBkb21haW4sCiAJCXN0cnVjdCBzZ190YWJsZSAqc2csIHN0cnVjdCBkbWFf cmVzdiAqcm9iaikKIHsKIAlpbnQgdHlwZSA9IHNnID8gdHRtX2JvX3R5cGVfc2cgOiB0dG1fYm9f dHlwZV9kZXZpY2U7Ci0Jc2l6ZV90IGFjY19zaXplOwogCWludCByZXQ7CiAKLQlhY2Nfc2l6ZSA9 IHR0bV9ib19kbWFfYWNjX3NpemUobnZiby0+Ym8uYmRldiwgc2l6ZSwgc2l6ZW9mKCpudmJvKSk7 Ci0KIAludmJvLT5iby5tZW0ubnVtX3BhZ2VzID0gc2l6ZSA+PiBQQUdFX1NISUZUOwogCW5vdXZl YXVfYm9fcGxhY2VtZW50X3NldChudmJvLCBkb21haW4sIDApOwogCUlOSVRfTElTVF9IRUFEKCZu dmJvLT5pb19yZXNlcnZlX2xydSk7CiAKIAlyZXQgPSB0dG1fYm9faW5pdChudmJvLT5iby5iZGV2 LCAmbnZiby0+Ym8sIHNpemUsIHR5cGUsCi0JCQkgICZudmJvLT5wbGFjZW1lbnQsIGFsaWduID4+ IFBBR0VfU0hJRlQsIGZhbHNlLAotCQkJICBhY2Nfc2l6ZSwgc2csIHJvYmosIG5vdXZlYXVfYm9f ZGVsX3R0bSk7CisJCQkgICZudmJvLT5wbGFjZW1lbnQsIGFsaWduID4+IFBBR0VfU0hJRlQsIGZh bHNlLCBzZywKKwkJCSAgcm9iaiwgbm91dmVhdV9ib19kZWxfdHRtKTsKIAlpZiAocmV0KSB7CiAJ CS8qIHR0bSB3aWxsIGNhbGwgbm91dmVhdV9ib19kZWxfdHRtIGlmIGl0IGZhaWxzLi4gKi8KIAkJ cmV0dXJuIHJldDsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVf ZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vbm91dmVhdS9ub3V2ZWF1X2Rydi5oCmluZGV4IGVkZjlk MWVlOWQ1OC4uYTQ5MWMyYzFjNTZlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vbm91dmVh dS9ub3V2ZWF1X2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9ub3V2ZWF1L25vdXZlYXVfZHJ2 LmgKQEAgLTU0LDcgKzU0LDYgQEAKICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9ib19hcGkuaD4KICNp bmNsdWRlIDxkcm0vdHRtL3R0bV9ib19kcml2ZXIuaD4KICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9w bGFjZW1lbnQuaD4KLSNpbmNsdWRlIDxkcm0vdHRtL3R0bV9tZW1vcnkuaD4KIAogI2luY2x1ZGUg PGRybS9kcm1fYXVkaW9fY29tcG9uZW50Lmg+CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9xeGwvcXhsX29iamVjdC5jIGIvZHJpdmVycy9ncHUvZHJtL3F4bC9xeGxfb2JqZWN0LmMKaW5k ZXggY2VlYmM1ODgxZjY4Li43MDViNTE1MzU0OTIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9xeGwvcXhsX29iamVjdC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9xeGwvcXhsX29iamVjdC5j CkBAIC0xMzgsOCArMTM4LDggQEAgaW50IHF4bF9ib19jcmVhdGUoc3RydWN0IHF4bF9kZXZpY2Ug KnFkZXYsCiAJcXhsX3R0bV9wbGFjZW1lbnRfZnJvbV9kb21haW4oYm8sIGRvbWFpbik7CiAKIAly ID0gdHRtX2JvX2luaXRfcmVzZXJ2ZWQoJnFkZXYtPm1tYW4uYmRldiwgJmJvLT50Ym8sIHNpemUs IHR5cGUsCi0JCQkJICZiby0+cGxhY2VtZW50LCAwLCAmY3R4LCBzaXplLAotCQkJCSBOVUxMLCBO VUxMLCAmcXhsX3R0bV9ib19kZXN0cm95KTsKKwkJCQkgJmJvLT5wbGFjZW1lbnQsIDAsICZjdHgs IE5VTEwsIE5VTEwsCisJCQkJICZxeGxfdHRtX2JvX2Rlc3Ryb3kpOwogCWlmICh1bmxpa2VseShy ICE9IDApKSB7CiAJCWlmIChyICE9IC1FUkVTVEFSVFNZUykKIAkJCWRldl9lcnIocWRldi0+ZGRl di5kZXYsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3Qu YyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX29iamVjdC5jCmluZGV4IDZhMzM2Mjg0 NDY2Zi4uODA0ZjdhNDI3YmU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3Jh ZGVvbl9vYmplY3QuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9vYmplY3Qu YwpAQCAtMTU5LDcgKzE1OSw2IEBAIGludCByYWRlb25fYm9fY3JlYXRlKHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LAogCXN0cnVjdCByYWRlb25fYm8gKmJvOwogCWVudW0gdHRtX2JvX3R5cGUg dHlwZTsKIAl1bnNpZ25lZCBsb25nIHBhZ2VfYWxpZ24gPSByb3VuZHVwKGJ5dGVfYWxpZ24sIFBB R0VfU0laRSkgPj4gUEFHRV9TSElGVDsKLQlzaXplX3QgYWNjX3NpemU7CiAJaW50IHI7CiAKIAlz aXplID0gQUxJR04oc2l6ZSwgUEFHRV9TSVpFKTsKQEAgLTE3Myw5ICsxNzIsNiBAQCBpbnQgcmFk ZW9uX2JvX2NyZWF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAl9CiAJKmJvX3B0ciA9 IE5VTEw7CiAKLQlhY2Nfc2l6ZSA9IHR0bV9ib19kbWFfYWNjX3NpemUoJnJkZXYtPm1tYW4uYmRl diwgc2l6ZSwKLQkJCQkgICAgICAgc2l6ZW9mKHN0cnVjdCByYWRlb25fYm8pKTsKLQogCWJvID0g a3phbGxvYyhzaXplb2Yoc3RydWN0IHJhZGVvbl9ibyksIEdGUF9LRVJORUwpOwogCWlmIChibyA9 PSBOVUxMKQogCQlyZXR1cm4gLUVOT01FTTsKQEAgLTIzMCw4ICsyMjYsOCBAQCBpbnQgcmFkZW9u X2JvX2NyZWF0ZShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiwKIAkvKiBLZXJuZWwgYWxsb2Nh dGlvbiBhcmUgdW5pbnRlcnJ1cHRpYmxlICovCiAJZG93bl9yZWFkKCZyZGV2LT5wbS5tY2xrX2xv Y2spOwogCXIgPSB0dG1fYm9faW5pdCgmcmRldi0+bW1hbi5iZGV2LCAmYm8tPnRibywgc2l6ZSwg dHlwZSwKLQkJCSZiby0+cGxhY2VtZW50LCBwYWdlX2FsaWduLCAha2VybmVsLCBhY2Nfc2l6ZSwK LQkJCXNnLCByZXN2LCAmcmFkZW9uX3R0bV9ib19kZXN0cm95KTsKKwkJCSZiby0+cGxhY2VtZW50 LCBwYWdlX2FsaWduLCAha2VybmVsLCBzZywgcmVzdiwKKwkJCSZyYWRlb25fdHRtX2JvX2Rlc3Ry b3kpOwogCXVwX3JlYWQoJnJkZXYtPnBtLm1jbGtfbG9jayk7CiAJaWYgKHVubGlrZWx5KHIgIT0g MCkpIHsKIAkJcmV0dXJuIHI7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL01ha2Vm aWxlIGIvZHJpdmVycy9ncHUvZHJtL3R0bS9NYWtlZmlsZQppbmRleCA4ZTY0MzdlYWRhYmUuLjQw ZTVlOWRhNzk1MyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL3R0bS9NYWtlZmlsZQorKysg Yi9kcml2ZXJzL2dwdS9kcm0vdHRtL01ha2VmaWxlCkBAIC0yLDEwICsyLDkgQEAKICMKICMgTWFr ZWZpbGUgZm9yIHRoZSBkcm0gZGV2aWNlIGRyaXZlci4gIFRoaXMgZHJpdmVyIHByb3ZpZGVzIHN1 cHBvcnQgZm9yIHRoZQogCi10dG0teSA6PSB0dG1fbWVtb3J5Lm8gdHRtX3R0Lm8gdHRtX2JvLm8g XAotCXR0bV9ib191dGlsLm8gdHRtX2JvX3ZtLm8gdHRtX21vZHVsZS5vIFwKLQl0dG1fZXhlY2J1 Zl91dGlsLm8gdHRtX3JhbmdlX21hbmFnZXIubyBcCi0JdHRtX3Jlc291cmNlLm8gdHRtX3Bvb2wu byB0dG1fZGV2aWNlLm8KK3R0bS15IDo9IHR0bV90dC5vIHR0bV9iby5vIHR0bV9ib191dGlsLm8g dHRtX2JvX3ZtLm8gdHRtX21vZHVsZS5vIFwKKwl0dG1fZXhlY2J1Zl91dGlsLm8gdHRtX3Jhbmdl X21hbmFnZXIubyB0dG1fcmVzb3VyY2UubyB0dG1fcG9vbC5vIFwKKwl0dG1fZGV2aWNlLm8KIHR0 bS0kKENPTkZJR19BR1ApICs9IHR0bV9hZ3BfYmFja2VuZC5vCiAKIG9iai0kKENPTkZJR19EUk1f VFRNKSArPSB0dG0ubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYyBi L2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKaW5kZXggNjQzYmVmYzFhNmYyLi5lMzgxMDIy ODJmZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX2JvLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL3R0bS90dG1fYm8uYwpAQCAtNDI1LDcgKzQyNSw2IEBAIHN0YXRpYyB2b2lk IHR0bV9ib19yZWxlYXNlKHN0cnVjdCBrcmVmICprcmVmKQogCXN0cnVjdCB0dG1fYnVmZmVyX29i amVjdCAqYm8gPQogCSAgICBjb250YWluZXJfb2Yoa3JlZiwgc3RydWN0IHR0bV9idWZmZXJfb2Jq ZWN0LCBrcmVmKTsKIAlzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiA9IGJvLT5iZGV2OwotCXNpemVf dCBhY2Nfc2l6ZSA9IGJvLT5hY2Nfc2l6ZTsKIAlpbnQgcmV0OwogCiAJaWYgKCFiby0+ZGVsZXRl ZCkgewpAQCAtNDg1LDcgKzQ4NCw2IEBAIHN0YXRpYyB2b2lkIHR0bV9ib19yZWxlYXNlKHN0cnVj dCBrcmVmICprcmVmKQogCWlmICghdHRtX2JvX3VzZXNfZW1iZWRkZWRfZ2VtX29iamVjdChibykp CiAJCWRtYV9yZXN2X2ZpbmkoJmJvLT5iYXNlLl9yZXN2KTsKIAliby0+ZGVzdHJveShibyk7Ci0J dHRtX21lbV9nbG9iYWxfZnJlZSgmdHRtX21lbV9nbG9iLCBhY2Nfc2l6ZSk7CiB9CiAKIHZvaWQg dHRtX2JvX3B1dChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvKQpAQCAtMTA0NiwyNSArMTA0 NCwxMyBAQCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYs CiAJCQkgc3RydWN0IHR0bV9wbGFjZW1lbnQgKnBsYWNlbWVudCwKIAkJCSB1aW50MzJfdCBwYWdl X2FsaWdubWVudCwKIAkJCSBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCwKLQkJCSBzaXpl X3QgYWNjX3NpemUsCiAJCQkgc3RydWN0IHNnX3RhYmxlICpzZywKIAkJCSBzdHJ1Y3QgZG1hX3Jl c3YgKnJlc3YsCiAJCQkgdm9pZCAoKmRlc3Ryb3kpIChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg KikpCiB7Ci0Jc3RydWN0IHR0bV9tZW1fZ2xvYmFsICptZW1fZ2xvYiA9ICZ0dG1fbWVtX2dsb2I7 CiAJYm9vbCBsb2NrZWQ7CiAJaW50IHJldCA9IDA7CiAKLQlyZXQgPSB0dG1fbWVtX2dsb2JhbF9h bGxvYyhtZW1fZ2xvYiwgYWNjX3NpemUsIGN0eCk7Ci0JaWYgKHJldCkgewotCQlwcl9lcnIoIk91 dCBvZiBrZXJuZWwgbWVtb3J5XG4iKTsKLQkJaWYgKGRlc3Ryb3kpCi0JCQkoKmRlc3Ryb3kpKGJv KTsKLQkJZWxzZQotCQkJa2ZyZWUoYm8pOwotCQlyZXR1cm4gLUVOT01FTTsKLQl9Ci0KIAliby0+ ZGVzdHJveSA9IGRlc3Ryb3kgPyBkZXN0cm95IDogdHRtX2JvX2RlZmF1bHRfZGVzdHJveTsKIAog CWtyZWZfaW5pdCgmYm8tPmtyZWYpOwpAQCAtMTA4MSw3ICsxMDY3LDYgQEAgaW50IHR0bV9ib19p bml0X3Jlc2VydmVkKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAogCWJvLT5tZW0uYnVzLmFkZHIg PSBOVUxMOwogCWJvLT5tb3ZpbmcgPSBOVUxMOwogCWJvLT5tZW0ucGxhY2VtZW50ID0gMDsKLQli by0+YWNjX3NpemUgPSBhY2Nfc2l6ZTsKIAliby0+cGluX2NvdW50ID0gMDsKIAliby0+c2cgPSBz ZzsKIAlpZiAocmVzdikgewpAQCAtMTE0Miw3ICsxMTI3LDYgQEAgaW50IHR0bV9ib19pbml0KHN0 cnVjdCB0dG1fZGV2aWNlICpiZGV2LAogCQlzdHJ1Y3QgdHRtX3BsYWNlbWVudCAqcGxhY2VtZW50 LAogCQl1aW50MzJfdCBwYWdlX2FsaWdubWVudCwKIAkJYm9vbCBpbnRlcnJ1cHRpYmxlLAotCQlz aXplX3QgYWNjX3NpemUsCiAJCXN0cnVjdCBzZ190YWJsZSAqc2csCiAJCXN0cnVjdCBkbWFfcmVz diAqcmVzdiwKIAkJdm9pZCAoKmRlc3Ryb3kpIChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKikp CkBAIC0xMTUxLDggKzExMzUsNyBAQCBpbnQgdHRtX2JvX2luaXQoc3RydWN0IHR0bV9kZXZpY2Ug KmJkZXYsCiAJaW50IHJldDsKIAogCXJldCA9IHR0bV9ib19pbml0X3Jlc2VydmVkKGJkZXYsIGJv LCBzaXplLCB0eXBlLCBwbGFjZW1lbnQsCi0JCQkJICAgcGFnZV9hbGlnbm1lbnQsICZjdHgsIGFj Y19zaXplLAotCQkJCSAgIHNnLCByZXN2LCBkZXN0cm95KTsKKwkJCQkgICBwYWdlX2FsaWdubWVu dCwgJmN0eCwgc2csIHJlc3YsIGRlc3Ryb3kpOwogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAK QEAgLTExNjMsMjAgKzExNDYsNiBAQCBpbnQgdHRtX2JvX2luaXQoc3RydWN0IHR0bV9kZXZpY2Ug KmJkZXYsCiB9CiBFWFBPUlRfU1lNQk9MKHR0bV9ib19pbml0KTsKIAotc2l6ZV90IHR0bV9ib19k bWFfYWNjX3NpemUoc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCi0JCQkgICB1bnNpZ25lZCBsb25n IGJvX3NpemUsCi0JCQkgICB1bnNpZ25lZCBzdHJ1Y3Rfc2l6ZSkKLXsKLQl1bnNpZ25lZCBucGFn ZXMgPSAoUEFHRV9BTElHTihib19zaXplKSkgPj4gUEFHRV9TSElGVDsKLQlzaXplX3Qgc2l6ZSA9 IDA7Ci0KLQlzaXplICs9IHR0bV9yb3VuZF9wb3Qoc3RydWN0X3NpemUpOwotCXNpemUgKz0gdHRt X3JvdW5kX3BvdChucGFnZXMgKiAoMipzaXplb2Yodm9pZCAqKSArIHNpemVvZihkbWFfYWRkcl90 KSkpOwotCXNpemUgKz0gdHRtX3JvdW5kX3BvdChzaXplb2Yoc3RydWN0IHR0bV90dCkpOwotCXJl dHVybiBzaXplOwotfQotRVhQT1JUX1NZTUJPTCh0dG1fYm9fZG1hX2FjY19zaXplKTsKLQogLyoK ICAqIGJ1ZmZlciBvYmplY3Qgdm0gZnVuY3Rpb25zLgogICovCmRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vdHRtL3R0bV9ib191dGlsLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9ib191 dGlsLmMKaW5kZXggZGIwZjI2NjFkNTA0Li4wMzFlNTgxOWZlYzQgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS90dG0vdHRtX2JvX3V0aWwuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV9ib191dGlsLmMKQEAgLTMwOSw3ICszMDksNiBAQCBzdGF0aWMgaW50IHR0bV9idWZmZXJfb2Jq ZWN0X3RyYW5zZmVyKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAKIAlrcmVmX2luaXQo JmZiby0+YmFzZS5rcmVmKTsKIAlmYm8tPmJhc2UuZGVzdHJveSA9ICZ0dG1fdHJhbnNmZXJlZF9k ZXN0cm95OwotCWZiby0+YmFzZS5hY2Nfc2l6ZSA9IDA7CiAJZmJvLT5iYXNlLnBpbl9jb3VudCA9 IDA7CiAJaWYgKGJvLT50eXBlICE9IHR0bV9ib190eXBlX3NnKQogCQlmYm8tPmJhc2UuYmFzZS5y ZXN2ID0gJmZiby0+YmFzZS5iYXNlLl9yZXN2OwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L3R0bS90dG1fZGV2aWNlLmMgYi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9kZXZpY2UuYwppbmRl eCBhYzA5MDNjOWU2MGEuLjZiZGUzNDRlNWRhNyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L3R0bS90dG1fZGV2aWNlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fZGV2aWNlLmMK QEAgLTI3LDkgKzI3LDEyIEBACiAKICNkZWZpbmUgcHJfZm10KGZtdCkgIltUVE0gREVWSUNFXSAi IGZtdAogCisjaW5jbHVkZSA8bGludXgvbW0uaD4KKwogI2luY2x1ZGUgPGRybS90dG0vdHRtX2Rl dmljZS5oPgotI2luY2x1ZGUgPGRybS90dG0vdHRtX21lbW9yeS5oPgorI2luY2x1ZGUgPGRybS90 dG0vdHRtX3R0Lmg+CiAjaW5jbHVkZSA8ZHJtL3R0bS90dG1fcGxhY2VtZW50Lmg+CisjaW5jbHVk ZSA8ZHJtL3R0bS90dG1fYm9fYXBpLmg+CiAKICNpbmNsdWRlICJ0dG1fbW9kdWxlLmgiCiAKQEAg LTQ5LDkgKzUyLDExIEBAIHN0YXRpYyB2b2lkIHR0bV9nbG9iYWxfcmVsZWFzZSh2b2lkKQogCWlm ICgtLXR0bV9nbG9iX3VzZV9jb3VudCA+IDApCiAJCWdvdG8gb3V0OwogCisJdHRtX3Bvb2xfbWdy X2ZpbmkoKTsKKwl0dG1fdHRfbWdyX2ZpbmkoKTsKKwogCWtvYmplY3RfZGVsKCZnbG9iLT5rb2Jq KTsKIAlrb2JqZWN0X3B1dCgmZ2xvYi0+a29iaik7Ci0JdHRtX21lbV9nbG9iYWxfcmVsZWFzZSgm dHRtX21lbV9nbG9iKTsKIAlfX2ZyZWVfcGFnZShnbG9iLT5kdW1teV9yZWFkX3BhZ2UpOwogCW1l bXNldChnbG9iLCAwLCBzaXplb2YoKmdsb2IpKTsKIG91dDoKQEAgLTYxLDYgKzY2LDggQEAgc3Rh dGljIHZvaWQgdHRtX2dsb2JhbF9yZWxlYXNlKHZvaWQpCiBzdGF0aWMgaW50IHR0bV9nbG9iYWxf aW5pdCh2b2lkKQogewogCXN0cnVjdCB0dG1fZ2xvYmFsICpnbG9iID0gJnR0bV9nbG9iOworCXVu c2lnbmVkIGxvbmcgbnVtX3BhZ2VzOworCXN0cnVjdCBzeXNpbmZvIHNpOwogCWludCByZXQgPSAw OwogCXVuc2lnbmVkIGk7CiAKQEAgLTY4LDkgKzc1LDE0IEBAIHN0YXRpYyBpbnQgdHRtX2dsb2Jh bF9pbml0KHZvaWQpCiAJaWYgKCsrdHRtX2dsb2JfdXNlX2NvdW50ID4gMSkKIAkJZ290byBvdXQ7 CiAKLQlyZXQgPSB0dG1fbWVtX2dsb2JhbF9pbml0KCZ0dG1fbWVtX2dsb2IpOwotCWlmIChyZXQp Ci0JCWdvdG8gb3V0OworCXNpX21lbWluZm8oJnNpKTsKKworCS8qIExpbWl0IHRoZSBudW1iZXIg b2YgcGFnZXMgaW4gdGhlIHBvb2wgdG8gYWJvdXQgNTAlIG9mIHRoZSB0b3RhbAorCSAqIHN5c3Rl bSBtZW1vcnkuCisJICovCisJbnVtX3BhZ2VzID0gKCh1NjQpc2kudG90YWxyYW0gKiBzaS5tZW1f dW5pdCkgPj4gUEFHRV9TSElGVDsKKwl0dG1fcG9vbF9tZ3JfaW5pdChudW1fcGFnZXMgKiA1MCAv IDEwMCk7CisJdHRtX3R0X21ncl9pbml0KCk7CiAKIAlzcGluX2xvY2tfaW5pdCgmZ2xvYi0+bHJ1 X2xvY2spOwogCWdsb2ItPmR1bW15X3JlYWRfcGFnZSA9IGFsbG9jX3BhZ2UoX19HRlBfWkVSTyB8 IEdGUF9ETUEzMik7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wb29sLmMg Yi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wb29sLmMKaW5kZXggZTA2MTc3MTcxMTNmLi42YjBm OTU3ZDYzZDUgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3Bvb2wuYworKysg Yi9kcml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9wb29sLmMKQEAgLTQwNCwxNiArNDA0LDEwIEBAIGlu dCB0dG1fcG9vbF9hbGxvYyhzdHJ1Y3QgdHRtX3Bvb2wgKnBvb2wsIHN0cnVjdCB0dG1fdHQgKnR0 LAogCQkJY2FjaGluZyA9IHBhZ2VzICsgKDEgPDwgb3JkZXIpOwogCQl9CiAKLQkJciA9IHR0bV9t ZW1fZ2xvYmFsX2FsbG9jX3BhZ2UoJnR0bV9tZW1fZ2xvYiwgcCwKLQkJCQkJICAgICAgKDEgPDwg b3JkZXIpICogUEFHRV9TSVpFLAotCQkJCQkgICAgICBjdHgpOwotCQlpZiAocikKLQkJCWdvdG8g ZXJyb3JfZnJlZV9wYWdlOwotCiAJCWlmIChkbWFfYWRkcikgewogCQkJciA9IHR0bV9wb29sX21h cChwb29sLCBvcmRlciwgcCwgJmRtYV9hZGRyKTsKIAkJCWlmIChyKQotCQkJCWdvdG8gZXJyb3Jf Z2xvYmFsX2ZyZWU7CisJCQkJZ290byBlcnJvcl9mcmVlX3BhZ2U7CiAJCX0KIAogCQludW1fcGFn ZXMgLT0gMSA8PCBvcmRlcjsKQEAgLTQyNyw5ICs0MjEsNiBAQCBpbnQgdHRtX3Bvb2xfYWxsb2Mo c3RydWN0IHR0bV9wb29sICpwb29sLCBzdHJ1Y3QgdHRtX3R0ICp0dCwKIAogCXJldHVybiAwOwog Ci1lcnJvcl9nbG9iYWxfZnJlZToKLQl0dG1fbWVtX2dsb2JhbF9mcmVlX3BhZ2UoJnR0bV9tZW1f Z2xvYiwgcCwgKDEgPDwgb3JkZXIpICogUEFHRV9TSVpFKTsKLQogZXJyb3JfZnJlZV9wYWdlOgog CXR0bV9wb29sX2ZyZWVfcGFnZShwb29sLCB0dC0+Y2FjaGluZywgb3JkZXIsIHApOwogCkBAIC00 NjQsOCArNDU1LDYgQEAgdm9pZCB0dG1fcG9vbF9mcmVlKHN0cnVjdCB0dG1fcG9vbCAqcG9vbCwg c3RydWN0IHR0bV90dCAqdHQpCiAKIAkJb3JkZXIgPSB0dG1fcG9vbF9wYWdlX29yZGVyKHBvb2ws IHApOwogCQludW1fcGFnZXMgPSAxVUxMIDw8IG9yZGVyOwotCQl0dG1fbWVtX2dsb2JhbF9mcmVl X3BhZ2UoJnR0bV9tZW1fZ2xvYiwgcCwKLQkJCQkJIG51bV9wYWdlcyAqIFBBR0VfU0laRSk7CiAJ CWlmICh0dC0+ZG1hX2FkZHJlc3MpCiAJCQl0dG1fcG9vbF91bm1hcChwb29sLCB0dC0+ZG1hX2Fk ZHJlc3NbaV0sIG51bV9wYWdlcyk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS92bXdn ZngvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L01ha2VmaWxlCmluZGV4IGNjNGNk Y2E3MTc2ZS4uOGMwMmZhNTg1MmU3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4 L01ha2VmaWxlCisrKyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvTWFrZWZpbGUKQEAgLTksNyAr OSw3IEBAIHZtd2dmeC15IDo9IHZtd2dmeF9leGVjYnVmLm8gdm13Z2Z4X2dtci5vIHZtd2dmeF9r bXMubyB2bXdnZnhfZHJ2Lm8gXAogCSAgICB2bXdnZnhfY290YWJsZS5vIHZtd2dmeF9zby5vIHZt d2dmeF9iaW5kaW5nLm8gdm13Z2Z4X21zZy5vIFwKIAkgICAgdm13Z2Z4X3NpbXBsZV9yZXNvdXJj ZS5vIHZtd2dmeF92YS5vIHZtd2dmeF9ibGl0Lm8gXAogCSAgICB2bXdnZnhfdmFsaWRhdGlvbi5v IHZtd2dmeF9wYWdlX2RpcnR5Lm8gdm13Z2Z4X3N0cmVhbW91dHB1dC5vIFwKLQkgICAgdHRtX29i amVjdC5vIHR0bV9sb2NrLm8KKwkgICAgdHRtX29iamVjdC5vIHR0bV9sb2NrLm8gdHRtX21lbW9y eS5vCiAKIHZtd2dmeC0kKENPTkZJR19UUkFOU1BBUkVOVF9IVUdFUEFHRSkgKz0gdm13Z2Z4X3Ro cC5vCiBvYmotJChDT05GSUdfRFJNX1ZNV0dGWCkgOj0gdm13Z2Z4Lm8KZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS90dG0vdHRtX21lbW9yeS5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC90 dG1fbWVtb3J5LmMKc2ltaWxhcml0eSBpbmRleCA5NyUKcmVuYW1lIGZyb20gZHJpdmVycy9ncHUv ZHJtL3R0bS90dG1fbWVtb3J5LmMKcmVuYW1lIHRvIGRyaXZlcnMvZ3B1L2RybS92bXdnZngvdHRt X21lbW9yeS5jCmluZGV4IDYzNGE4NWMyZGM0Yy4uMTMwNmQ5ZTBmMDk1IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vdHRtL3R0bV9tZW1vcnkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3R0bV9tZW1vcnkuYwpAQCAtMjgsNyArMjgsNiBAQAogCiAjZGVmaW5lIHByX2ZtdChmbXQp ICJbVFRNXSAiIGZtdAogCi0jaW5jbHVkZSA8ZHJtL3R0bS90dG1fbWVtb3J5Lmg+CiAjaW5jbHVk ZSA8bGludXgvc3BpbmxvY2suaD4KICNpbmNsdWRlIDxsaW51eC9zY2hlZC5oPgogI2luY2x1ZGUg PGxpbnV4L3dhaXQuaD4KQEAgLTM2LDEwICszNSwxMSBAQAogI2luY2x1ZGUgPGxpbnV4L21vZHVs ZS5oPgogI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KICNpbmNsdWRlIDxsaW51eC9zd2FwLmg+Ci0j aW5jbHVkZSA8ZHJtL3R0bS90dG1fcG9vbC5oPgotI2luY2x1ZGUgPGRybS90dG0vdHRtX3R0Lmg+ CiAKLSNpbmNsdWRlICJ0dG1fbW9kdWxlLmgiCisjaW5jbHVkZSA8ZHJtL2RybV9kZXZpY2UuaD4K KyNpbmNsdWRlIDxkcm0vZHJtX2ZpbGUuaD4KKworI2luY2x1ZGUgInR0bV9tZW1vcnkuaCIKIAog I2RlZmluZSBUVE1fTUVNT1JZX0FMTE9DX1JFVFJJRVMgNAogCkBAIC00MTQsNyArNDE0LDcgQEAg c3RhdGljIGludCB0dG1fbWVtX2luaXRfZG1hMzJfem9uZShzdHJ1Y3QgdHRtX21lbV9nbG9iYWwg Kmdsb2IsCiB9CiAjZW5kaWYKIAotaW50IHR0bV9tZW1fZ2xvYmFsX2luaXQoc3RydWN0IHR0bV9t ZW1fZ2xvYmFsICpnbG9iKQoraW50IHR0bV9tZW1fZ2xvYmFsX2luaXQoc3RydWN0IHR0bV9tZW1f Z2xvYmFsICpnbG9iLCBzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewogCXN0cnVjdCBzeXNpbmZv IHNpOwogCWludCByZXQ7CkBAIC00MjUsNyArNDI1LDggQEAgaW50IHR0bV9tZW1fZ2xvYmFsX2lu aXQoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iKQogCWdsb2ItPnN3YXBfcXVldWUgPSBjcmVh dGVfc2luZ2xldGhyZWFkX3dvcmtxdWV1ZSgidHRtX3N3YXAiKTsKIAlJTklUX1dPUksoJmdsb2It PndvcmssIHR0bV9zaHJpbmtfd29yayk7CiAJcmV0ID0ga29iamVjdF9pbml0X2FuZF9hZGQoCi0J CSZnbG9iLT5rb2JqLCAmdHRtX21lbV9nbG9iX2tvYmpfdHlwZSwgdHRtX2dldF9rb2JqKCksICJt ZW1vcnlfYWNjb3VudGluZyIpOworCQkmZ2xvYi0+a29iaiwgJnR0bV9tZW1fZ2xvYl9rb2JqX3R5 cGUsICZkZXYtPnByaW1hcnktPmtkZXYtPmtvYmosCisJCSJtZW1vcnlfYWNjb3VudGluZyIpOwog CWlmICh1bmxpa2VseShyZXQgIT0gMCkpIHsKIAkJa29iamVjdF9wdXQoJmdsb2ItPmtvYmopOwog CQlyZXR1cm4gcmV0OwpAQCAtNDUzLDggKzQ1NCw2IEBAIGludCB0dG1fbWVtX2dsb2JhbF9pbml0 KHN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqZ2xvYikKIAkJcHJfaW5mbygiWm9uZSAlN3M6IEF2YWls YWJsZSBncmFwaGljcyBtZW1vcnk6ICVsbHUgS2lCXG4iLAogCQkJem9uZS0+bmFtZSwgKHVuc2ln bmVkIGxvbmcgbG9uZyl6b25lLT5tYXhfbWVtID4+IDEwKTsKIAl9Ci0JdHRtX3Bvb2xfbWdyX2lu aXQoZ2xvYi0+em9uZV9rZXJuZWwtPm1heF9tZW0vKDIqUEFHRV9TSVpFKSk7Ci0JdHRtX3R0X21n cl9pbml0KCk7CiAJcmV0dXJuIDA7CiBvdXRfbm9fem9uZToKIAl0dG1fbWVtX2dsb2JhbF9yZWxl YXNlKGdsb2IpOwpAQCAtNDY2LDEwICs0NjUsNiBAQCB2b2lkIHR0bV9tZW1fZ2xvYmFsX3JlbGVh c2Uoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iKQogCXN0cnVjdCB0dG1fbWVtX3pvbmUgKnpv bmU7CiAJdW5zaWduZWQgaW50IGk7CiAKLQkvKiBsZXQgdGhlIHBhZ2UgYWxsb2NhdG9yIGZpcnN0 IHN0b3AgdGhlIHNocmluayB3b3JrLiAqLwotCXR0bV9wb29sX21ncl9maW5pKCk7Ci0JdHRtX3R0 X21ncl9maW5pKCk7Ci0KIAlmbHVzaF93b3JrcXVldWUoZ2xvYi0+c3dhcF9xdWV1ZSk7CiAJZGVz dHJveV93b3JrcXVldWUoZ2xvYi0+c3dhcF9xdWV1ZSk7CiAJZ2xvYi0+c3dhcF9xdWV1ZSA9IE5V TEw7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90dG0vdHRtX21lbW9yeS5oIGIvZHJpdmVycy9n cHUvZHJtL3Ztd2dmeC90dG1fbWVtb3J5LmgKc2ltaWxhcml0eSBpbmRleCA5NyUKcmVuYW1lIGZy b20gaW5jbHVkZS9kcm0vdHRtL3R0bV9tZW1vcnkuaApyZW5hbWUgdG8gZHJpdmVycy9ncHUvZHJt L3Ztd2dmeC90dG1fbWVtb3J5LmgKaW5kZXggYzFmMTY3ODgxZTMzLi44NTBlZTZjODY3ZGEgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL3R0bS90dG1fbWVtb3J5LmgKKysrIGIvZHJpdmVycy9ncHUv ZHJtL3Ztd2dmeC90dG1fbWVtb3J5LmgKQEAgLTM1LDcgKzM1LDggQEAKICNpbmNsdWRlIDxsaW51 eC9lcnJuby5oPgogI2luY2x1ZGUgPGxpbnV4L2tvYmplY3QuaD4KICNpbmNsdWRlIDxsaW51eC9t bS5oPgotI2luY2x1ZGUgInR0bV9ib19hcGkuaCIKKworI2luY2x1ZGUgPGRybS90dG0vdHRtX2Jv X2FwaS5oPgogCiAvKioKICAqIHN0cnVjdCB0dG1fbWVtX2dsb2JhbCAtIEdsb2JhbCBtZW1vcnkg YWNjb3VudGluZyBzdHJ1Y3R1cmUuCkBAIC03OSw3ICs4MCw3IEBAIGV4dGVybiBzdHJ1Y3QgdHRt X21lbV9nbG9iYWwgewogI2VuZGlmCiB9IHR0bV9tZW1fZ2xvYjsKIAotaW50IHR0bV9tZW1fZ2xv YmFsX2luaXQoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpnbG9iKTsKK2ludCB0dG1fbWVtX2dsb2Jh bF9pbml0KHN0cnVjdCB0dG1fbWVtX2dsb2JhbCAqZ2xvYiwgc3RydWN0IGRybV9kZXZpY2UgKmRl dik7CiB2b2lkIHR0bV9tZW1fZ2xvYmFsX3JlbGVhc2Uoc3RydWN0IHR0bV9tZW1fZ2xvYmFsICpn bG9iKTsKIGludCB0dG1fbWVtX2dsb2JhbF9hbGxvYyhzdHJ1Y3QgdHRtX21lbV9nbG9iYWwgKmds b2IsIHVpbnQ2NF90IG1lbW9yeSwKIAkJCSBzdHJ1Y3QgdHRtX29wZXJhdGlvbl9jdHggKmN0eCk7 CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9vYmplY3QuaCBiL2RyaXZl cnMvZ3B1L2RybS92bXdnZngvdHRtX29iamVjdC5oCmluZGV4IGVkZTI2ZGY4N2M5My4uNDliMDY0 ZjBjYjE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9vYmplY3QuaAor KysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3R0bV9vYmplY3QuaApAQCAtNDMsNyArNDMsOCBA QAogI2luY2x1ZGUgPGxpbnV4L3JjdXBkYXRlLmg+CiAKICNpbmNsdWRlIDxkcm0vZHJtX2hhc2h0 YWIuaD4KLSNpbmNsdWRlIDxkcm0vdHRtL3R0bV9tZW1vcnkuaD4KKworI2luY2x1ZGUgInR0bV9t ZW1vcnkuaCIKIAogLyoqCiAgKiBlbnVtIHR0bV9yZWZfdHlwZQpkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfYm8uYyBiL2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13 Z2Z4X2JvLmMKaW5kZXggNmIzYmZkOGM2NzhhLi41MGU1MjlhMDE2NzcgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2JvLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Zt d2dmeC92bXdnZnhfYm8uYwpAQCAtNTA3LDExICs1MDcsMTYgQEAgaW50IHZtd19ib19jcmVhdGVf a2VybmVsKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsIHVuc2lnbmVkIGxvbmcgc2l6ZSwK IAlhY2Nfc2l6ZSA9IHR0bV9yb3VuZF9wb3Qoc2l6ZW9mKCpibykpOwogCWFjY19zaXplICs9IHR0 bV9yb3VuZF9wb3QobnBhZ2VzICogc2l6ZW9mKHZvaWQgKikpOwogCWFjY19zaXplICs9IHR0bV9y b3VuZF9wb3Qoc2l6ZW9mKHN0cnVjdCB0dG1fdHQpKTsKKworCXJldCA9IHR0bV9tZW1fZ2xvYmFs X2FsbG9jKCZ0dG1fbWVtX2dsb2IsIGFjY19zaXplLCAmY3R4KTsKKwlpZiAodW5saWtlbHkocmV0 KSkKKwkJZ290byBlcnJvcl9mcmVlOworCiAJcmV0ID0gdHRtX2JvX2luaXRfcmVzZXJ2ZWQoJmRl dl9wcml2LT5iZGV2LCBibywgc2l6ZSwKIAkJCQkgICB0dG1fYm9fdHlwZV9kZXZpY2UsIHBsYWNl bWVudCwgMCwKLQkJCQkgICAmY3R4LCBhY2Nfc2l6ZSwgTlVMTCwgTlVMTCwgTlVMTCk7CisJCQkJ ICAgJmN0eCwgTlVMTCwgTlVMTCwgTlVMTCk7CiAJaWYgKHVubGlrZWx5KHJldCkpCi0JCWdvdG8g ZXJyb3JfZnJlZTsKKwkJZ290byBlcnJvcl9hY2NvdW50OwogCiAJdHRtX2JvX3Bpbihibyk7CiAJ dHRtX2JvX3VucmVzZXJ2ZShibyk7CkBAIC01MTksNiArNTI0LDkgQEAgaW50IHZtd19ib19jcmVh dGVfa2VybmVsKHN0cnVjdCB2bXdfcHJpdmF0ZSAqZGV2X3ByaXYsIHVuc2lnbmVkIGxvbmcgc2l6 ZSwKIAogCXJldHVybiAwOwogCitlcnJvcl9hY2NvdW50OgorCXR0bV9tZW1fZ2xvYmFsX2ZyZWUo JnR0bV9tZW1fZ2xvYiwgYWNjX3NpemUpOworCiBlcnJvcl9mcmVlOgogCWtmcmVlKGJvKTsKIAly ZXR1cm4gcmV0OwpAQCAtNTU4LDExICs1NjYsMTcgQEAgaW50IHZtd19ib19pbml0KHN0cnVjdCB2 bXdfcHJpdmF0ZSAqZGV2X3ByaXYsCiAJdm13X2JvLT5iYXNlLnByaW9yaXR5ID0gMzsKIAl2bXdf Ym8tPnJlc190cmVlID0gUkJfUk9PVDsKIAorCXJldCA9IHR0bV9tZW1fZ2xvYmFsX2FsbG9jKCZ0 dG1fbWVtX2dsb2IsIGFjY19zaXplLCAmY3R4KTsKKwlpZiAodW5saWtlbHkocmV0KSkKKwkJcmV0 dXJuIHJldDsKKwogCXJldCA9IHR0bV9ib19pbml0X3Jlc2VydmVkKGJkZXYsICZ2bXdfYm8tPmJh c2UsIHNpemUsCiAJCQkJICAgdHRtX2JvX3R5cGVfZGV2aWNlLCBwbGFjZW1lbnQsCi0JCQkJICAg MCwgJmN0eCwgYWNjX3NpemUsIE5VTEwsIE5VTEwsIGJvX2ZyZWUpOwotCWlmICh1bmxpa2VseShy ZXQpKQorCQkJCSAgIDAsICZjdHgsIE5VTEwsIE5VTEwsIGJvX2ZyZWUpOworCWlmICh1bmxpa2Vs eShyZXQpKSB7CisJCXR0bV9tZW1fZ2xvYmFsX2ZyZWUoJnR0bV9tZW1fZ2xvYiwgYWNjX3NpemUp OwogCQlyZXR1cm4gcmV0OworCX0KIAogCWlmIChwaW4pCiAJCXR0bV9ib19waW4oJnZtd19iby0+ YmFzZSk7CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuYyBi L2RyaXZlcnMvZ3B1L2RybS92bXdnZngvdm13Z2Z4X2Rydi5jCmluZGV4IDcxMGJhNTE2OWE3NC4u Y2E1OWE4NzlmMGYwIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9k cnYuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vdm13Z2Z4L3Ztd2dmeF9kcnYuYwpAQCAtMTI2OCw2 ICsxMjY4LDcgQEAgc3RhdGljIHZvaWQgdm13X3JlbW92ZShzdHJ1Y3QgcGNpX2RldiAqcGRldikK IHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gcGNpX2dldF9kcnZkYXRhKHBkZXYpOwogCisJ dHRtX21lbV9nbG9iYWxfcmVsZWFzZSgmdHRtX21lbV9nbG9iKTsKIAlkcm1fZGV2X3VucmVnaXN0 ZXIoZGV2KTsKIAl2bXdfZHJpdmVyX3VubG9hZChkZXYpOwogfQpAQCAtMTUxMSw2ICsxNTEyLDEw IEBAIHN0YXRpYyBpbnQgdm13X3Byb2JlKHN0cnVjdCBwY2lfZGV2ICpwZGV2LCBjb25zdCBzdHJ1 Y3QgcGNpX2RldmljZV9pZCAqZW50KQogCWlmIChyZXQpCiAJCXJldHVybiByZXQ7CiAKKwlyZXQg PSB0dG1fbWVtX2dsb2JhbF9pbml0KCZ0dG1fbWVtX2dsb2IsICZ2bXctPmRybSk7CisJaWYgKHJl dCkKKwkJcmV0dXJuIHJldDsKKwogCXZtdyA9IGRldm1fZHJtX2Rldl9hbGxvYygmcGRldi0+ZGV2 LCAmZHJpdmVyLAogCQkJCSBzdHJ1Y3Qgdm13X3ByaXZhdGUsIGRybSk7CiAJaWYgKElTX0VSUih2 bXcpKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2J1ZmZl ci5jIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdnZnhfdHRtX2J1ZmZlci5jCmluZGV4IGQx YmZhNTk1NzlmMS4uNjNmMTBjODY1MDYxIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vdm13 Z2Z4L3Ztd2dmeF90dG1fYnVmZmVyLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL3Ztd2dmeC92bXdn ZnhfdHRtX2J1ZmZlci5jCkBAIC01NzYsMTEgKzU3NiwzMSBAQCBzdGF0aWMgdm9pZCB2bXdfdHRt X2Rlc3Ryb3koc3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsIHN0cnVjdCB0dG1fdHQgKnR0bSkKIHN0 YXRpYyBpbnQgdm13X3R0bV9wb3B1bGF0ZShzdHJ1Y3QgdHRtX2RldmljZSAqYmRldiwKIAkJCSAg ICBzdHJ1Y3QgdHRtX3R0ICp0dG0sIHN0cnVjdCB0dG1fb3BlcmF0aW9uX2N0eCAqY3R4KQogewor CXVuc2lnbmVkIGludCBpOworCWludCByZXQ7CisKIAkvKiBUT0RPOiBtYXliZSBjb21wbGV0ZWx5 IGRyb3AgdGhpcyA/ICovCiAJaWYgKHR0bV90dF9pc19wb3B1bGF0ZWQodHRtKSkKIAkJcmV0dXJu IDA7CiAKLQlyZXR1cm4gdHRtX3Bvb2xfYWxsb2MoJmJkZXYtPnBvb2wsIHR0bSwgY3R4KTsKKwly ZXQgPSB0dG1fcG9vbF9hbGxvYygmYmRldi0+cG9vbCwgdHRtLCBjdHgpOworCWlmIChyZXQpCisJ CXJldHVybiByZXQ7CisKKwlmb3IgKGkgPSAwOyBpIDwgdHRtLT5udW1fcGFnZXM7ICsraSkgewor CQlyZXQgPSB0dG1fbWVtX2dsb2JhbF9hbGxvY19wYWdlKCZ0dG1fbWVtX2dsb2IsIHR0bS0+cGFn ZXNbaV0sCisJCQkJCQlQQUdFX1NJWkUsIGN0eCk7CisJCWlmIChyZXQpCisJCQlnb3RvIGVycm9y OworCX0KKwlyZXR1cm4gMDsKKworZXJyb3I6CisJd2hpbGUgKGktLSkKKwkJdHRtX21lbV9nbG9i YWxfZnJlZV9wYWdlKCZ0dG1fbWVtX2dsb2IsIHR0bS0+cGFnZXNbaV0sCisJCQkJCSBQQUdFX1NJ WkUpOworCXR0bV9wb29sX2ZyZWUoJmJkZXYtPnBvb2wsIHR0bSk7CisJcmV0dXJuIHJldDsKIH0K IAogc3RhdGljIHZvaWQgdm13X3R0bV91bnBvcHVsYXRlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2 LApAQCAtNTg4LDYgKzYwOCw3IEBAIHN0YXRpYyB2b2lkIHZtd190dG1fdW5wb3B1bGF0ZShzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldiwKIHsKIAlzdHJ1Y3Qgdm13X3R0bV90dCAqdm13X3R0ID0gY29u dGFpbmVyX29mKHR0bSwgc3RydWN0IHZtd190dG1fdHQsCiAJCQkJCQkgZG1hX3R0bSk7CisJdW5z aWduZWQgaW50IGk7CiAKIAlpZiAodm13X3R0LT5tb2IpIHsKIAkJdm13X21vYl9kZXN0cm95KHZt d190dC0+bW9iKTsKQEAgLTU5NSw2ICs2MTYsMTEgQEAgc3RhdGljIHZvaWQgdm13X3R0bV91bnBv cHVsYXRlKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAogCX0KIAogCXZtd190dG1fdW5tYXBfZG1h KHZtd190dCk7CisKKwlmb3IgKGkgPSAwOyBpIDwgdHRtLT5udW1fcGFnZXM7ICsraSkKKwkJdHRt X21lbV9nbG9iYWxfZnJlZV9wYWdlKCZ0dG1fbWVtX2dsb2IsIHR0bS0+cGFnZXNbaV0sCisJCQkJ CSBQQUdFX1NJWkUpOworCiAJdHRtX3Bvb2xfZnJlZSgmYmRldi0+cG9vbCwgdHRtKTsKIH0KIApk aWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vdHRtL3R0bV9ib19hcGkuaCBiL2luY2x1ZGUvZHJtL3R0 bS90dG1fYm9fYXBpLmgKaW5kZXggMTI5N2E4ZmI3Y2NiLi40ZmI1MjNkZmFiMzIgMTAwNjQ0Ci0t LSBhL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9fYXBpLmgKKysrIGIvaW5jbHVkZS9kcm0vdHRtL3R0 bV9ib19hcGkuaApAQCAtODgsNyArODgsNiBAQCBzdHJ1Y3QgdHRtX3R0OwogICogQHR5cGU6IFRo ZSBibyB0eXBlLgogICogQGRlc3Ryb3k6IERlc3RydWN0aW9uIGZ1bmN0aW9uLiBJZiBOVUxMLCBr ZnJlZSBpcyB1c2VkLgogICogQG51bV9wYWdlczogQWN0dWFsIG51bWJlciBvZiBwYWdlcy4KLSAq IEBhY2Nfc2l6ZTogQWNjb3VudGVkIHNpemUgZm9yIHRoaXMgb2JqZWN0LgogICogQGtyZWY6IFJl ZmVyZW5jZSBjb3VudCBvZiB0aGlzIGJ1ZmZlciBvYmplY3QuIFdoZW4gdGhpcyByZWZjb3VudCBy ZWFjaGVzCiAgKiB6ZXJvLCB0aGUgb2JqZWN0IGlzIGRlc3Ryb3llZCBvciBwdXQgb24gdGhlIGRl bGF5ZWQgZGVsZXRlIGxpc3QuCiAgKiBAbWVtOiBzdHJ1Y3R1cmUgZGVzY3JpYmluZyBjdXJyZW50 IHBsYWNlbWVudC4KQEAgLTEyNSw3ICsxMjQsNiBAQCBzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3Qg ewogCXN0cnVjdCB0dG1fZGV2aWNlICpiZGV2OwogCWVudW0gdHRtX2JvX3R5cGUgdHlwZTsKIAl2 b2lkICgqZGVzdHJveSkgKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqKTsKLQlzaXplX3QgYWNj X3NpemU7CiAKIAkvKioKIAkqIE1lbWJlcnMgbm90IG5lZWRpbmcgcHJvdGVjdGlvbi4KQEAgLTM1 NywxMCArMzU1LDYgQEAgdm9pZCB0dG1fYm9fdW5sb2NrX2RlbGF5ZWRfd29ya3F1ZXVlKHN0cnVj dCB0dG1fZGV2aWNlICpiZGV2LCBpbnQgcmVzY2hlZCk7CiBib29sIHR0bV9ib19ldmljdGlvbl92 YWx1YWJsZShzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKmJvLAogCQkJICAgICAgY29uc3Qgc3Ry dWN0IHR0bV9wbGFjZSAqcGxhY2UpOwogCi1zaXplX3QgdHRtX2JvX2RtYV9hY2Nfc2l6ZShzdHJ1 Y3QgdHRtX2RldmljZSAqYmRldiwKLQkJCSAgIHVuc2lnbmVkIGxvbmcgYm9fc2l6ZSwKLQkJCSAg IHVuc2lnbmVkIHN0cnVjdF9zaXplKTsKLQogLyoqCiAgKiB0dG1fYm9faW5pdF9yZXNlcnZlZAog ICoKQEAgLTM3MSw3ICszNjUsNiBAQCBzaXplX3QgdHRtX2JvX2RtYV9hY2Nfc2l6ZShzdHJ1Y3Qg dHRtX2RldmljZSAqYmRldiwKICAqIEBmbGFnczogSW5pdGlhbCBwbGFjZW1lbnQgZmxhZ3MuCiAg KiBAcGFnZV9hbGlnbm1lbnQ6IERhdGEgYWxpZ25tZW50IGluIHBhZ2VzLgogICogQGN0eDogVFRN IG9wZXJhdGlvbiBjb250ZXh0IGZvciBtZW1vcnkgYWxsb2NhdGlvbi4KLSAqIEBhY2Nfc2l6ZTog QWNjb3VudGVkIHNpemUgZm9yIHRoaXMgb2JqZWN0LgogICogQHJlc3Y6IFBvaW50ZXIgdG8gYSBk bWFfcmVzdiwgb3IgTlVMTCB0byBsZXQgdHRtIGFsbG9jYXRlIG9uZS4KICAqIEBkZXN0cm95OiBE ZXN0cm95IGZ1bmN0aW9uLiBVc2UgTlVMTCBmb3Iga2ZyZWUoKS4KICAqCkBAIC00MDIsOCArMzk1 LDcgQEAgaW50IHR0bV9ib19pbml0X3Jlc2VydmVkKHN0cnVjdCB0dG1fZGV2aWNlICpiZGV2LAog CQkJIHN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFjZW1lbnQsCiAJCQkgdWludDMyX3QgcGFnZV9h bGlnbm1lbnQsCiAJCQkgc3RydWN0IHR0bV9vcGVyYXRpb25fY3R4ICpjdHgsCi0JCQkgc2l6ZV90 IGFjY19zaXplLCBzdHJ1Y3Qgc2dfdGFibGUgKnNnLAotCQkJIHN0cnVjdCBkbWFfcmVzdiAqcmVz diwKKwkJCSBzdHJ1Y3Qgc2dfdGFibGUgKnNnLCBzdHJ1Y3QgZG1hX3Jlc3YgKnJlc3YsCiAJCQkg dm9pZCAoKmRlc3Ryb3kpIChzdHJ1Y3QgdHRtX2J1ZmZlcl9vYmplY3QgKikpOwogCiAvKioKQEAg LTQyMSw3ICs0MTMsNiBAQCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQoc3RydWN0IHR0bV9kZXZp Y2UgKmJkZXYsCiAgKiBob2xkcyBhIHBvaW50ZXIgdG8gYSBwZXJzaXN0ZW50IHNobWVtIG9iamVj dC4gVHlwaWNhbGx5LCB0aGlzIHdvdWxkCiAgKiBwb2ludCB0byB0aGUgc2htZW0gb2JqZWN0IGJh Y2tpbmcgYSBHRU0gb2JqZWN0IGlmIFRUTSBpcyB1c2VkIHRvIGJhY2sgYQogICogR0VNIHVzZXIg aW50ZXJmYWNlLgotICogQGFjY19zaXplOiBBY2NvdW50ZWQgc2l6ZSBmb3IgdGhpcyBvYmplY3Qu CiAgKiBAcmVzdjogUG9pbnRlciB0byBhIGRtYV9yZXN2LCBvciBOVUxMIHRvIGxldCB0dG0gYWxs b2NhdGUgb25lLgogICogQGRlc3Ryb3k6IERlc3Ryb3kgZnVuY3Rpb24uIFVzZSBOVUxMIGZvciBr ZnJlZSgpLgogICoKQEAgLTQ0Niw3ICs0MzcsNyBAQCBpbnQgdHRtX2JvX2luaXRfcmVzZXJ2ZWQo c3RydWN0IHR0bV9kZXZpY2UgKmJkZXYsCiBpbnQgdHRtX2JvX2luaXQoc3RydWN0IHR0bV9kZXZp Y2UgKmJkZXYsIHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqYm8sCiAJCXNpemVfdCBzaXplLCBl bnVtIHR0bV9ib190eXBlIHR5cGUsCiAJCXN0cnVjdCB0dG1fcGxhY2VtZW50ICpwbGFjZW1lbnQs Ci0JCXVpbnQzMl90IHBhZ2VfYWxpZ25tZW50LCBib29sIGludGVycnVidGlibGUsIHNpemVfdCBh Y2Nfc2l6ZSwKKwkJdWludDMyX3QgcGFnZV9hbGlnbm1lbnQsIGJvb2wgaW50ZXJydWJ0aWJsZSwK IAkJc3RydWN0IHNnX3RhYmxlICpzZywgc3RydWN0IGRtYV9yZXN2ICpyZXN2LAogCQl2b2lkICgq ZGVzdHJveSkgKHN0cnVjdCB0dG1fYnVmZmVyX29iamVjdCAqKSk7CiAKZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZHJtL3R0bS90dG1fYm9fZHJpdmVyLmggYi9pbmNsdWRlL2RybS90dG0vdHRtX2JvX2Ry aXZlci5oCmluZGV4IDFjOWJmOTkzZTI1Mi4uODk1OWMwMDc1Y2ZkIDEwMDY0NAotLS0gYS9pbmNs dWRlL2RybS90dG0vdHRtX2JvX2RyaXZlci5oCisrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fYm9f ZHJpdmVyLmgKQEAgLTQwLDcgKzQwLDYgQEAKICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9kZXZpY2Uu aD4KIAogI2luY2x1ZGUgInR0bV9ib19hcGkuaCIKLSNpbmNsdWRlICJ0dG1fbWVtb3J5LmgiCiAj aW5jbHVkZSAidHRtX3BsYWNlbWVudC5oIgogI2luY2x1ZGUgInR0bV90dC5oIgogI2luY2x1ZGUg InR0bV9wb29sLmgiCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS90dG0vdHRtX3R0LmggYi9pbmNs dWRlL2RybS90dG0vdHRtX3R0LmgKaW5kZXggY2NlNTdmYjQ5ZTJjLi4wNjlmODEzMDI0MWEgMTAw NjQ0Ci0tLSBhL2luY2x1ZGUvZHJtL3R0bS90dG1fdHQuaAorKysgYi9pbmNsdWRlL2RybS90dG0v dHRtX3R0LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2lu Y2x1ZGUgPGRybS90dG0vdHRtX2NhY2hpbmcuaD4KIAorc3RydWN0IHR0bV9ib19kZXZpY2U7CiBz dHJ1Y3QgdHRtX3R0Owogc3RydWN0IHR0bV9yZXNvdXJjZTsKIHN0cnVjdCB0dG1fYnVmZmVyX29i amVjdDsKLS0gCjIuMjUuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==