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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6F8BECCF2E3 for ; Mon, 19 Oct 2026 14:00:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc: To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=JacI1PS0XwMOWP778EnHVdGmIAyo9cuU52auPMAJsoE=; b=zsRD7i1PDq3eZ2/03OvAUfPLow TC17g7SZZu3miNF0LeiPKb+UekCk4Znl+VbXGay3tEUjJM2Okvw0sp0XTNkxZT6HGgB1ylbforYud AW9j96ZlR6rYg2ZMBgz2fG9Ud0jya+z3XdJMAGQzpcj/Dhlk7z6GZO10GSK0AFe1OoR4pupmaaCjD 9Pw33uxeBrF86aIkpVaVmhGW0LeqEeuwQvkCv4xqtTE7Y+K60eL3yDppceLfau+jAmZ+mc0dcm8vy 3EpyDnPqN2EUwEQVXJL74rPs2ndS8EBdjpdtGegnx+If2lmAcj99cQZdGrqWlTwxuh8QFUCvGbPiz FvoXoLcw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xInuf-00000007cjm-1o1i; Mon, 19 Oct 2026 14:00:29 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xInud-00000007cia-1ZeA; Mon, 19 Oct 2026 14:00:27 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 23FBA4156E; Mon, 19 Oct 2026 14:00:27 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 196D61F000C4; Mon, 19 Oct 2026 14:00:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1792418427; bh=JacI1PS0XwMOWP778EnHVdGmIAyo9cuU52auPMAJsoE=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=LfkFchotC3QxoscvW1UDJoVgkWT4XWJUrj+aW9Q5Un4OJX3bwWnLMS+INDAgac/SP Q060nztt6GHOKvvsW+4QERmfnPXkNVaQ2FSUuRhRcP4nikLvGSNcpQ0L9Mp/nUAmxd A3VPaX33sThOT0IgqMcZYZVHgw8jN9wOZo8izP0vVlHJ5aTx/qBhkynEDGjk3lxnPJ 6ezA3LByQk0cnjLfhdeFh9AumjVmVRdli/AmU+oAKyK52tTnzzEvS/EOvf/bcOD4Rs mSnVaUKIJ8i/SoobJhJERlSbIBYuQkO5bem1H6K/wNi9tNF/494dhYO5tSjyRwEcxE 1VP6j+ceuiE6Q== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: Pengpeng Hou , Neil Armstrong , Sasha Levin , khilman@baylibre.com, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH AUTOSEL 6.18] soc: amlogic: meson-clk-measure: remove debugfs tree Date: Mon, 19 Oct 2026 09:48:52 -0400 Message-ID: <20261019135441.1420968-241-sashal@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20261019135441.1420968-1-sashal@kernel.org> References: <20261019135441.1420968-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.18.57 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Pengpeng Hou [ Upstream commit 67481152be2ec5de3529664c82054b43d6d4b9f5 ] meson_msr_probe() creates a debugfs tree with entries that reference devm-managed measurement table entries and the driver's private regmap state. The driver has no remove callback, so unbinding the device can leave those debugfs entries behind after the private data is released. Store the debugfs root and remove the subtree from a new remove callback. Signed-off-by: Pengpeng Hou Reviewed-by: Neil Armstrong Link: https://patch.msgid.link/20260615091531.21964-1-pengpeng@iscas.ac.cn Signed-off-by: Neil Armstrong Signed-off-by: Sasha Levin --- LLM Generated explanations, may be completely bogus: ## Phase 1: Commit message forensics **Step 1.1 — Subject** - Record: `[soc: amlogic: meson-clk-measure]` `[remove]` `[tear down leftover debugfs on driver unbind]` **Step 1.2 — Tags** - `Reviewed-by: Neil Armstrong ` (Amlogic SoC maintainer; also committed the patch) - `Link: https://patch.msgid.link/20260615091531.21964-1-pengpeng@iscas.ac.cn` - `Signed-off-by: Pengpeng Hou ` (author) - `Signed-off-by: Neil Armstrong ` (maintainer) - No `Fixes:`, no `Reported-by:`, no `Tested-by:`, no `Cc: stable` (absence is expected) - No syzbot / bugzilla / CVE tags **Step 1.3 — Body** - Record: `[Bug: probe creates debugfs entries that point at devm- managed `msr_table` and private regmap state, but the driver had no remove callback.]` - `[Symptom: after unbind, leftover debugfs files can be used after that memory is released.]` - `[Version info: none in the message. Driver has existed since v5.0.]` - `[Root cause: missing lifetime teardown for debugfs vs. devm-managed private data.]` **Step 1.4 — Hidden bug fix?** - Record: `[Not hidden. This is an explicit lifetime/UAF fix, even though the verb is "remove".]` ## Phase 2: Diff analysis **Step 2.1 — Inventory** - Record: `[drivers/soc/amlogic/meson-clk-measure.c: +14 / −0]` - Functions: `struct meson_msr` (new `debugfs_root`), `meson_msr_probe()`, new `meson_msr_remove()`, `meson_msr_driver` table - Scope: single-file surgical fix **Step 2.2 — Code flow** - Before: `meson_msr_probe()` builds `/sys/kernel/debug/meson-clk-msr/` (`measure_summary` plus per-clock files). File private data is `priv->data.msr_table` and `&priv->data.msr_table[i]`, with `.priv = priv`. `priv`, `msr_table`, `reg`, and `regmap` are all `devm_*` allocations. There was no `platform_set_drvdata()` and no `.remove`. - After: root dentry is stored, `platform_set_drvdata()` is set, and `meson_msr_remove()` calls `debugfs_remove_recursive()` so the tree is gone before devres frees private data. - Path: driver remove / module unload / sysfs unbind, not the normal measure path. **Step 2.3 — Bug mechanism** - Record: `[Use-after-free / leftover debugfs after unbind]` - Mechanism: unbind runs `devres` teardown and frees `priv` / `msr_table` / `regmap`. Debugfs files remain. `clk_msr_summary_show()` does `msr_table->priv->data.msr_count`; `meson_measure_id()` then uses `priv->regmap` and `priv->data.reg`. That is a UAF if those files are read after unbind. - Category (c)/(d): lifetime/refcount-style teardown; memory safety. **Step 2.4 — Fix quality** - Record: `[Obviously correct, minimal, standard pattern.]` - `debugfs_remove()` itself already ignores `IS_ERR_OR_NULL`, so the extra check is redundant but harmless. - `platform_set_drvdata()` is required for `platform_get_drvdata()` in remove. - `.remove` is `void (*)(struct platform_device *)` in this tree, matching the new callback. - Regression risk: low. `debugfs_remove()` uses `simple_recursive_removal()`, so in-flight file users are drained before return. No public API change. ## Phase 3: Git history **Step 3.1 — Blame** - Record: `[Buggy debugfs creation is from 2b45ebef39a2c ("soc: amlogic: Add Meson Clock Measure driver"), 2018-11-28, first in v5.0-rc1.]` - The missing-remove bug is as old as the driver. Confirmed on the parent of the fix: no `platform_set_drvdata`, no `debugfs_root`, no remove callback. **Step 3.2 — Fixes: tag** - Record: `[No Fixes: tag. Introducer is 2b45ebef39a2c, present in this tree.]` **Step 3.3 — File history** - Record: `[Recent commits add SoC tables (A1/T7, S4, C3) and register- offset refactoring. None change debugfs lifetime.]` - Standalone, not patch X/Y. **Step 3.4 — Author** - Record: `[Pengpeng Hou: only this commit on this driver. Reviewer/committer Neil Armstrong is the original driver author and Amlogic maintainer.]` **Step 3.5 — Dependencies** - Record: `[None. Uses existing `debugfs_create_dir` / `debugfs_remove_recursive` / `platform_set_drvdata`. Can apply standalone to this tree.]` ## Phase 4: Mailing list and external research **Step 4.1 — Original discussion** - Record: `[https://patch.msgid.link/20260615091531.21964-1- pengpeng@iscas.ac.cn]` - `b4 dig -a`: only v1; that version was applied. - Maintainer review: `Reviewed-by: Neil Armstrong`. - Sashiko bot flagged a pre-existing probe-time race (`measure_summary` created before `.priv` is filled). Armstrong replied: “Impossible the driver is initialized way before userspace starts.” That race is not introduced by this patch and was not treated as a blocker. - No NAK. No reviewer request for `Cc: stable`. **Step 4.2 — Recipients (`b4 dig -w`)** - Record: `[Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl, linux-amlogic, linux-arm-kernel, linux-kernel. Right maintainers were on the patch.]` **Step 4.3 — Bug report** - Record: `[No Reported-by / syzbot / bugzilla. Bug is from code inspection of lifetime mismatch.]` **Step 4.4 — Series** - Record: `[Standalone single patch. No follow-up on this file after 67481152be2ec.]` **Step 4.5 — Stable list** - Record: `[UNVERIFIED: lore.kernel.org/stable returned HTTP 403.]` ## Phase 5: Code semantic analysis **Step 5.1 — Functions** - Record: `[meson_msr_probe, meson_msr_remove (new), meson_msr_driver; readers clk_msr_show / clk_msr_summary_show / meson_measure_id]` **Step 5.2 — Callers** - Record: `[probe/remove from the platform core on bind/unbind. Debugfs show via `DEFINE_SHOW_ATTRIBUTE`. `meson_msr_remove` is only the new driver `.remove`.]` **Step 5.3 — Callees** - Record: `[debugfs_create_dir/file, debugfs_remove_recursive, platform_set/get_drvdata, and on read: mutex + regmap MMIO.]` **Step 5.4 — Reachability** - Record: `[Yes. CONFIG_MESON_CLK_MEASURE is tristate, default y on ARCH_MESON. DT nodes exist for GX, Meson8/8b, AXG, G12A, SM1, C3, S4, A1, T7. Unbind is `rmmod meson-clk-measure` or sysfs unbind, then reading leftover debugfs. Typically root-only, but still a real kernel UAF.]` **Step 5.5 — Similar patterns** - Record: `[Same teardown exists in other SoC drivers (qcom smem/socinfo/aoss, ti smartreflex). This driver was the one missing it.]` ## Phase 6: This tree (v7.3-rc4) **Step 6.1 — Does the buggy code exist here?** - Record: `[Yes in this lineage. Driver is `drivers/soc/amlogic/meson- clk-measure.c`. Bug introduced in v5.0 (2b45ebef39a2c). This checkout is `v7.3-rc4-27-gf0100363d8c37` / 7.3.0-rc4. The fix landed in v7.3-rc1 (`git merge-base --is-ancestor 67481152be2ec v7.3-rc1` succeeded; it is not in v7.2).]` - Current file already has `debugfs_root` and `meson_msr_remove()`. That is because the commit merged during 7.3; it is not a reason to treat the bug as never existing here. **Step 6.2 — Backport difficulty** - Record: `[Clean apply on this tree. Context matches. `.remove` is already void.]` **Step 6.3 — Related fixes already here?** - Record: `[This is the fix. No alternate teardown was present before it.]` ## Phase 7: Subsystem context **Step 7.1** - Record: `[Subsystem: drivers/soc/amlogic clock-measure debugfs helper. Criticality: PERIPHERAL (Amlogic-only, debugfs), but UAF is still a crash/memory-safety bug.]` **Step 7.2** - Record: `[Mature driver (2018). Recent work is new SoC tables, not lifetime redesign.]` ## Phase 8: Impact and risk **Step 8.1 — Who is affected** - Record: `[Amlogic Meson users with CONFIG_MESON_CLK_MEASURE and CONFIG_DEBUG_FS, after driver unbind/unload.]` **Step 8.2 — Trigger** - Record: `[Unbind or rmmod, then open leftover debugfs. Not a boot-hot path. Privileged in typical debugfs setups. Deterministic UAF, not a heisenrace.]` **Step 8.3 — Failure mode** - Record: `[UAF → oops / KASAN / possible memory corruption. Severity: HIGH.]` **Step 8.4 — Risk-benefit** - Record: `[Benefit: high for the affected unbind path (prevents UAF). Risk: very low (14 lines, standard debugfs teardown). Ratio favors taking the fix.]` ## Phase 9: Synthesis **Step 9.1 — Evidence** For: - Real UAF: leftover debugfs vs. `devm` private data after unbind - Small (+14), obviously correct - Reviewed and applied by the subsystem maintainer - Driver and bug exist in this 7.3 tree’s history since v5.0 - `MESON_CLK_MEASURE` is tristate, so module unload is a supported path - Same teardown pattern used elsewhere in `drivers/soc/` Against: - No user/syzbot report - Debugfs, typically root-only - Amlogic-only helper, not core kernel - Maintainer did not nominate stable Unresolved: - Could not search lore.kernel.org/stable (HTTP 403) **Step 9.2 — Stable rules** 1. Obviously correct and tested? **PASS** — standard remove + `debugfs_remove_recursive`; maintainer Reviewed-by 2. Real bug affecting users? **PASS** — leftover debugfs after unbind is a UAF 3. Important (crash/security/corruption/deadlock)? **PASS** — UAF oops / memory-safety; HIGH, not a theoretical warning 4. Small and contained? **PASS** — 14 lines, one file 5. No new features/APIs? **PASS** 6. Applies to this tree? **PASS** — driver present, void `.remove`, no missing prereqs **Step 9.3 — Exception category** - Record: `[None. This is a normal bugfix, not a device- ID/quirk/DT/build/docs exception.]` **Step 9.4 — Decision** This tree is 7.3-rc4. The clock-measure driver is here, the missing- remove UAF has been here since v5.0, and the patch is a small, correct teardown. It meets stable criteria for this checkout. ### What it fixes and why it matters `meson_msr_probe()` publishes debugfs files whose private pointers refer to `devm`-allocated `priv` / `msr_table` / `regmap`. Without a remove callback those dentries survive unbind, so a later read of `measure_summary` or a per-clock file uses freed memory. On 7.3 that is a real module-unload/unbind UAF on Amlogic boards that ship this IP. ### Stable rules / risk The change is 14 lines, does not add APIs, and matches `debugfs_remove()` semantics already used by sibling SoC drivers. Benefit is preventing a UAF; regression risk is very low. ### Concerns No public reproducer. Trigger is privileged debugfs/unbind. That lowers breadth, not severity. No extra commits are required on this tree. Verification: - [Phase 1] Parsed tags: Reviewed-by Neil Armstrong; Link to msgid 20260615091531.21964-1; no Fixes/Reported-by/Cc:stable - [Phase 2] Diff: +14 in meson-clk-measure.c; store debugfs root, set drvdata, add void remove - [Phase 2] Pre-fix parent 67481152be2ec^: no platform_set_drvdata, no debugfs_root, no remove - [Phase 2] clk_msr_summary_show uses msr_table->priv; meson_measure_id uses priv->regmap — UAF after unbind confirmed - [Phase 3] git blame: debugfs create from 2b45ebef39a2c (v5.0-rc1) - [Phase 3] git describe HEAD: v7.3-rc4-27-gf0100363d8c37; Makefile 7.3.0-rc4 - [Phase 3] git merge-base --is-ancestor 67481152be2ec v7.3-rc1: yes; not in v7.2 - [Phase 4] b4 dig -c 67481152be2ec: https://patch.msgid.link/20260615091531.21964-1-pengpeng@iscas.ac.cn - [Phase 4] b4 dig -a: v1 only, applied as-is - [Phase 4] b4 dig -w: Armstrong, Hilman, Brunet, Blumenstingl, linux- amlogic - [Phase 4] mbox: Armstrong Reviewed-by; dismissed sashiko probe-race as pre-existing/impossible - [Phase 5] Kconfig MESON_CLK_MEASURE tristate default ARCH_MESON; DT compatibles in meson-gx/g12/axg/sm1/s4/a1/t7/c3 dtsi - [Phase 5] platform_driver.remove is void (*)(struct platform_device *) in include/linux/platform_device.h:280 - [Phase 5] debugfs_remove() already IS_ERR_OR_NULL-safe (fs/debugfs/inode.c:778) - [Phase 6] File present; no later changes on this file after the fix - [Phase 8] Failure mode: UAF on leftover debugfs after unbind, severity HIGH - UNVERIFIED: lore.kernel.org/stable search (HTTP 403) **YES** drivers/soc/amlogic/meson-clk-measure.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/drivers/soc/amlogic/meson-clk-measure.c b/drivers/soc/amlogic/meson-clk-measure.c index d862e30a244ed..7ca43bcb622a2 100644 --- a/drivers/soc/amlogic/meson-clk-measure.c +++ b/drivers/soc/amlogic/meson-clk-measure.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -50,6 +51,7 @@ struct meson_msr_data { struct meson_msr { struct regmap *regmap; struct meson_msr_data data; + struct dentry *debugfs_root; }; #define CLK_MSR_ID(__id, __name) \ @@ -952,6 +954,7 @@ static int meson_msr_probe(struct platform_device *pdev) sizeof(struct msr_reg_offset)); root = debugfs_create_dir("meson-clk-msr", NULL); + priv->debugfs_root = root; clks = debugfs_create_dir("clks", root); debugfs_create_file("measure_summary", 0444, root, @@ -967,9 +970,19 @@ static int meson_msr_probe(struct platform_device *pdev) &priv->data.msr_table[i], &clk_msr_fops); } + platform_set_drvdata(pdev, priv); + return 0; } +static void meson_msr_remove(struct platform_device *pdev) +{ + struct meson_msr *priv = platform_get_drvdata(pdev); + + if (!IS_ERR_OR_NULL(priv->debugfs_root)) + debugfs_remove_recursive(priv->debugfs_root); +} + static const struct msr_reg_offset msr_reg_offset = { .duty_val = 0x0, .freq_ctrl = 0x4, @@ -1065,6 +1078,7 @@ MODULE_DEVICE_TABLE(of, meson_msr_match_table); static struct platform_driver meson_msr_driver = { .probe = meson_msr_probe, + .remove = meson_msr_remove, .driver = { .name = "meson_msr", .of_match_table = meson_msr_match_table, -- 2.53.0 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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 9EE40CCF2DE for ; Mon, 19 Oct 2026 14:00:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=djPs2M9T9o3gednsBecd3SylNo9M35T9SfpcAMgPASU=; b=uUhtuARszYr+pI FzWXGs4XbXr5dnhVqHn+kY3kxm1IgV5K2VeR+RlJ4OsPU0i8Ls+kgyJa0Rlz/lQjhyim15D0OZLAf ABCyWldmJB8UOrXqHAipWMFH5NdxbhWMtC4OSB6IK5qpoIIOjvlpOK5BSaud23hCXNcNUX+y4JsTs nxBwgipS1EbmGBof4epIbFSAlKAo9Uznmh3dqOx47wagUMmn9z6lXWZy8Luk0gFa4m3pCrsPIrZAD 74TeLiXHvME7FIiz/lHAGcFoL+wx4/Plr2kEQJ+R7Upl5D5CZ+IBlejwxpkZoDblnnPl5T4sHVmAO SGKQ0uWgfoYzmtbQduiQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1xInuf-00000007cjS-0tIH; Mon, 19 Oct 2026 14:00:29 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1xInud-00000007cia-1ZeA; Mon, 19 Oct 2026 14:00:27 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 23FBA4156E; Mon, 19 Oct 2026 14:00:27 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 196D61F000C4; Mon, 19 Oct 2026 14:00:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1792418427; bh=JacI1PS0XwMOWP778EnHVdGmIAyo9cuU52auPMAJsoE=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=LfkFchotC3QxoscvW1UDJoVgkWT4XWJUrj+aW9Q5Un4OJX3bwWnLMS+INDAgac/SP Q060nztt6GHOKvvsW+4QERmfnPXkNVaQ2FSUuRhRcP4nikLvGSNcpQ0L9Mp/nUAmxd A3VPaX33sThOT0IgqMcZYZVHgw8jN9wOZo8izP0vVlHJ5aTx/qBhkynEDGjk3lxnPJ 6ezA3LByQk0cnjLfhdeFh9AumjVmVRdli/AmU+oAKyK52tTnzzEvS/EOvf/bcOD4Rs mSnVaUKIJ8i/SoobJhJERlSbIBYuQkO5bem1H6K/wNi9tNF/494dhYO5tSjyRwEcxE 1VP6j+ceuiE6Q== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: Pengpeng Hou , Neil Armstrong , Sasha Levin , khilman@baylibre.com, linux-arm-kernel@lists.infradead.org, linux-amlogic@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH AUTOSEL 6.18] soc: amlogic: meson-clk-measure: remove debugfs tree Date: Mon, 19 Oct 2026 09:48:52 -0400 Message-ID: <20261019135441.1420968-241-sashal@kernel.org> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20261019135441.1420968-1-sashal@kernel.org> References: <20261019135441.1420968-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.18.57 X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org RnJvbTogUGVuZ3BlbmcgSG91IDxwZW5ncGVuZ0Bpc2Nhcy5hYy5jbj4KClsgVXBzdHJlYW0gY29t bWl0IDY3NDgxMTUyYmUyZWM1ZGUzNTI5NjY0YzgyMDU0YjQzZDZkNGI5ZjUgXQoKbWVzb25fbXNy X3Byb2JlKCkgY3JlYXRlcyBhIGRlYnVnZnMgdHJlZSB3aXRoIGVudHJpZXMgdGhhdCByZWZlcmVu Y2UKZGV2bS1tYW5hZ2VkIG1lYXN1cmVtZW50IHRhYmxlIGVudHJpZXMgYW5kIHRoZSBkcml2ZXIn cyBwcml2YXRlIHJlZ21hcApzdGF0ZS4gVGhlIGRyaXZlciBoYXMgbm8gcmVtb3ZlIGNhbGxiYWNr LCBzbyB1bmJpbmRpbmcgdGhlIGRldmljZSBjYW4KbGVhdmUgdGhvc2UgZGVidWdmcyBlbnRyaWVz IGJlaGluZCBhZnRlciB0aGUgcHJpdmF0ZSBkYXRhIGlzIHJlbGVhc2VkLgoKU3RvcmUgdGhlIGRl YnVnZnMgcm9vdCBhbmQgcmVtb3ZlIHRoZSBzdWJ0cmVlIGZyb20gYSBuZXcgcmVtb3ZlIGNhbGxi YWNrLgoKU2lnbmVkLW9mZi1ieTogUGVuZ3BlbmcgSG91IDxwZW5ncGVuZ0Bpc2Nhcy5hYy5jbj4K UmV2aWV3ZWQtYnk6IE5laWwgQXJtc3Ryb25nIDxuZWlsLmFybXN0cm9uZ0BsaW5hcm8ub3JnPgpM aW5rOiBodHRwczovL3BhdGNoLm1zZ2lkLmxpbmsvMjAyNjA2MTUwOTE1MzEuMjE5NjQtMS1wZW5n cGVuZ0Bpc2Nhcy5hYy5jbgpTaWduZWQtb2ZmLWJ5OiBOZWlsIEFybXN0cm9uZyA8bmVpbC5hcm1z dHJvbmdAbGluYXJvLm9yZz4KU2lnbmVkLW9mZi1ieTogU2FzaGEgTGV2aW4gPHNhc2hhbEBrZXJu ZWwub3JnPgotLS0KCkxMTSBHZW5lcmF0ZWQgZXhwbGFuYXRpb25zLCBtYXkgYmUgY29tcGxldGVs eSBib2d1czoKCiMjIFBoYXNlIDE6IENvbW1pdCBtZXNzYWdlIGZvcmVuc2ljcwoKKipTdGVwIDEu MSDigJQgU3ViamVjdCoqCi0gUmVjb3JkOiBgW3NvYzogYW1sb2dpYzogbWVzb24tY2xrLW1lYXN1 cmVdYCBgW3JlbW92ZV1gIGBbdGVhciBkb3duCiAgbGVmdG92ZXIgZGVidWdmcyBvbiBkcml2ZXIg dW5iaW5kXWAKCioqU3RlcCAxLjIg4oCUIFRhZ3MqKgotIGBSZXZpZXdlZC1ieTogTmVpbCBBcm1z dHJvbmcgPG5laWwuYXJtc3Ryb25nQGxpbmFyby5vcmc+YCAoQW1sb2dpYyBTb0MKICBtYWludGFp bmVyOyBhbHNvIGNvbW1pdHRlZCB0aGUgcGF0Y2gpCi0gYExpbms6CiAgaHR0cHM6Ly9wYXRjaC5t c2dpZC5saW5rLzIwMjYwNjE1MDkxNTMxLjIxOTY0LTEtcGVuZ3BlbmdAaXNjYXMuYWMuY25gCi0g YFNpZ25lZC1vZmYtYnk6IFBlbmdwZW5nIEhvdSA8cGVuZ3BlbmdAaXNjYXMuYWMuY24+YCAoYXV0 aG9yKQotIGBTaWduZWQtb2ZmLWJ5OiBOZWlsIEFybXN0cm9uZyA8bmVpbC5hcm1zdHJvbmdAbGlu YXJvLm9yZz5gCiAgKG1haW50YWluZXIpCi0gTm8gYEZpeGVzOmAsIG5vIGBSZXBvcnRlZC1ieTpg LCBubyBgVGVzdGVkLWJ5OmAsIG5vIGBDYzogc3RhYmxlYAogIChhYnNlbmNlIGlzIGV4cGVjdGVk KQotIE5vIHN5emJvdCAvIGJ1Z3ppbGxhIC8gQ1ZFIHRhZ3MKCioqU3RlcCAxLjMg4oCUIEJvZHkq KgotIFJlY29yZDogYFtCdWc6IHByb2JlIGNyZWF0ZXMgZGVidWdmcyBlbnRyaWVzIHRoYXQgcG9p bnQgYXQgZGV2bS0KICBtYW5hZ2VkIGBtc3JfdGFibGVgIGFuZCBwcml2YXRlIHJlZ21hcCBzdGF0 ZSwgYnV0IHRoZSBkcml2ZXIgaGFkIG5vCiAgcmVtb3ZlIGNhbGxiYWNrLl1gCi0gYFtTeW1wdG9t OiBhZnRlciB1bmJpbmQsIGxlZnRvdmVyIGRlYnVnZnMgZmlsZXMgY2FuIGJlIHVzZWQgYWZ0ZXIg dGhhdAogIG1lbW9yeSBpcyByZWxlYXNlZC5dYAotIGBbVmVyc2lvbiBpbmZvOiBub25lIGluIHRo ZSBtZXNzYWdlLiBEcml2ZXIgaGFzIGV4aXN0ZWQgc2luY2UgdjUuMC5dYAotIGBbUm9vdCBjYXVz ZTogbWlzc2luZyBsaWZldGltZSB0ZWFyZG93biBmb3IgZGVidWdmcyB2cy4gZGV2bS1tYW5hZ2Vk CiAgcHJpdmF0ZSBkYXRhLl1gCgoqKlN0ZXAgMS40IOKAlCBIaWRkZW4gYnVnIGZpeD8qKgotIFJl Y29yZDogYFtOb3QgaGlkZGVuLiBUaGlzIGlzIGFuIGV4cGxpY2l0IGxpZmV0aW1lL1VBRiBmaXgs IGV2ZW4KICB0aG91Z2ggdGhlIHZlcmIgaXMgInJlbW92ZSIuXWAKCiMjIFBoYXNlIDI6IERpZmYg YW5hbHlzaXMKCioqU3RlcCAyLjEg4oCUIEludmVudG9yeSoqCi0gUmVjb3JkOiBgW2RyaXZlcnMv c29jL2FtbG9naWMvbWVzb24tY2xrLW1lYXN1cmUuYzogKzE0IC8g4oiSMF1gCi0gRnVuY3Rpb25z OiBgc3RydWN0IG1lc29uX21zcmAgKG5ldyBgZGVidWdmc19yb290YCksCiAgYG1lc29uX21zcl9w cm9iZSgpYCwgbmV3IGBtZXNvbl9tc3JfcmVtb3ZlKClgLCBgbWVzb25fbXNyX2RyaXZlcmAKICB0 YWJsZQotIFNjb3BlOiBzaW5nbGUtZmlsZSBzdXJnaWNhbCBmaXgKCioqU3RlcCAyLjIg4oCUIENv ZGUgZmxvdyoqCi0gQmVmb3JlOiBgbWVzb25fbXNyX3Byb2JlKClgIGJ1aWxkcyBgL3N5cy9rZXJu ZWwvZGVidWcvbWVzb24tY2xrLW1zci9gCiAgKGBtZWFzdXJlX3N1bW1hcnlgIHBsdXMgcGVyLWNs b2NrIGZpbGVzKS4gRmlsZSBwcml2YXRlIGRhdGEgaXMKICBgcHJpdi0+ZGF0YS5tc3JfdGFibGVg IGFuZCBgJnByaXYtPmRhdGEubXNyX3RhYmxlW2ldYCwgd2l0aCBgLnByaXYgPQogIHByaXZgLiBg cHJpdmAsIGBtc3JfdGFibGVgLCBgcmVnYCwgYW5kIGByZWdtYXBgIGFyZSBhbGwgYGRldm1fKmAK ICBhbGxvY2F0aW9ucy4gVGhlcmUgd2FzIG5vIGBwbGF0Zm9ybV9zZXRfZHJ2ZGF0YSgpYCBhbmQg bm8gYC5yZW1vdmVgLgotIEFmdGVyOiByb290IGRlbnRyeSBpcyBzdG9yZWQsIGBwbGF0Zm9ybV9z ZXRfZHJ2ZGF0YSgpYCBpcyBzZXQsIGFuZAogIGBtZXNvbl9tc3JfcmVtb3ZlKClgIGNhbGxzIGBk ZWJ1Z2ZzX3JlbW92ZV9yZWN1cnNpdmUoKWAgc28gdGhlIHRyZWUgaXMKICBnb25lIGJlZm9yZSBk ZXZyZXMgZnJlZXMgcHJpdmF0ZSBkYXRhLgotIFBhdGg6IGRyaXZlciByZW1vdmUgLyBtb2R1bGUg dW5sb2FkIC8gc3lzZnMgdW5iaW5kLCBub3QgdGhlIG5vcm1hbAogIG1lYXN1cmUgcGF0aC4KCioq U3RlcCAyLjMg4oCUIEJ1ZyBtZWNoYW5pc20qKgotIFJlY29yZDogYFtVc2UtYWZ0ZXItZnJlZSAv IGxlZnRvdmVyIGRlYnVnZnMgYWZ0ZXIgdW5iaW5kXWAKLSBNZWNoYW5pc206IHVuYmluZCBydW5z IGBkZXZyZXNgIHRlYXJkb3duIGFuZCBmcmVlcyBgcHJpdmAgLwogIGBtc3JfdGFibGVgIC8gYHJl Z21hcGAuIERlYnVnZnMgZmlsZXMgcmVtYWluLiBgY2xrX21zcl9zdW1tYXJ5X3Nob3coKWAKICBk b2VzIGBtc3JfdGFibGUtPnByaXYtPmRhdGEubXNyX2NvdW50YDsgYG1lc29uX21lYXN1cmVfaWQo KWAgdGhlbiB1c2VzCiAgYHByaXYtPnJlZ21hcGAgYW5kIGBwcml2LT5kYXRhLnJlZ2AuIFRoYXQg aXMgYSBVQUYgaWYgdGhvc2UgZmlsZXMgYXJlCiAgcmVhZCBhZnRlciB1bmJpbmQuCi0gQ2F0ZWdv cnkgKGMpLyhkKTogbGlmZXRpbWUvcmVmY291bnQtc3R5bGUgdGVhcmRvd247IG1lbW9yeSBzYWZl dHkuCgoqKlN0ZXAgMi40IOKAlCBGaXggcXVhbGl0eSoqCi0gUmVjb3JkOiBgW09idmlvdXNseSBj b3JyZWN0LCBtaW5pbWFsLCBzdGFuZGFyZCBwYXR0ZXJuLl1gCi0gYGRlYnVnZnNfcmVtb3ZlKClg IGl0c2VsZiBhbHJlYWR5IGlnbm9yZXMgYElTX0VSUl9PUl9OVUxMYCwgc28gdGhlCiAgZXh0cmEg Y2hlY2sgaXMgcmVkdW5kYW50IGJ1dCBoYXJtbGVzcy4KLSBgcGxhdGZvcm1fc2V0X2RydmRhdGEo KWAgaXMgcmVxdWlyZWQgZm9yIGBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YSgpYCBpbgogIHJlbW92ZS4K LSBgLnJlbW92ZWAgaXMgYHZvaWQgKCopKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKilgIGluIHRo aXMgdHJlZSwKICBtYXRjaGluZyB0aGUgbmV3IGNhbGxiYWNrLgotIFJlZ3Jlc3Npb24gcmlzazog bG93LiBgZGVidWdmc19yZW1vdmUoKWAgdXNlcwogIGBzaW1wbGVfcmVjdXJzaXZlX3JlbW92YWwo KWAsIHNvIGluLWZsaWdodCBmaWxlIHVzZXJzIGFyZSBkcmFpbmVkCiAgYmVmb3JlIHJldHVybi4g Tm8gcHVibGljIEFQSSBjaGFuZ2UuCgojIyBQaGFzZSAzOiBHaXQgaGlzdG9yeQoKKipTdGVwIDMu MSDigJQgQmxhbWUqKgotIFJlY29yZDogYFtCdWdneSBkZWJ1Z2ZzIGNyZWF0aW9uIGlzIGZyb20g MmI0NWViZWYzOWEyYyAoInNvYzogYW1sb2dpYzoKICBBZGQgTWVzb24gQ2xvY2sgTWVhc3VyZSBk cml2ZXIiKSwgMjAxOC0xMS0yOCwgZmlyc3QgaW4gdjUuMC1yYzEuXWAKLSBUaGUgbWlzc2luZy1y ZW1vdmUgYnVnIGlzIGFzIG9sZCBhcyB0aGUgZHJpdmVyLiBDb25maXJtZWQgb24gdGhlCiAgcGFy ZW50IG9mIHRoZSBmaXg6IG5vIGBwbGF0Zm9ybV9zZXRfZHJ2ZGF0YWAsIG5vIGBkZWJ1Z2ZzX3Jv b3RgLCBubwogIHJlbW92ZSBjYWxsYmFjay4KCioqU3RlcCAzLjIg4oCUIEZpeGVzOiB0YWcqKgot IFJlY29yZDogYFtObyBGaXhlczogdGFnLiBJbnRyb2R1Y2VyIGlzIDJiNDVlYmVmMzlhMmMsIHBy ZXNlbnQgaW4gdGhpcwogIHRyZWUuXWAKCioqU3RlcCAzLjMg4oCUIEZpbGUgaGlzdG9yeSoqCi0g UmVjb3JkOiBgW1JlY2VudCBjb21taXRzIGFkZCBTb0MgdGFibGVzIChBMS9UNywgUzQsIEMzKSBh bmQgcmVnaXN0ZXItCiAgb2Zmc2V0IHJlZmFjdG9yaW5nLiBOb25lIGNoYW5nZSBkZWJ1Z2ZzIGxp ZmV0aW1lLl1gCi0gU3RhbmRhbG9uZSwgbm90IHBhdGNoIFgvWS4KCioqU3RlcCAzLjQg4oCUIEF1 dGhvcioqCi0gUmVjb3JkOiBgW1BlbmdwZW5nIEhvdTogb25seSB0aGlzIGNvbW1pdCBvbiB0aGlz IGRyaXZlci4KICBSZXZpZXdlci9jb21taXR0ZXIgTmVpbCBBcm1zdHJvbmcgaXMgdGhlIG9yaWdp bmFsIGRyaXZlciBhdXRob3IgYW5kCiAgQW1sb2dpYyBtYWludGFpbmVyLl1gCgoqKlN0ZXAgMy41 IOKAlCBEZXBlbmRlbmNpZXMqKgotIFJlY29yZDogYFtOb25lLiBVc2VzIGV4aXN0aW5nIGBkZWJ1 Z2ZzX2NyZWF0ZV9kaXJgIC8KICBgZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlYCAvIGBwbGF0Zm9y bV9zZXRfZHJ2ZGF0YWAuIENhbiBhcHBseQogIHN0YW5kYWxvbmUgdG8gdGhpcyB0cmVlLl1gCgoj IyBQaGFzZSA0OiBNYWlsaW5nIGxpc3QgYW5kIGV4dGVybmFsIHJlc2VhcmNoCgoqKlN0ZXAgNC4x IOKAlCBPcmlnaW5hbCBkaXNjdXNzaW9uKioKLSBSZWNvcmQ6IGBbaHR0cHM6Ly9wYXRjaC5tc2dp ZC5saW5rLzIwMjYwNjE1MDkxNTMxLjIxOTY0LTEtCiAgcGVuZ3BlbmdAaXNjYXMuYWMuY25dYAot IGBiNCBkaWcgLWFgOiBvbmx5IHYxOyB0aGF0IHZlcnNpb24gd2FzIGFwcGxpZWQuCi0gTWFpbnRh aW5lciByZXZpZXc6IGBSZXZpZXdlZC1ieTogTmVpbCBBcm1zdHJvbmdgLgotIFNhc2hpa28gYm90 IGZsYWdnZWQgYSBwcmUtZXhpc3RpbmcgcHJvYmUtdGltZSByYWNlIChgbWVhc3VyZV9zdW1tYXJ5 YAogIGNyZWF0ZWQgYmVmb3JlIGAucHJpdmAgaXMgZmlsbGVkKS4gQXJtc3Ryb25nIHJlcGxpZWQ6 IOKAnEltcG9zc2libGUgdGhlCiAgZHJpdmVyIGlzIGluaXRpYWxpemVkIHdheSBiZWZvcmUgdXNl cnNwYWNlIHN0YXJ0cy7igJ0gVGhhdCByYWNlIGlzIG5vdAogIGludHJvZHVjZWQgYnkgdGhpcyBw YXRjaCBhbmQgd2FzIG5vdCB0cmVhdGVkIGFzIGEgYmxvY2tlci4KLSBObyBOQUsuIE5vIHJldmll d2VyIHJlcXVlc3QgZm9yIGBDYzogc3RhYmxlYC4KCioqU3RlcCA0LjIg4oCUIFJlY2lwaWVudHMg KGBiNCBkaWcgLXdgKSoqCi0gUmVjb3JkOiBgW05laWwgQXJtc3Ryb25nLCBLZXZpbiBIaWxtYW4s IEplcm9tZSBCcnVuZXQsIE1hcnRpbgogIEJsdW1lbnN0aW5nbCwgbGludXgtYW1sb2dpYywgbGlu dXgtYXJtLWtlcm5lbCwgbGludXgta2VybmVsLiBSaWdodAogIG1haW50YWluZXJzIHdlcmUgb24g dGhlIHBhdGNoLl1gCgoqKlN0ZXAgNC4zIOKAlCBCdWcgcmVwb3J0KioKLSBSZWNvcmQ6IGBbTm8g UmVwb3J0ZWQtYnkgLyBzeXpib3QgLyBidWd6aWxsYS4gQnVnIGlzIGZyb20gY29kZQogIGluc3Bl Y3Rpb24gb2YgbGlmZXRpbWUgbWlzbWF0Y2guXWAKCioqU3RlcCA0LjQg4oCUIFNlcmllcyoqCi0g UmVjb3JkOiBgW1N0YW5kYWxvbmUgc2luZ2xlIHBhdGNoLiBObyBmb2xsb3ctdXAgb24gdGhpcyBm aWxlIGFmdGVyCiAgNjc0ODExNTJiZTJlYy5dYAoKKipTdGVwIDQuNSDigJQgU3RhYmxlIGxpc3Qq KgotIFJlY29yZDogYFtVTlZFUklGSUVEOiBsb3JlLmtlcm5lbC5vcmcvc3RhYmxlIHJldHVybmVk IEhUVFAgNDAzLl1gCgojIyBQaGFzZSA1OiBDb2RlIHNlbWFudGljIGFuYWx5c2lzCgoqKlN0ZXAg NS4xIOKAlCBGdW5jdGlvbnMqKgotIFJlY29yZDogYFttZXNvbl9tc3JfcHJvYmUsIG1lc29uX21z cl9yZW1vdmUgKG5ldyksIG1lc29uX21zcl9kcml2ZXI7CiAgcmVhZGVycyBjbGtfbXNyX3Nob3cg LyBjbGtfbXNyX3N1bW1hcnlfc2hvdyAvIG1lc29uX21lYXN1cmVfaWRdYAoKKipTdGVwIDUuMiDi gJQgQ2FsbGVycyoqCi0gUmVjb3JkOiBgW3Byb2JlL3JlbW92ZSBmcm9tIHRoZSBwbGF0Zm9ybSBj b3JlIG9uIGJpbmQvdW5iaW5kLiBEZWJ1Z2ZzCiAgc2hvdyB2aWEgYERFRklORV9TSE9XX0FUVFJJ QlVURWAuIGBtZXNvbl9tc3JfcmVtb3ZlYCBpcyBvbmx5IHRoZSBuZXcKICBkcml2ZXIgYC5yZW1v dmVgLl1gCgoqKlN0ZXAgNS4zIOKAlCBDYWxsZWVzKioKLSBSZWNvcmQ6IGBbZGVidWdmc19jcmVh dGVfZGlyL2ZpbGUsIGRlYnVnZnNfcmVtb3ZlX3JlY3Vyc2l2ZSwKICBwbGF0Zm9ybV9zZXQvZ2V0 X2RydmRhdGEsIGFuZCBvbiByZWFkOiBtdXRleCArIHJlZ21hcCBNTUlPLl1gCgoqKlN0ZXAgNS40 IOKAlCBSZWFjaGFiaWxpdHkqKgotIFJlY29yZDogYFtZZXMuIENPTkZJR19NRVNPTl9DTEtfTUVB U1VSRSBpcyB0cmlzdGF0ZSwgZGVmYXVsdCB5IG9uCiAgQVJDSF9NRVNPTi4gRFQgbm9kZXMgZXhp c3QgZm9yIEdYLCBNZXNvbjgvOGIsIEFYRywgRzEyQSwgU00xLCBDMywgUzQsCiAgQTEsIFQ3LiBV bmJpbmQgaXMgYHJtbW9kIG1lc29uLWNsay1tZWFzdXJlYCBvciBzeXNmcyB1bmJpbmQsIHRoZW4K ICByZWFkaW5nIGxlZnRvdmVyIGRlYnVnZnMuIFR5cGljYWxseSByb290LW9ubHksIGJ1dCBzdGls bCBhIHJlYWwga2VybmVsCiAgVUFGLl1gCgoqKlN0ZXAgNS41IOKAlCBTaW1pbGFyIHBhdHRlcm5z KioKLSBSZWNvcmQ6IGBbU2FtZSB0ZWFyZG93biBleGlzdHMgaW4gb3RoZXIgU29DIGRyaXZlcnMg KHFjb20KICBzbWVtL3NvY2luZm8vYW9zcywgdGkgc21hcnRyZWZsZXgpLiBUaGlzIGRyaXZlciB3 YXMgdGhlIG9uZSBtaXNzaW5nCiAgaXQuXWAKCiMjIFBoYXNlIDY6IFRoaXMgdHJlZSAodjcuMy1y YzQpCgoqKlN0ZXAgNi4xIOKAlCBEb2VzIHRoZSBidWdneSBjb2RlIGV4aXN0IGhlcmU/KioKLSBS ZWNvcmQ6IGBbWWVzIGluIHRoaXMgbGluZWFnZS4gRHJpdmVyIGlzIGBkcml2ZXJzL3NvYy9hbWxv Z2ljL21lc29uLQogIGNsay1tZWFzdXJlLmNgLiBCdWcgaW50cm9kdWNlZCBpbiB2NS4wICgyYjQ1 ZWJlZjM5YTJjKS4gVGhpcyBjaGVja291dAogIGlzIGB2Ny4zLXJjNC0yNy1nZjAxMDAzNjNkOGMz N2AgLyA3LjMuMC1yYzQuIFRoZSBmaXggbGFuZGVkIGluCiAgdjcuMy1yYzEgKGBnaXQgbWVyZ2Ut YmFzZSAtLWlzLWFuY2VzdG9yIDY3NDgxMTUyYmUyZWMgdjcuMy1yYzFgCiAgc3VjY2VlZGVkOyBp dCBpcyBub3QgaW4gdjcuMikuXWAKLSBDdXJyZW50IGZpbGUgYWxyZWFkeSBoYXMgYGRlYnVnZnNf cm9vdGAgYW5kIGBtZXNvbl9tc3JfcmVtb3ZlKClgLiBUaGF0CiAgaXMgYmVjYXVzZSB0aGUgY29t bWl0IG1lcmdlZCBkdXJpbmcgNy4zOyBpdCBpcyBub3QgYSByZWFzb24gdG8gdHJlYXQKICB0aGUg YnVnIGFzIG5ldmVyIGV4aXN0aW5nIGhlcmUuCgoqKlN0ZXAgNi4yIOKAlCBCYWNrcG9ydCBkaWZm aWN1bHR5KioKLSBSZWNvcmQ6IGBbQ2xlYW4gYXBwbHkgb24gdGhpcyB0cmVlLiBDb250ZXh0IG1h dGNoZXMuIGAucmVtb3ZlYCBpcwogIGFscmVhZHkgdm9pZC5dYAoKKipTdGVwIDYuMyDigJQgUmVs YXRlZCBmaXhlcyBhbHJlYWR5IGhlcmU/KioKLSBSZWNvcmQ6IGBbVGhpcyBpcyB0aGUgZml4LiBO byBhbHRlcm5hdGUgdGVhcmRvd24gd2FzIHByZXNlbnQgYmVmb3JlCiAgaXQuXWAKCiMjIFBoYXNl IDc6IFN1YnN5c3RlbSBjb250ZXh0CgoqKlN0ZXAgNy4xKioKLSBSZWNvcmQ6IGBbU3Vic3lzdGVt OiBkcml2ZXJzL3NvYy9hbWxvZ2ljIGNsb2NrLW1lYXN1cmUgZGVidWdmcyBoZWxwZXIuCiAgQ3Jp dGljYWxpdHk6IFBFUklQSEVSQUwgKEFtbG9naWMtb25seSwgZGVidWdmcyksIGJ1dCBVQUYgaXMg c3RpbGwgYQogIGNyYXNoL21lbW9yeS1zYWZldHkgYnVnLl1gCgoqKlN0ZXAgNy4yKioKLSBSZWNv cmQ6IGBbTWF0dXJlIGRyaXZlciAoMjAxOCkuIFJlY2VudCB3b3JrIGlzIG5ldyBTb0MgdGFibGVz LCBub3QKICBsaWZldGltZSByZWRlc2lnbi5dYAoKIyMgUGhhc2UgODogSW1wYWN0IGFuZCByaXNr CgoqKlN0ZXAgOC4xIOKAlCBXaG8gaXMgYWZmZWN0ZWQqKgotIFJlY29yZDogYFtBbWxvZ2ljIE1l c29uIHVzZXJzIHdpdGggQ09ORklHX01FU09OX0NMS19NRUFTVVJFIGFuZAogIENPTkZJR19ERUJV R19GUywgYWZ0ZXIgZHJpdmVyIHVuYmluZC91bmxvYWQuXWAKCioqU3RlcCA4LjIg4oCUIFRyaWdn ZXIqKgotIFJlY29yZDogYFtVbmJpbmQgb3Igcm1tb2QsIHRoZW4gb3BlbiBsZWZ0b3ZlciBkZWJ1 Z2ZzLiBOb3QgYSBib290LWhvdAogIHBhdGguIFByaXZpbGVnZWQgaW4gdHlwaWNhbCBkZWJ1Z2Zz IHNldHVwcy4gRGV0ZXJtaW5pc3RpYyBVQUYsIG5vdCBhCiAgaGVpc2VucmFjZS5dYAoKKipTdGVw IDguMyDigJQgRmFpbHVyZSBtb2RlKioKLSBSZWNvcmQ6IGBbVUFGIOKGkiBvb3BzIC8gS0FTQU4g LyBwb3NzaWJsZSBtZW1vcnkgY29ycnVwdGlvbi4gU2V2ZXJpdHk6CiAgSElHSC5dYAoKKipTdGVw IDguNCDigJQgUmlzay1iZW5lZml0KioKLSBSZWNvcmQ6IGBbQmVuZWZpdDogaGlnaCBmb3IgdGhl IGFmZmVjdGVkIHVuYmluZCBwYXRoIChwcmV2ZW50cyBVQUYpLgogIFJpc2s6IHZlcnkgbG93ICgx NCBsaW5lcywgc3RhbmRhcmQgZGVidWdmcyB0ZWFyZG93bikuIFJhdGlvIGZhdm9ycwogIHRha2lu ZyB0aGUgZml4Ll1gCgojIyBQaGFzZSA5OiBTeW50aGVzaXMKCioqU3RlcCA5LjEg4oCUIEV2aWRl bmNlKioKCkZvcjoKLSBSZWFsIFVBRjogbGVmdG92ZXIgZGVidWdmcyB2cy4gYGRldm1gIHByaXZh dGUgZGF0YSBhZnRlciB1bmJpbmQKLSBTbWFsbCAoKzE0KSwgb2J2aW91c2x5IGNvcnJlY3QKLSBS ZXZpZXdlZCBhbmQgYXBwbGllZCBieSB0aGUgc3Vic3lzdGVtIG1haW50YWluZXIKLSBEcml2ZXIg YW5kIGJ1ZyBleGlzdCBpbiB0aGlzIDcuMyB0cmVl4oCZcyBoaXN0b3J5IHNpbmNlIHY1LjAKLSBg TUVTT05fQ0xLX01FQVNVUkVgIGlzIHRyaXN0YXRlLCBzbyBtb2R1bGUgdW5sb2FkIGlzIGEgc3Vw cG9ydGVkIHBhdGgKLSBTYW1lIHRlYXJkb3duIHBhdHRlcm4gdXNlZCBlbHNld2hlcmUgaW4gYGRy aXZlcnMvc29jL2AKCkFnYWluc3Q6Ci0gTm8gdXNlci9zeXpib3QgcmVwb3J0Ci0gRGVidWdmcywg dHlwaWNhbGx5IHJvb3Qtb25seQotIEFtbG9naWMtb25seSBoZWxwZXIsIG5vdCBjb3JlIGtlcm5l bAotIE1haW50YWluZXIgZGlkIG5vdCBub21pbmF0ZSBzdGFibGUKClVucmVzb2x2ZWQ6Ci0gQ291 bGQgbm90IHNlYXJjaCBsb3JlLmtlcm5lbC5vcmcvc3RhYmxlIChIVFRQIDQwMykKCioqU3RlcCA5 LjIg4oCUIFN0YWJsZSBydWxlcyoqCjEuIE9idmlvdXNseSBjb3JyZWN0IGFuZCB0ZXN0ZWQ/ICoq UEFTUyoqIOKAlCBzdGFuZGFyZCByZW1vdmUgKwogICBgZGVidWdmc19yZW1vdmVfcmVjdXJzaXZl YDsgbWFpbnRhaW5lciBSZXZpZXdlZC1ieQoyLiBSZWFsIGJ1ZyBhZmZlY3RpbmcgdXNlcnM/ICoq UEFTUyoqIOKAlCBsZWZ0b3ZlciBkZWJ1Z2ZzIGFmdGVyIHVuYmluZCBpcwogICBhIFVBRgozLiBJ bXBvcnRhbnQgKGNyYXNoL3NlY3VyaXR5L2NvcnJ1cHRpb24vZGVhZGxvY2spPyAqKlBBU1MqKiDi gJQgVUFGIG9vcHMgLwogICBtZW1vcnktc2FmZXR5OyBISUdILCBub3QgYSB0aGVvcmV0aWNhbCB3 YXJuaW5nCjQuIFNtYWxsIGFuZCBjb250YWluZWQ/ICoqUEFTUyoqIOKAlCAxNCBsaW5lcywgb25l IGZpbGUKNS4gTm8gbmV3IGZlYXR1cmVzL0FQSXM/ICoqUEFTUyoqCjYuIEFwcGxpZXMgdG8gdGhp cyB0cmVlPyAqKlBBU1MqKiDigJQgZHJpdmVyIHByZXNlbnQsIHZvaWQgYC5yZW1vdmVgLCBubwog ICBtaXNzaW5nIHByZXJlcXMKCioqU3RlcCA5LjMg4oCUIEV4Y2VwdGlvbiBjYXRlZ29yeSoqCi0g UmVjb3JkOiBgW05vbmUuIFRoaXMgaXMgYSBub3JtYWwgYnVnZml4LCBub3QgYSBkZXZpY2UtCiAg SUQvcXVpcmsvRFQvYnVpbGQvZG9jcyBleGNlcHRpb24uXWAKCioqU3RlcCA5LjQg4oCUIERlY2lz aW9uKioKVGhpcyB0cmVlIGlzIDcuMy1yYzQuIFRoZSBjbG9jay1tZWFzdXJlIGRyaXZlciBpcyBo ZXJlLCB0aGUgbWlzc2luZy0KcmVtb3ZlIFVBRiBoYXMgYmVlbiBoZXJlIHNpbmNlIHY1LjAsIGFu ZCB0aGUgcGF0Y2ggaXMgYSBzbWFsbCwgY29ycmVjdAp0ZWFyZG93bi4gSXQgbWVldHMgc3RhYmxl IGNyaXRlcmlhIGZvciB0aGlzIGNoZWNrb3V0LgoKIyMjIFdoYXQgaXQgZml4ZXMgYW5kIHdoeSBp dCBtYXR0ZXJzCmBtZXNvbl9tc3JfcHJvYmUoKWAgcHVibGlzaGVzIGRlYnVnZnMgZmlsZXMgd2hv c2UgcHJpdmF0ZSBwb2ludGVycyByZWZlcgp0byBgZGV2bWAtYWxsb2NhdGVkIGBwcml2YCAvIGBt c3JfdGFibGVgIC8gYHJlZ21hcGAuIFdpdGhvdXQgYSByZW1vdmUKY2FsbGJhY2sgdGhvc2UgZGVu dHJpZXMgc3Vydml2ZSB1bmJpbmQsIHNvIGEgbGF0ZXIgcmVhZCBvZgpgbWVhc3VyZV9zdW1tYXJ5 YCBvciBhIHBlci1jbG9jayBmaWxlIHVzZXMgZnJlZWQgbWVtb3J5LiBPbiA3LjMgdGhhdCBpcwph IHJlYWwgbW9kdWxlLXVubG9hZC91bmJpbmQgVUFGIG9uIEFtbG9naWMgYm9hcmRzIHRoYXQgc2hp cCB0aGlzIElQLgoKIyMjIFN0YWJsZSBydWxlcyAvIHJpc2sKVGhlIGNoYW5nZSBpcyAxNCBsaW5l cywgZG9lcyBub3QgYWRkIEFQSXMsIGFuZCBtYXRjaGVzCmBkZWJ1Z2ZzX3JlbW92ZSgpYCBzZW1h bnRpY3MgYWxyZWFkeSB1c2VkIGJ5IHNpYmxpbmcgU29DIGRyaXZlcnMuCkJlbmVmaXQgaXMgcHJl dmVudGluZyBhIFVBRjsgcmVncmVzc2lvbiByaXNrIGlzIHZlcnkgbG93LgoKIyMjIENvbmNlcm5z Ck5vIHB1YmxpYyByZXByb2R1Y2VyLiBUcmlnZ2VyIGlzIHByaXZpbGVnZWQgZGVidWdmcy91bmJp bmQuIFRoYXQgbG93ZXJzCmJyZWFkdGgsIG5vdCBzZXZlcml0eS4gTm8gZXh0cmEgY29tbWl0cyBh cmUgcmVxdWlyZWQgb24gdGhpcyB0cmVlLgoKVmVyaWZpY2F0aW9uOgotIFtQaGFzZSAxXSBQYXJz ZWQgdGFnczogUmV2aWV3ZWQtYnkgTmVpbCBBcm1zdHJvbmc7IExpbmsgdG8gbXNnaWQKICAyMDI2 MDYxNTA5MTUzMS4yMTk2NC0xOyBubyBGaXhlcy9SZXBvcnRlZC1ieS9DYzpzdGFibGUKLSBbUGhh c2UgMl0gRGlmZjogKzE0IGluIG1lc29uLWNsay1tZWFzdXJlLmM7IHN0b3JlIGRlYnVnZnMgcm9v dCwgc2V0CiAgZHJ2ZGF0YSwgYWRkIHZvaWQgcmVtb3ZlCi0gW1BoYXNlIDJdIFByZS1maXggcGFy ZW50IDY3NDgxMTUyYmUyZWNeOiBubyBwbGF0Zm9ybV9zZXRfZHJ2ZGF0YSwgbm8KICBkZWJ1Z2Zz X3Jvb3QsIG5vIHJlbW92ZQotIFtQaGFzZSAyXSBjbGtfbXNyX3N1bW1hcnlfc2hvdyB1c2VzIG1z cl90YWJsZS0+cHJpdjsgbWVzb25fbWVhc3VyZV9pZAogIHVzZXMgcHJpdi0+cmVnbWFwIOKAlCBV QUYgYWZ0ZXIgdW5iaW5kIGNvbmZpcm1lZAotIFtQaGFzZSAzXSBnaXQgYmxhbWU6IGRlYnVnZnMg Y3JlYXRlIGZyb20gMmI0NWViZWYzOWEyYyAodjUuMC1yYzEpCi0gW1BoYXNlIDNdIGdpdCBkZXNj cmliZSBIRUFEOiB2Ny4zLXJjNC0yNy1nZjAxMDAzNjNkOGMzNzsgTWFrZWZpbGUKICA3LjMuMC1y YzQKLSBbUGhhc2UgM10gZ2l0IG1lcmdlLWJhc2UgLS1pcy1hbmNlc3RvciA2NzQ4MTE1MmJlMmVj IHY3LjMtcmMxOiB5ZXM7CiAgbm90IGluIHY3LjIKLSBbUGhhc2UgNF0gYjQgZGlnIC1jIDY3NDgx MTUyYmUyZWM6CiAgaHR0cHM6Ly9wYXRjaC5tc2dpZC5saW5rLzIwMjYwNjE1MDkxNTMxLjIxOTY0 LTEtcGVuZ3BlbmdAaXNjYXMuYWMuY24KLSBbUGhhc2UgNF0gYjQgZGlnIC1hOiB2MSBvbmx5LCBh cHBsaWVkIGFzLWlzCi0gW1BoYXNlIDRdIGI0IGRpZyAtdzogQXJtc3Ryb25nLCBIaWxtYW4sIEJy dW5ldCwgQmx1bWVuc3RpbmdsLCBsaW51eC0KICBhbWxvZ2ljCi0gW1BoYXNlIDRdIG1ib3g6IEFy bXN0cm9uZyBSZXZpZXdlZC1ieTsgZGlzbWlzc2VkIHNhc2hpa28gcHJvYmUtcmFjZSBhcwogIHBy ZS1leGlzdGluZy9pbXBvc3NpYmxlCi0gW1BoYXNlIDVdIEtjb25maWcgTUVTT05fQ0xLX01FQVNV UkUgdHJpc3RhdGUgZGVmYXVsdCBBUkNIX01FU09OOyBEVAogIGNvbXBhdGlibGVzIGluIG1lc29u LWd4L2cxMi9heGcvc20xL3M0L2ExL3Q3L2MzIGR0c2kKLSBbUGhhc2UgNV0gcGxhdGZvcm1fZHJp dmVyLnJlbW92ZSBpcyB2b2lkICgqKShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICopCiAgaW4gaW5j bHVkZS9saW51eC9wbGF0Zm9ybV9kZXZpY2UuaDoyODAKLSBbUGhhc2UgNV0gZGVidWdmc19yZW1v dmUoKSBhbHJlYWR5IElTX0VSUl9PUl9OVUxMLXNhZmUKICAoZnMvZGVidWdmcy9pbm9kZS5jOjc3 OCkKLSBbUGhhc2UgNl0gRmlsZSBwcmVzZW50OyBubyBsYXRlciBjaGFuZ2VzIG9uIHRoaXMgZmls ZSBhZnRlciB0aGUgZml4Ci0gW1BoYXNlIDhdIEZhaWx1cmUgbW9kZTogVUFGIG9uIGxlZnRvdmVy IGRlYnVnZnMgYWZ0ZXIgdW5iaW5kLCBzZXZlcml0eQogIEhJR0gKLSBVTlZFUklGSUVEOiBsb3Jl Lmtlcm5lbC5vcmcvc3RhYmxlIHNlYXJjaCAoSFRUUCA0MDMpCgoqKllFUyoqCgogZHJpdmVycy9z b2MvYW1sb2dpYy9tZXNvbi1jbGstbWVhc3VyZS5jIHwgMTQgKysrKysrKysrKysrKysKIDEgZmls ZSBjaGFuZ2VkLCAxNCBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9zb2MvYW1s b2dpYy9tZXNvbi1jbGstbWVhc3VyZS5jIGIvZHJpdmVycy9zb2MvYW1sb2dpYy9tZXNvbi1jbGst bWVhc3VyZS5jCmluZGV4IGQ4NjJlMzBhMjQ0ZWQuLjdjYTQzYmNiNjIyYTIgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvc29jL2FtbG9naWMvbWVzb24tY2xrLW1lYXN1cmUuYworKysgYi9kcml2ZXJzL3Nv Yy9hbWxvZ2ljL21lc29uLWNsay1tZWFzdXJlLmMKQEAgLTcsNiArNyw3IEBACiAjaW5jbHVkZSA8 bGludXgvb2ZfYWRkcmVzcy5oPgogI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgog I2luY2x1ZGUgPGxpbnV4L2JpdGZpZWxkLmg+CisjaW5jbHVkZSA8bGludXgvZXJyLmg+CiAjaW5j bHVkZSA8bGludXgvc2VxX2ZpbGUuaD4KICNpbmNsdWRlIDxsaW51eC9kZWJ1Z2ZzLmg+CiAjaW5j bHVkZSA8bGludXgvcmVnbWFwLmg+CkBAIC01MCw2ICs1MSw3IEBAIHN0cnVjdCBtZXNvbl9tc3Jf ZGF0YSB7CiBzdHJ1Y3QgbWVzb25fbXNyIHsKIAlzdHJ1Y3QgcmVnbWFwICpyZWdtYXA7CiAJc3Ry dWN0IG1lc29uX21zcl9kYXRhIGRhdGE7CisJc3RydWN0IGRlbnRyeSAqZGVidWdmc19yb290Owog fTsKIAogI2RlZmluZSBDTEtfTVNSX0lEKF9faWQsIF9fbmFtZSkgXApAQCAtOTUyLDYgKzk1NCw3 IEBAIHN0YXRpYyBpbnQgbWVzb25fbXNyX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpCiAJICAgICAgIHNpemVvZihzdHJ1Y3QgbXNyX3JlZ19vZmZzZXQpKTsKIAogCXJvb3QgPSBk ZWJ1Z2ZzX2NyZWF0ZV9kaXIoIm1lc29uLWNsay1tc3IiLCBOVUxMKTsKKwlwcml2LT5kZWJ1Z2Zz X3Jvb3QgPSByb290OwogCWNsa3MgPSBkZWJ1Z2ZzX2NyZWF0ZV9kaXIoImNsa3MiLCByb290KTsK IAogCWRlYnVnZnNfY3JlYXRlX2ZpbGUoIm1lYXN1cmVfc3VtbWFyeSIsIDA0NDQsIHJvb3QsCkBA IC05NjcsOSArOTcwLDE5IEBAIHN0YXRpYyBpbnQgbWVzb25fbXNyX3Byb2JlKHN0cnVjdCBwbGF0 Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCQkJICAgICZwcml2LT5kYXRhLm1zcl90YWJsZVtpXSwgJmNs a19tc3JfZm9wcyk7CiAJfQogCisJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcHJpdik7CisK IAlyZXR1cm4gMDsKIH0KIAorc3RhdGljIHZvaWQgbWVzb25fbXNyX3JlbW92ZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQoreworCXN0cnVjdCBtZXNvbl9tc3IgKnByaXYgPSBwbGF0Zm9y bV9nZXRfZHJ2ZGF0YShwZGV2KTsKKworCWlmICghSVNfRVJSX09SX05VTEwocHJpdi0+ZGVidWdm c19yb290KSkKKwkJZGVidWdmc19yZW1vdmVfcmVjdXJzaXZlKHByaXYtPmRlYnVnZnNfcm9vdCk7 Cit9CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXNyX3JlZ19vZmZzZXQgbXNyX3JlZ19vZmZzZXQg PSB7CiAJLmR1dHlfdmFsID0gMHgwLAogCS5mcmVxX2N0cmwgPSAweDQsCkBAIC0xMDY1LDYgKzEw NzgsNyBAQCBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtZXNvbl9tc3JfbWF0Y2hfdGFibGUpOwog CiBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBtZXNvbl9tc3JfZHJpdmVyID0gewogCS5w cm9iZQk9IG1lc29uX21zcl9wcm9iZSwKKwkucmVtb3ZlID0gbWVzb25fbXNyX3JlbW92ZSwKIAku ZHJpdmVyID0gewogCQkubmFtZQkJPSAibWVzb25fbXNyIiwKIAkJLm9mX21hdGNoX3RhYmxlCT0g bWVzb25fbXNyX21hdGNoX3RhYmxlLAotLSAKMi41My4wCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYW1sb2dpYyBtYWlsaW5nIGxpc3QKbGlu dXgtYW1sb2dpY0BsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtYW1sb2dpYwo=