[PATCH v3] cache: sifive_ccache: remove debugfs on driver register failure

Pengpeng Hou <[email protected]>
Newsgroups org.infradead.lists.linux-riscv,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
sifive_ccache_init() creates its debugfs entries before registering the
platform driver. If platform_driver_register() fails, the current error
path unmaps ccache_base but leaves the debugfs file and its write
callback reachable.

Remove the debugfs directory on that failure path before unmapping the
controller registers.

Fixes: c90847bcbfb6 ("cache: sifive_ccache: Partially convert to a platform driver")

Assisted-by: Codex:gpt-5
Signed-off-by: Pengpeng Hou <[email protected]>
---
Changes since v2: https://lore.kernel.org/all/[email protected]/
- no source-code changes
- rebase on current RISC-V sources
- add the coding-assistant disclosure

The error path was reviewed statically. It was not exercised on SiFive
hardware.

 drivers/cache/sifive_ccache.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/cache/sifive_ccache.c b/drivers/cache/sifive_ccache.c
index 2acb8bdf06d5..3b7a78fc7feb 100644
--- a/drivers/cache/sifive_ccache.c
+++ b/drivers/cache/sifive_ccache.c
@@ -338,12 +338,16 @@ static int __init sifive_ccache_init(void)
 
 	rc = platform_driver_register(&sifive_ccache_driver);
 	if (rc)
-		goto err_unmap;
+		goto err_remove_debugfs;
 
 	of_node_put(np);
 
 	return 0;
 
+err_remove_debugfs:
+#ifdef CONFIG_DEBUG_FS
+	debugfs_remove_recursive(sifive_test);
+#endif
 err_unmap:
 	iounmap(ccache_base);
 err_node_put:
-- 
2.50.1 (Apple Git-155)


_______________________________________________
linux-riscv mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/linux-riscv
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.