Mailing List Archive

[PATCH] EDAC, pnd2_edac: fix build error without CONFIG_EDAC_DEBUG
Calling into functions inside of the #ifdef causes an obvious compile error:

drivers/edac/pnd2_edac.c: In function 'pnd2_init':
drivers/edac/pnd2_edac.c:1521:2: error: implicit declaration of function 'setup_pnd2_debug'; did you mean 'setup_log_buf'? [-Werror=implicit-function-declaration]
drivers/edac/pnd2_edac.c: In function 'pnd2_exit':
drivers/edac/pnd2_edac.c:1529:2: error: implicit declaration of function 'teardown_pnd2_debug' [-Werror=implicit-function-declaration]

This removes the #ifdef and instead uses an equivalent IS_ENABLED() check
so the compiler can silently drop the functions but still build-test them
and not need an #ifdef.

Fixes: 5c71ad17f97e ("EDAC, pnd2_edac: Add new EDAC driver for Intel SoC platforms")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
drivers/edac/pnd2_edac.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/edac/pnd2_edac.c b/drivers/edac/pnd2_edac.c
index 14d39f05226e..25693a4c14c3 100644
--- a/drivers/edac/pnd2_edac.c
+++ b/drivers/edac/pnd2_edac.c
@@ -1389,7 +1389,6 @@ static struct notifier_block pnd2_mce_dec = {
.notifier_call = pnd2_mce_check_error,
};

-#ifdef CONFIG_EDAC_DEBUG
/*
* Write an address to this file to exercise the address decode
* logic in this driver.
@@ -1435,7 +1434,6 @@ static void teardown_pnd2_debug(void)
{
debugfs_remove_recursive(pnd2_test);
}
-#endif

static int pnd2_probe(void)
{
@@ -1518,7 +1516,8 @@ static int __init pnd2_init(void)
return -ENODEV;

mce_register_decode_chain(&pnd2_mce_dec);
- setup_pnd2_debug();
+ if (IS_ENABLED(CONFIG_EDAC_DEBUG))
+ setup_pnd2_debug();

return 0;
}
@@ -1526,7 +1525,8 @@ static int __init pnd2_init(void)
static void __exit pnd2_exit(void)
{
edac_dbg(2, "\n");
- teardown_pnd2_debug();
+ if (IS_ENABLED(CONFIG_EDAC_DEBUG))
+ teardown_pnd2_debug();
mce_unregister_decode_chain(&pnd2_mce_dec);
pnd2_remove();
}
--
2.9.0
Re: [PATCH] EDAC, pnd2_edac: fix build error without CONFIG_EDAC_DEBUG [ In reply to ]
On Thu, Mar 23, 2017 at 04:16:35PM +0100, Arnd Bergmann wrote:
> Calling into functions inside of the #ifdef causes an obvious compile error:
>
> drivers/edac/pnd2_edac.c: In function 'pnd2_init':
> drivers/edac/pnd2_edac.c:1521:2: error: implicit declaration of function 'setup_pnd2_debug'; did you mean 'setup_log_buf'? [-Werror=implicit-function-declaration]
> drivers/edac/pnd2_edac.c: In function 'pnd2_exit':
> drivers/edac/pnd2_edac.c:1529:2: error: implicit declaration of function 'teardown_pnd2_debug' [-Werror=implicit-function-declaration]
>
> This removes the #ifdef and instead uses an equivalent IS_ENABLED() check
> so the compiler can silently drop the functions but still build-test them
> and not need an #ifdef.
>
> Fixes: 5c71ad17f97e ("EDAC, pnd2_edac: Add new EDAC driver for Intel SoC platforms")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> drivers/edac/pnd2_edac.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)

Thanks Arnd, I'm already running randconfig builds on the fixes:

https://lkml.kernel.org/r/20170322172923.GA15888@nazgul.tnic

--
Regards/Gruss,
Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.