Re: [PATCH v3] swiotlb: fix implicit debugfs_create_dir declaration

From: Robin Murphy
Date: Wed Jun 30 2021 - 09:53:53 EST


On 2021-06-30 05:06, Claire Chang wrote:
Factor out the debugfs bits from rmem_swiotlb_device_init() into a separate
rmem_swiotlb_debugfs_init().

Fixes: 461021875c50 ("swiotlb: Add restricted DMA pool initialization")
Reported-by: kernel test robot <lkp@xxxxxxxxx>
Signed-off-by: Claire Chang <tientzu@xxxxxxxxxxxx>
---
kernel/dma/swiotlb.c | 17 ++++++++++++-----
1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c
index 0ffbaae9fba2..355dc98d381c 100644
--- a/kernel/dma/swiotlb.c
+++ b/kernel/dma/swiotlb.c
@@ -709,6 +709,16 @@ static int __init swiotlb_create_default_debugfs(void)
late_initcall(swiotlb_create_default_debugfs);
+static void rmem_swiotlb_debugfs_init(const char *name, struct io_tlb_mem *mem)

Nit: maybe just pass in the reserved_mem, then dereference rmem->name and rmem->priv inside here?

+{
+ mem->debugfs = debugfs_create_dir(name, debugfs_dir);
+ swiotlb_create_debugfs_files(mem);
+}
+#else
+__maybe_unused static void rmem_swiotlb_debugfs_init(const char *name,
+ struct io_tlb_mem *mem)
+{
+}
#endif
#ifdef CONFIG_DMA_RESTRICTED_POOL
@@ -766,11 +776,8 @@ static int rmem_swiotlb_device_init(struct reserved_mem *rmem,
rmem->priv = mem;
- if (IS_ENABLED(CONFIG_DEBUG_FS)) {
- mem->debugfs =
- debugfs_create_dir(rmem->name, debugfs_dir);
- swiotlb_create_debugfs_files(mem);
- }
+ if (IS_ENABLED(CONFIG_DEBUG_FS))
+ rmem_swiotlb_debugfs_init(rmem->name, mem);

Just make the call unconditional (and drop the __maybe_unused annotation above) - the stub already does nothing for the DEBUG_FS=n case, so the IS_ENABLED() is pointless.

Robin.

}
dev->dma_io_tlb_mem = mem;