Re: [PATCH -next] powerpc/eeh: fix compile warning with CONFIG_PROC_FS=n

From: Christophe Leroy
Date: Sun Sep 06 2020 - 03:02:10 EST




Le 05/09/2020 à 13:17, Yang Yingliang a écrit :
Fix the compile warning:

arch/powerpc/kernel/eeh.c:1639:12: error: 'proc_eeh_show' defined but not used [-Werror=unused-function]
static int proc_eeh_show(struct seq_file *m, void *v)

Reported-by: Hulk Robot <hulkci@xxxxxxxxxx>
Signed-off-by: Yang Yingliang <yangyingliang@xxxxxxxxxx>
---
arch/powerpc/kernel/eeh.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/powerpc/kernel/eeh.c b/arch/powerpc/kernel/eeh.c
index 94682382fc8c..420c3c25c6e7 100644
--- a/arch/powerpc/kernel/eeh.c
+++ b/arch/powerpc/kernel/eeh.c
@@ -1636,6 +1636,7 @@ int eeh_pe_inject_err(struct eeh_pe *pe, int type, int func,
}
EXPORT_SYMBOL_GPL(eeh_pe_inject_err);
+#ifdef CONFIG_PROC_FS

I don't like this way of fixing the issue, because you'll get an unbalanced source code: proc_eeh_show() is apparently referenced all the time in eeh_init_proc(), but because proc_create_single() is a NULL macro when CONFIG_PROC_FS is not selected, you get the 'unused function' error.

I think the right fix should be to rewrite proc_create_single() as a static inline function that calls proc_create_single_data() when CONFIG_PROC_FS is selected and just returns NULL otherwise.

static int proc_eeh_show(struct seq_file *m, void *v)
{
if (!eeh_enabled()) {
@@ -1662,6 +1663,7 @@ static int proc_eeh_show(struct seq_file *m, void *v)
return 0;
}
+#endif
#ifdef CONFIG_DEBUG_FS
static int eeh_enable_dbgfs_set(void *data, u64 val)


Christophe