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=-12.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 81400C63798 for ; Fri, 23 Oct 2020 12:24:40 +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 298DD21527 for ; Fri, 23 Oct 2020 12:24:40 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=ffwll.ch header.i=@ffwll.ch header.b="e5hphnls" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 298DD21527 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=ffwll.ch 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 22CAE6F61D; Fri, 23 Oct 2020 12:23:15 +0000 (UTC) Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by gabe.freedesktop.org (Postfix) with ESMTPS id 07AB56EB97 for ; Fri, 23 Oct 2020 12:23:14 +0000 (UTC) Received: by mail-wr1-x444.google.com with SMTP id g12so1563806wrp.10 for ; Fri, 23 Oct 2020 05:23:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ffwll.ch; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Eh+QFd2rUGVvEdUIq62q2ZCwC5wIklTNSjxdtgUk2/Y=; b=e5hphnlsMYsasyR/YI69NuX59uzEdX2qcimMYImOZm1M/LT2BHrGVpvWCoO3kcKnbz Ov4evujMm+wUa0eaaQI03YI0d3JG8wQ5tVEwmAcc8BYd5ts9ASXWcikA5h+6IZPLJgkT Q5UjRznd6tk9kE/aYdy5AZJulxidfuYuKArx4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Eh+QFd2rUGVvEdUIq62q2ZCwC5wIklTNSjxdtgUk2/Y=; b=g7U/MgEpIodCTtDRgVAC8t8xXDsBboTxzdk0mC4f0ocTozlLNo7nUGMR+LmT8Ddld2 N/S1dSRVhx4xgK72MuCHJ0Of+4+uVbha9U6yNzPULS2vP5r1xGLLFwvo3ibJGxt7zbpa rWi/M/j7KwFIGWmcv+sKUno9oe5BWa4K8jqZINXHTjf35k+w5+u5NiWje126qGi3GH5Z nzMVxwhRAKb3wOpbGr2kc9TGUkW9k8/s2Fjwg3tgsqboEBte48dRW5ZajXv5C/8g14Oe z6ZpMNNuWBx8k+gN3FYOeKidCH2/GvsHqnjGgm7alZ5MvbNGOV5ooSUpjdUYLSX0yH4m 9yvQ== X-Gm-Message-State: AOAM532iQtfrYrfa4YJ9bVJdGMz4m10hpzYXpdQVib1ozRDJUM+Pckp+ apnbxAgXwJbokMQM/ys7Cp3AYhEMDGnNal0t X-Google-Smtp-Source: ABdhPJwnOL4dnmc6lyGNP0x67dHlVVixkc5nrJQk3+7ioO7moXdzTELeRqRSEuYEwVn0xorg8Qblnw== X-Received: by 2002:adf:e549:: with SMTP id z9mr2524031wrm.12.1603455792411; Fri, 23 Oct 2020 05:23:12 -0700 (PDT) Received: from phenom.ffwll.local ([2a02:168:57f4:0:efd0:b9e5:5ae6:c2fa]) by smtp.gmail.com with ESMTPSA id y4sm3056484wrp.74.2020.10.23.05.23.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 Oct 2020 05:23:11 -0700 (PDT) From: Daniel Vetter To: DRI Development Subject: [PATCH 42/65] resource: Move devmem revoke code to resource framework Date: Fri, 23 Oct 2020 14:21:53 +0200 Message-Id: <20201023122216.2373294-42-daniel.vetter@ffwll.ch> X-Mailer: git-send-email 2.28.0 In-Reply-To: <20201023122216.2373294-1-daniel.vetter@ffwll.ch> References: <20201021163242.1458885-1-daniel.vetter@ffwll.ch> <20201023122216.2373294-1-daniel.vetter@ffwll.ch> 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: , Cc: linux-samsung-soc@vger.kernel.org, Jan Kara , Kees Cook , John Hubbard , linux-mm@kvack.org, Daniel Vetter , Intel Graphics Development , David Hildenbrand , "Rafael J. Wysocki" , Jason Gunthorpe , =?UTF-8?q?J=C3=A9r=C3=B4me=20Glisse?= , Arnd Bergmann , Greg Kroah-Hartman , Daniel Vetter , Dan Williams , Andrew Morton , linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" V2Ugd2FudCBhbGwgaW9tZW0gbW1hcHMgdG8gY29uc2lzdGVudGx5IHJldm9rZSBwdGVzIHdoZW4g dGhlIGtlcm5lbAp0YWtlcyBvdmVyIGFuZCBDT05GSUdfSU9fU1RSSUNUX0RFVk1FTSBpcyBlbmFi bGVkLiBUaGlzIGluY2x1ZGVzIHRoZQpwY2kgYmFyIG1tYXBzIGF2YWlsYWJsZSB0aHJvdWdoIHBy b2NmcyBhbmQgc3lzZnMsIHdoaWNoIGN1cnJlbnRseSBkbwpub3QgcmV2b2tlIG1hcHBpbmdzLgoK VG8gcHJlcGFyZSBmb3IgdGhpcywgbW92ZSB0aGUgY29kZSBmcm9tIHRoZSAvZGV2L2ttZW0gZHJp dmVyIHRvCmtlcm5lbC9yZXNvdXJjZS5jLgoKUmV2aWV3ZWQtYnk6IEdyZWcgS3JvYWgtSGFydG1h biA8Z3JlZ2toQGxpbnV4Zm91bmRhdGlvbi5vcmc+ClNpZ25lZC1vZmYtYnk6IERhbmllbCBWZXR0 ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwuY29tPgpDYzogSmFzb24gR3VudGhvcnBlIDxqZ2dAemll cGUuY2E+CkNjOiBLZWVzIENvb2sgPGtlZXNjb29rQGNocm9taXVtLm9yZz4KQ2M6IERhbiBXaWxs aWFtcyA8ZGFuLmoud2lsbGlhbXNAaW50ZWwuY29tPgpDYzogQW5kcmV3IE1vcnRvbiA8YWtwbUBs aW51eC1mb3VuZGF0aW9uLm9yZz4KQ2M6IEpvaG4gSHViYmFyZCA8amh1YmJhcmRAbnZpZGlhLmNv bT4KQ2M6IErDqXLDtG1lIEdsaXNzZSA8amdsaXNzZUByZWRoYXQuY29tPgpDYzogSmFuIEthcmEg PGphY2tAc3VzZS5jej4KQ2M6IERhbiBXaWxsaWFtcyA8ZGFuLmoud2lsbGlhbXNAaW50ZWwuY29t PgpDYzogbGludXgtbW1Aa3ZhY2sub3JnCkNjOiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJh ZGVhZC5vcmcKQ2M6IGxpbnV4LXNhbXN1bmctc29jQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgt bWVkaWFAdmdlci5rZXJuZWwub3JnCkNjOiBBcm5kIEJlcmdtYW5uIDxhcm5kQGFybmRiLmRlPgpD YzogR3JlZyBLcm9haC1IYXJ0bWFuIDxncmVna2hAbGludXhmb3VuZGF0aW9uLm9yZz4KQ2M6IERh bmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+CkNjOiBEYXZpZCBIaWxkZW5icmFu ZCA8ZGF2aWRAcmVkaGF0LmNvbT4KQ2M6ICJSYWZhZWwgSi4gV3lzb2NraSIgPHJhZmFlbC5qLnd5 c29ja2lAaW50ZWwuY29tPgpTaWduZWQtb2ZmLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0 dGVyQGZmd2xsLmNoPgotLQp2MzoKLSBhZGQgYmFycmllciBmb3IgY29uc2lzdGVuY3kgYW5kIGRv Y3VtZW50IHdoeSB3ZSBkb24ndCBoYXZlIHRvIGNoZWNrCiAgZm9yIE5VTEwgKEphc29uKQp2NAot IEFkanVzdCBjb21tZW50cyB0byByZWZsZWN0IHRoZSBnZW5lcmFsIG5hdHVyZSBvZiB0aGlzIGlv bWVtIHJldm9rZQogIGNvZGUgbm93IChEYW4pCi0tLQogZHJpdmVycy9jaGFyL21lbS5jICAgICB8 ICA4NSArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBpbmNsdWRlL2xpbnV4L2lv cG9ydC5oIHwgICA2ICstLQoga2VybmVsL3Jlc291cmNlLmMgICAgICB8IDEwMSArKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLQogMyBmaWxlcyBjaGFuZ2VkLCAxMDIgaW5z ZXJ0aW9ucygrKSwgOTAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9jaGFyL21l bS5jIGIvZHJpdmVycy9jaGFyL21lbS5jCmluZGV4IDU1MDJmNTZmMzY1NS4uNTMzMzhhYWQ4ZDI4 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2NoYXIvbWVtLmMKKysrIGIvZHJpdmVycy9jaGFyL21lbS5j CkBAIC0zMSw5ICszMSw2IEBACiAjaW5jbHVkZSA8bGludXgvdWlvLmg+CiAjaW5jbHVkZSA8bGlu dXgvdWFjY2Vzcy5oPgogI2luY2x1ZGUgPGxpbnV4L3NlY3VyaXR5Lmg+Ci0jaW5jbHVkZSA8bGlu dXgvcHNldWRvX2ZzLmg+Ci0jaW5jbHVkZSA8dWFwaS9saW51eC9tYWdpYy5oPgotI2luY2x1ZGUg PGxpbnV4L21vdW50Lmg+CiAKICNpZmRlZiBDT05GSUdfSUE2NAogIyBpbmNsdWRlIDxsaW51eC9l ZmkuaD4KQEAgLTgwOSw0MiArODA2LDYgQEAgc3RhdGljIGxvZmZfdCBtZW1vcnlfbHNlZWsoc3Ry dWN0IGZpbGUgKmZpbGUsIGxvZmZfdCBvZmZzZXQsIGludCBvcmlnKQogCXJldHVybiByZXQ7CiB9 CiAKLXN0YXRpYyBzdHJ1Y3QgaW5vZGUgKmRldm1lbV9pbm9kZTsKLQotI2lmZGVmIENPTkZJR19J T19TVFJJQ1RfREVWTUVNCi12b2lkIHJldm9rZV9kZXZtZW0oc3RydWN0IHJlc291cmNlICpyZXMp Ci17Ci0JLyogcGFpcnMgd2l0aCBzbXBfc3RvcmVfcmVsZWFzZSgpIGluIGRldm1lbV9pbml0X2lu b2RlKCkgKi8KLQlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gc21wX2xvYWRfYWNxdWlyZSgmZGV2bWVt X2lub2RlKTsKLQotCS8qCi0JICogQ2hlY2sgdGhhdCB0aGUgaW5pdGlhbGl6YXRpb24gaGFzIGNv bXBsZXRlZC4gTG9zaW5nIHRoZSByYWNlCi0JICogaXMgb2sgYmVjYXVzZSBpdCBtZWFucyBkcml2 ZXJzIGFyZSBjbGFpbWluZyByZXNvdXJjZXMgYmVmb3JlCi0JICogdGhlIGZzX2luaXRjYWxsIGxl dmVsIG9mIGluaXQgYW5kIHByZXZlbnQgL2Rldi9tZW0gZnJvbQotCSAqIGVzdGFibGlzaGluZyBt YXBwaW5ncy4KLQkgKi8KLQlpZiAoIWlub2RlKQotCQlyZXR1cm47Ci0KLQkvKgotCSAqIFRoZSBl eHBlY3RhdGlvbiBpcyB0aGF0IHRoZSBkcml2ZXIgaGFzIHN1Y2Nlc3NmdWxseSBtYXJrZWQKLQkg KiB0aGUgcmVzb3VyY2UgYnVzeSBieSB0aGlzIHBvaW50LCBzbyBkZXZtZW1faXNfYWxsb3dlZCgp Ci0JICogc2hvdWxkIHN0YXJ0IHJldHVybmluZyBmYWxzZSwgaG93ZXZlciBmb3IgcGVyZm9ybWFu Y2UgdGhpcwotCSAqIGRvZXMgbm90IGl0ZXJhdGUgdGhlIGVudGlyZSByZXNvdXJjZSByYW5nZS4K LQkgKi8KLQlpZiAoZGV2bWVtX2lzX2FsbG93ZWQoUEhZU19QRk4ocmVzLT5zdGFydCkpICYmCi0J ICAgIGRldm1lbV9pc19hbGxvd2VkKFBIWVNfUEZOKHJlcy0+ZW5kKSkpIHsKLQkJLyoKLQkJICog KmNyaW5nZSogaW9tZW09cmVsYXhlZCBzYXlzICJnbyBhaGVhZCwgd2hhdCdzIHRoZQotCQkgKiB3 b3JzdCB0aGF0IGNhbiBoYXBwZW4/IgotCQkgKi8KLQkJcmV0dXJuOwotCX0KLQotCXVubWFwX21h cHBpbmdfcmFuZ2UoaW5vZGUtPmlfbWFwcGluZywgcmVzLT5zdGFydCwgcmVzb3VyY2Vfc2l6ZShy ZXMpLCAxKTsKLX0KLSNlbmRpZgotCiBzdGF0aWMgaW50IG9wZW5fcG9ydChzdHJ1Y3QgaW5vZGUg Kmlub2RlLCBzdHJ1Y3QgZmlsZSAqZmlscCkKIHsKIAlpbnQgcmM7CkBAIC04NjQsNyArODI1LDcg QEAgc3RhdGljIGludCBvcGVuX3BvcnQoc3RydWN0IGlub2RlICppbm9kZSwgc3RydWN0IGZpbGUg KmZpbHApCiAJICogcmV2b2NhdGlvbnMgd2hlbiBkcml2ZXJzIHdhbnQgdG8gdGFrZSBvdmVyIGEg L2Rldi9tZW0gbWFwcGVkCiAJICogcmFuZ2UuCiAJICovCi0JZmlscC0+Zl9tYXBwaW5nID0gaW5v ZGUtPmlfbWFwcGluZzsKKwlmaWxwLT5mX21hcHBpbmcgPSBpb21lbV9nZXRfbWFwcGluZygpOwog CiAJcmV0dXJuIDA7CiB9CkBAIC05OTUsNDggKzk1Niw2IEBAIHN0YXRpYyBjaGFyICptZW1fZGV2 bm9kZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHVtb2RlX3QgKm1vZGUpCiAKIHN0YXRpYyBzdHJ1Y3Qg Y2xhc3MgKm1lbV9jbGFzczsKIAotc3RhdGljIGludCBkZXZtZW1fZnNfaW5pdF9mc19jb250ZXh0 KHN0cnVjdCBmc19jb250ZXh0ICpmYykKLXsKLQlyZXR1cm4gaW5pdF9wc2V1ZG8oZmMsIERFVk1F TV9NQUdJQykgPyAwIDogLUVOT01FTTsKLX0KLQotc3RhdGljIHN0cnVjdCBmaWxlX3N5c3RlbV90 eXBlIGRldm1lbV9mc190eXBlID0gewotCS5uYW1lCQk9ICJkZXZtZW0iLAotCS5vd25lcgkJPSBU SElTX01PRFVMRSwKLQkuaW5pdF9mc19jb250ZXh0ID0gZGV2bWVtX2ZzX2luaXRfZnNfY29udGV4 dCwKLQkua2lsbF9zYgk9IGtpbGxfYW5vbl9zdXBlciwKLX07Ci0KLXN0YXRpYyBpbnQgZGV2bWVt X2luaXRfaW5vZGUodm9pZCkKLXsKLQlzdGF0aWMgc3RydWN0IHZmc21vdW50ICpkZXZtZW1fdmZz X21vdW50OwotCXN0YXRpYyBpbnQgZGV2bWVtX2ZzX2NudDsKLQlzdHJ1Y3QgaW5vZGUgKmlub2Rl OwotCWludCByYzsKLQotCXJjID0gc2ltcGxlX3Bpbl9mcygmZGV2bWVtX2ZzX3R5cGUsICZkZXZt ZW1fdmZzX21vdW50LCAmZGV2bWVtX2ZzX2NudCk7Ci0JaWYgKHJjIDwgMCkgewotCQlwcl9lcnIo IkNhbm5vdCBtb3VudCAvZGV2L21lbSBwc2V1ZG8gZmlsZXN5c3RlbTogJWRcbiIsIHJjKTsKLQkJ cmV0dXJuIHJjOwotCX0KLQotCWlub2RlID0gYWxsb2NfYW5vbl9pbm9kZShkZXZtZW1fdmZzX21v dW50LT5tbnRfc2IpOwotCWlmIChJU19FUlIoaW5vZGUpKSB7Ci0JCXJjID0gUFRSX0VSUihpbm9k ZSk7Ci0JCXByX2VycigiQ2Fubm90IGFsbG9jYXRlIGlub2RlIGZvciAvZGV2L21lbTogJWRcbiIs IHJjKTsKLQkJc2ltcGxlX3JlbGVhc2VfZnMoJmRldm1lbV92ZnNfbW91bnQsICZkZXZtZW1fZnNf Y250KTsKLQkJcmV0dXJuIHJjOwotCX0KLQotCS8qCi0JICogUHVibGlzaCAvZGV2L21lbSBpbml0 aWFsaXplZC4KLQkgKiBQYWlycyB3aXRoIHNtcF9sb2FkX2FjcXVpcmUoKSBpbiByZXZva2VfZGV2 bWVtKCkuCi0JICovCi0Jc21wX3N0b3JlX3JlbGVhc2UoJmRldm1lbV9pbm9kZSwgaW5vZGUpOwot Ci0JcmV0dXJuIDA7Ci19Ci0KIHN0YXRpYyBpbnQgX19pbml0IGNocl9kZXZfaW5pdCh2b2lkKQog ewogCWludCBtaW5vcjsKQEAgLTEwNTgsOCArOTc3LDYgQEAgc3RhdGljIGludCBfX2luaXQgY2hy X2Rldl9pbml0KHZvaWQpCiAJCSAqLwogCQlpZiAoKG1pbm9yID09IERFVlBPUlRfTUlOT1IpICYm ICFhcmNoX2hhc19kZXZfcG9ydCgpKQogCQkJY29udGludWU7Ci0JCWlmICgobWlub3IgPT0gREVW TUVNX01JTk9SKSAmJiBkZXZtZW1faW5pdF9pbm9kZSgpICE9IDApCi0JCQljb250aW51ZTsKIAog CQlkZXZpY2VfY3JlYXRlKG1lbV9jbGFzcywgTlVMTCwgTUtERVYoTUVNX01BSk9SLCBtaW5vciks CiAJCQkgICAgICBOVUxMLCBkZXZsaXN0W21pbm9yXS5uYW1lKTsKZGlmZiAtLWdpdCBhL2luY2x1 ZGUvbGludXgvaW9wb3J0LmggYi9pbmNsdWRlL2xpbnV4L2lvcG9ydC5oCmluZGV4IDZjMmIwNmZl OGJlYi4uOGZmYjYxYjM2NjA2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L2lvcG9ydC5oCisr KyBiL2luY2x1ZGUvbGludXgvaW9wb3J0LmgKQEAgLTMwMiwxMSArMzAyLDcgQEAgc3RydWN0IHJl c291cmNlICpkZXZtX3JlcXVlc3RfZnJlZV9tZW1fcmVnaW9uKHN0cnVjdCBkZXZpY2UgKmRldiwK IHN0cnVjdCByZXNvdXJjZSAqcmVxdWVzdF9mcmVlX21lbV9yZWdpb24oc3RydWN0IHJlc291cmNl ICpiYXNlLAogCQl1bnNpZ25lZCBsb25nIHNpemUsIGNvbnN0IGNoYXIgKm5hbWUpOwogCi0jaWZk ZWYgQ09ORklHX0lPX1NUUklDVF9ERVZNRU0KLXZvaWQgcmV2b2tlX2Rldm1lbShzdHJ1Y3QgcmVz b3VyY2UgKnJlcyk7Ci0jZWxzZQotc3RhdGljIGlubGluZSB2b2lkIHJldm9rZV9kZXZtZW0oc3Ry dWN0IHJlc291cmNlICpyZXMpIHsgfTsKLSNlbmRpZgorZXh0ZXJuIHN0cnVjdCBhZGRyZXNzX3Nw YWNlICppb21lbV9nZXRfbWFwcGluZyh2b2lkKTsKIAogI2VuZGlmIC8qIF9fQVNTRU1CTFlfXyAq LwogI2VuZGlmCS8qIF9MSU5VWF9JT1BPUlRfSCAqLwpkaWZmIC0tZ2l0IGEva2VybmVsL3Jlc291 cmNlLmMgYi9rZXJuZWwvcmVzb3VyY2UuYwppbmRleCA4NDE3MzdiYmRhOWUuLmE4MDBhY2JjNTc4 YyAxMDA2NDQKLS0tIGEva2VybmVsL3Jlc291cmNlLmMKKysrIGIva2VybmVsL3Jlc291cmNlLmMK QEAgLTE4LDEyICsxOCwxNSBAQAogI2luY2x1ZGUgPGxpbnV4L3NwaW5sb2NrLmg+CiAjaW5jbHVk ZSA8bGludXgvZnMuaD4KICNpbmNsdWRlIDxsaW51eC9wcm9jX2ZzLmg+CisjaW5jbHVkZSA8bGlu dXgvcHNldWRvX2ZzLmg+CiAjaW5jbHVkZSA8bGludXgvc2NoZWQuaD4KICNpbmNsdWRlIDxsaW51 eC9zZXFfZmlsZS5oPgogI2luY2x1ZGUgPGxpbnV4L2RldmljZS5oPgogI2luY2x1ZGUgPGxpbnV4 L3Bmbi5oPgogI2luY2x1ZGUgPGxpbnV4L21tLmg+CisjaW5jbHVkZSA8bGludXgvbW91bnQuaD4K ICNpbmNsdWRlIDxsaW51eC9yZXNvdXJjZV9leHQuaD4KKyNpbmNsdWRlIDx1YXBpL2xpbnV4L21h Z2ljLmg+CiAjaW5jbHVkZSA8YXNtL2lvLmg+CiAKIApAQCAtMTExMiw2ICsxMTE1LDU4IEBAIHJl c291cmNlX3NpemVfdCByZXNvdXJjZV9hbGlnbm1lbnQoc3RydWN0IHJlc291cmNlICpyZXMpCiAK IHN0YXRpYyBERUNMQVJFX1dBSVRfUVVFVUVfSEVBRChtdXhlZF9yZXNvdXJjZV93YWl0KTsKIAor c3RhdGljIHN0cnVjdCBpbm9kZSAqaW9tZW1faW5vZGU7CisKKyNpZmRlZiBDT05GSUdfSU9fU1RS SUNUX0RFVk1FTQorc3RhdGljIHZvaWQgcmV2b2tlX2lvbWVtKHN0cnVjdCByZXNvdXJjZSAqcmVz KQoreworCS8qIHBhaXJzIHdpdGggc21wX3N0b3JlX3JlbGVhc2UoKSBpbiBpb21lbV9pbml0X2lu b2RlKCkgKi8KKwlzdHJ1Y3QgaW5vZGUgKmlub2RlID0gc21wX2xvYWRfYWNxdWlyZSgmaW9tZW1f aW5vZGUpOworCisJLyoKKwkgKiBDaGVjayB0aGF0IHRoZSBpbml0aWFsaXphdGlvbiBoYXMgY29t cGxldGVkLiBMb3NpbmcgdGhlIHJhY2UKKwkgKiBpcyBvayBiZWNhdXNlIGl0IG1lYW5zIGRyaXZl cnMgYXJlIGNsYWltaW5nIHJlc291cmNlcyBiZWZvcmUKKwkgKiB0aGUgZnNfaW5pdGNhbGwgbGV2 ZWwgb2YgaW5pdCBhbmQgcHJldmVudCBpb21lbV9nZXRfbWFwcGluZyB1c2VycworCSAqIGZyb20g ZXN0YWJsaXNoaW5nIG1hcHBpbmdzLgorCSAqLworCWlmICghaW5vZGUpCisJCXJldHVybjsKKwor CS8qCisJICogVGhlIGV4cGVjdGF0aW9uIGlzIHRoYXQgdGhlIGRyaXZlciBoYXMgc3VjY2Vzc2Z1 bGx5IG1hcmtlZAorCSAqIHRoZSByZXNvdXJjZSBidXN5IGJ5IHRoaXMgcG9pbnQsIHNvIGRldm1l bV9pc19hbGxvd2VkKCkKKwkgKiBzaG91bGQgc3RhcnQgcmV0dXJuaW5nIGZhbHNlLCBob3dldmVy IGZvciBwZXJmb3JtYW5jZSB0aGlzCisJICogZG9lcyBub3QgaXRlcmF0ZSB0aGUgZW50aXJlIHJl c291cmNlIHJhbmdlLgorCSAqLworCWlmIChkZXZtZW1faXNfYWxsb3dlZChQSFlTX1BGTihyZXMt PnN0YXJ0KSkgJiYKKwkgICAgZGV2bWVtX2lzX2FsbG93ZWQoUEhZU19QRk4ocmVzLT5lbmQpKSkg eworCQkvKgorCQkgKiAqY3JpbmdlKiBpb21lbT1yZWxheGVkIHNheXMgImdvIGFoZWFkLCB3aGF0 J3MgdGhlCisJCSAqIHdvcnN0IHRoYXQgY2FuIGhhcHBlbj8iCisJCSAqLworCQlyZXR1cm47CisJ fQorCisJdW5tYXBfbWFwcGluZ19yYW5nZShpbm9kZS0+aV9tYXBwaW5nLCByZXMtPnN0YXJ0LCBy ZXNvdXJjZV9zaXplKHJlcyksIDEpOworfQorc3RydWN0IGFkZHJlc3Nfc3BhY2UgKmlvbWVtX2dl dF9tYXBwaW5nKHZvaWQpCit7CisJLyoKKwkgKiBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgY2FsbGVk IGZyb20gZmlsZSBvcGVuIHBhdGhzLCBoZW5jZSBndWFyYW50ZWVkCisJICogdGhhdCBmc19pbml0 Y2FsbHMgaGF2ZSBjb21wbGV0ZWQgYW5kIG5vIG5lZWQgdG8gY2hlY2sgZm9yIE5VTEwuIEJ1dAor CSAqIHNpbmNlIHJldm9rZV9pb21lbSBjYW4gYmUgY2FsbGVkIGJlZm9yZSB0aGUgaW5pdGNhbGwg d2Ugc3RpbGwgbmVlZAorCSAqIHRoZSBiYXJyaWVyIHRvIGFwcGVhc2UgY2hlY2tlcnMuCisJICov CisJcmV0dXJuIHNtcF9sb2FkX2FjcXVpcmUoJmlvbWVtX2lub2RlKS0+aV9tYXBwaW5nOworfQor I2Vsc2UKK3N0YXRpYyB2b2lkIHJldm9rZV9pb21lbShzdHJ1Y3QgcmVzb3VyY2UgKnJlcykge30K K3N0cnVjdCBhZGRyZXNzX3NwYWNlICppb21lbV9nZXRfbWFwcGluZyh2b2lkKQoreworCXJldHVy biBOVUxMOworfQorI2VuZGlmCisKIC8qKgogICogX19yZXF1ZXN0X3JlZ2lvbiAtIGNyZWF0ZSBh IG5ldyBidXN5IHJlc291cmNlIHJlZ2lvbgogICogQHBhcmVudDogcGFyZW50IHJlc291cmNlIGRl c2NyaXB0b3IKQEAgLTExNzksNyArMTIzNCw3IEBAIHN0cnVjdCByZXNvdXJjZSAqIF9fcmVxdWVz dF9yZWdpb24oc3RydWN0IHJlc291cmNlICpwYXJlbnQsCiAJd3JpdGVfdW5sb2NrKCZyZXNvdXJj ZV9sb2NrKTsKIAogCWlmIChyZXMgJiYgb3JpZ19wYXJlbnQgPT0gJmlvbWVtX3Jlc291cmNlKQot CQlyZXZva2VfZGV2bWVtKHJlcyk7CisJCXJldm9rZV9pb21lbShyZXMpOwogCiAJcmV0dXJuIHJl czsKIH0KQEAgLTE3MTMsNCArMTc2OCw0OCBAQCBzdGF0aWMgaW50IF9faW5pdCBzdHJpY3RfaW9t ZW0oY2hhciAqc3RyKQogCXJldHVybiAxOwogfQogCitzdGF0aWMgaW50IGlvbWVtX2ZzX2luaXRf ZnNfY29udGV4dChzdHJ1Y3QgZnNfY29udGV4dCAqZmMpCit7CisJcmV0dXJuIGluaXRfcHNldWRv KGZjLCBERVZNRU1fTUFHSUMpID8gMCA6IC1FTk9NRU07Cit9CisKK3N0YXRpYyBzdHJ1Y3QgZmls ZV9zeXN0ZW1fdHlwZSBpb21lbV9mc190eXBlID0geworCS5uYW1lCQk9ICJpb21lbSIsCisJLm93 bmVyCQk9IFRISVNfTU9EVUxFLAorCS5pbml0X2ZzX2NvbnRleHQgPSBpb21lbV9mc19pbml0X2Zz X2NvbnRleHQsCisJLmtpbGxfc2IJPSBraWxsX2Fub25fc3VwZXIsCit9OworCitzdGF0aWMgaW50 IF9faW5pdCBpb21lbV9pbml0X2lub2RlKHZvaWQpCit7CisJc3RhdGljIHN0cnVjdCB2ZnNtb3Vu dCAqaW9tZW1fdmZzX21vdW50OworCXN0YXRpYyBpbnQgaW9tZW1fZnNfY250OworCXN0cnVjdCBp bm9kZSAqaW5vZGU7CisJaW50IHJjOworCisJcmMgPSBzaW1wbGVfcGluX2ZzKCZpb21lbV9mc190 eXBlLCAmaW9tZW1fdmZzX21vdW50LCAmaW9tZW1fZnNfY250KTsKKwlpZiAocmMgPCAwKSB7CisJ CXByX2VycigiQ2Fubm90IG1vdW50IGlvbWVtIHBzZXVkbyBmaWxlc3lzdGVtOiAlZFxuIiwgcmMp OworCQlyZXR1cm4gcmM7CisJfQorCisJaW5vZGUgPSBhbGxvY19hbm9uX2lub2RlKGlvbWVtX3Zm c19tb3VudC0+bW50X3NiKTsKKwlpZiAoSVNfRVJSKGlub2RlKSkgeworCQlyYyA9IFBUUl9FUlIo aW5vZGUpOworCQlwcl9lcnIoIkNhbm5vdCBhbGxvY2F0ZSBpbm9kZSBmb3IgaW9tZW06ICVkXG4i LCByYyk7CisJCXNpbXBsZV9yZWxlYXNlX2ZzKCZpb21lbV92ZnNfbW91bnQsICZpb21lbV9mc19j bnQpOworCQlyZXR1cm4gcmM7CisJfQorCisJLyoKKwkgKiBQdWJsaXNoIGlvbWVtIHJldm9jYXRp b24gaW5vZGUgaW5pdGlhbGl6ZWQuCisJICogUGFpcnMgd2l0aCBzbXBfbG9hZF9hY3F1aXJlKCkg aW4gcmV2b2tlX2lvbWVtKCkuCisJICovCisJc21wX3N0b3JlX3JlbGVhc2UoJmlvbWVtX2lub2Rl LCBpbm9kZSk7CisKKwlyZXR1cm4gMDsKK30KKworZnNfaW5pdGNhbGwoaW9tZW1faW5pdF9pbm9k ZSk7CisKIF9fc2V0dXAoImlvbWVtPSIsIHN0cmljdF9pb21lbSk7Ci0tIAoyLjI4LjAKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWls aW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZy ZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=