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

Pengpeng Hou pengpeng at iscas.ac.cn
Fri Aug 14 01:13:34 PDT 2026


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 <pengpeng at iscas.ac.cn>
---
Changes since v2: https://lore.kernel.org/all/20260623015527.32846-1-pengpeng@iscas.ac.cn/
- 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)




More information about the linux-riscv mailing list