* [PATCH] modules: mark __inittest/__exittest as __maybe_unused
@ 2017-02-01 17:00 Arnd Bergmann
2017-02-02 9:25 ` Rusty Russell
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Arnd Bergmann @ 2017-02-01 17:00 UTC (permalink / raw)
To: Jessica Yu
Cc: Arnd Bergmann, Rusty Russell, Jiri Kosina, Paul Gortmaker,
Miroslav Benes, Anson Jacob, linux-kernel
clang warns about unused inline functions by default:
arch/arm/crypto/aes-cipher-glue.c:68:1: warning: unused function '__inittest' [-Wunused-function]
arch/arm/crypto/aes-cipher-glue.c:69:1: warning: unused function '__exittest' [-Wunused-function]
As these appear in every single module, let's just disable the warnings by marking the
two functions as __maybe_unused.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
include/linux/module.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/linux/module.h b/include/linux/module.h
index 38b4b2c754c8..48a5c57c858e 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -126,13 +126,13 @@ extern void cleanup_module(void);
/* Each module must use one module_init(). */
#define module_init(initfn) \
- static inline initcall_t __inittest(void) \
+ static inline initcall_t __maybe_unused __inittest(void) \
{ return initfn; } \
int init_module(void) __attribute__((alias(#initfn)));
/* This is only required if you want to be unloadable. */
#define module_exit(exitfn) \
- static inline exitcall_t __exittest(void) \
+ static inline exitcall_t __maybe_unused __exittest(void) \
{ return exitfn; } \
void cleanup_module(void) __attribute__((alias(#exitfn)));
--
2.9.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] modules: mark __inittest/__exittest as __maybe_unused
2017-02-01 17:00 [PATCH] modules: mark __inittest/__exittest as __maybe_unused Arnd Bergmann
@ 2017-02-02 9:25 ` Rusty Russell
2017-02-02 10:19 ` Arnd Bergmann
2017-02-02 19:44 ` Miroslav Benes
2017-02-07 0:51 ` Jessica Yu
2 siblings, 1 reply; 6+ messages in thread
From: Rusty Russell @ 2017-02-02 9:25 UTC (permalink / raw)
To: Arnd Bergmann, Jessica Yu
Cc: Arnd Bergmann, Jiri Kosina, Paul Gortmaker, Miroslav Benes,
Anson Jacob, linux-kernel
Arnd Bergmann <arnd@arndb.de> writes:
> clang warns about unused inline functions by default:
>
> arch/arm/crypto/aes-cipher-glue.c:68:1: warning: unused function '__inittest' [-Wunused-function]
> arch/arm/crypto/aes-cipher-glue.c:69:1: warning: unused function '__exittest' [-Wunused-function]
>
> As these appear in every single module, let's just disable the warnings by marking the
> two functions as __maybe_unused.
Um, won't you have to do that to hundreds of kernel headers? Why
module.h?
Confused,
Rusty.
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> include/linux/module.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/include/linux/module.h b/include/linux/module.h
> index 38b4b2c754c8..48a5c57c858e 100644
> --- a/include/linux/module.h
> +++ b/include/linux/module.h
> @@ -126,13 +126,13 @@ extern void cleanup_module(void);
>
> /* Each module must use one module_init(). */
> #define module_init(initfn) \
> - static inline initcall_t __inittest(void) \
> + static inline initcall_t __maybe_unused __inittest(void) \
> { return initfn; } \
> int init_module(void) __attribute__((alias(#initfn)));
>
> /* This is only required if you want to be unloadable. */
> #define module_exit(exitfn) \
> - static inline exitcall_t __exittest(void) \
> + static inline exitcall_t __maybe_unused __exittest(void) \
> { return exitfn; } \
> void cleanup_module(void) __attribute__((alias(#exitfn)));
>
> --
> 2.9.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] modules: mark __inittest/__exittest as __maybe_unused
2017-02-02 9:25 ` Rusty Russell
@ 2017-02-02 10:19 ` Arnd Bergmann
2017-02-02 18:55 ` Rusty Russell
0 siblings, 1 reply; 6+ messages in thread
From: Arnd Bergmann @ 2017-02-02 10:19 UTC (permalink / raw)
To: Rusty Russell
Cc: Jessica Yu, Jiri Kosina, Paul Gortmaker, Miroslav Benes,
Anson Jacob, Linux Kernel Mailing List
On Thu, Feb 2, 2017 at 10:25 AM, Rusty Russell <rusty@rustcorp.com.au> wrote:
> Arnd Bergmann <arnd@arndb.de> writes:
>> clang warns about unused inline functions by default:
>>
>> arch/arm/crypto/aes-cipher-glue.c:68:1: warning: unused function '__inittest' [-Wunused-function]
>> arch/arm/crypto/aes-cipher-glue.c:69:1: warning: unused function '__exittest' [-Wunused-function]
>>
>> As these appear in every single module, let's just disable the warnings by marking the
>> two functions as __maybe_unused.
>
> Um, won't you have to do that to hundreds of kernel headers? Why
> module.h?
clang specifically warns about inline functions that are defined in a
.c file but not used
there, but it is sensible enough to not warn about unused inline
functions that are defined
in a header.
In an ARM allmodconfig build, I currently see 178 .c files[1] that
have unused inline functions.
The proper way to deal with them is probably to move the warning into
the "make W=1"
level to hide it by default and then do one driver at a time.
The module.h definitions are special because the inline function is
defined through a
macro that gets evaluated by almost every loadable module, and we get
a warning for
every one of them, which the subsystem maintainers cannot deal with by
changing their
code locally.
Arnd
[1] http://pastebin.com/pnHvbHQ3
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] modules: mark __inittest/__exittest as __maybe_unused
2017-02-02 10:19 ` Arnd Bergmann
@ 2017-02-02 18:55 ` Rusty Russell
0 siblings, 0 replies; 6+ messages in thread
From: Rusty Russell @ 2017-02-02 18:55 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Jessica Yu, Jiri Kosina, Paul Gortmaker, Miroslav Benes,
Anson Jacob, Linux Kernel Mailing List
Arnd Bergmann <arnd@arndb.de> writes:
> On Thu, Feb 2, 2017 at 10:25 AM, Rusty Russell <rusty@rustcorp.com.au> wrote:
>> Arnd Bergmann <arnd@arndb.de> writes:
>>> clang warns about unused inline functions by default:
>>>
>>> arch/arm/crypto/aes-cipher-glue.c:68:1: warning: unused function '__inittest' [-Wunused-function]
>>> arch/arm/crypto/aes-cipher-glue.c:69:1: warning: unused function '__exittest' [-Wunused-function]
>>>
>>> As these appear in every single module, let's just disable the warnings by marking the
>>> two functions as __maybe_unused.
>>
>> Um, won't you have to do that to hundreds of kernel headers? Why
>> module.h?
>
> clang specifically warns about inline functions that are defined in a
> .c file but not used
> there, but it is sensible enough to not warn about unused inline
> functions that are defined
> in a header.
Ah, I was confused because you patched the header :)
> The module.h definitions are special because the inline function is
> defined through a
> macro that gets evaluated by almost every loadable module, and we get
> a warning for
> every one of them, which the subsystem maintainers cannot deal with by
> changing their
> code locally.
Acked-by: Rusty Russell <rusty@rustcorp.com.au>
Thanks,
Rusty.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] modules: mark __inittest/__exittest as __maybe_unused
2017-02-01 17:00 [PATCH] modules: mark __inittest/__exittest as __maybe_unused Arnd Bergmann
2017-02-02 9:25 ` Rusty Russell
@ 2017-02-02 19:44 ` Miroslav Benes
2017-02-07 0:51 ` Jessica Yu
2 siblings, 0 replies; 6+ messages in thread
From: Miroslav Benes @ 2017-02-02 19:44 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Jessica Yu, Rusty Russell, Jiri Kosina, Paul Gortmaker,
Anson Jacob, linux-kernel
On Wed, 1 Feb 2017, Arnd Bergmann wrote:
> clang warns about unused inline functions by default:
>
> arch/arm/crypto/aes-cipher-glue.c:68:1: warning: unused function '__inittest' [-Wunused-function]
> arch/arm/crypto/aes-cipher-glue.c:69:1: warning: unused function '__exittest' [-Wunused-function]
>
> As these appear in every single module, let's just disable the warnings by marking the
> two functions as __maybe_unused.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Makes sense.
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Regards,
Miroslav
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: modules: mark __inittest/__exittest as __maybe_unused
2017-02-01 17:00 [PATCH] modules: mark __inittest/__exittest as __maybe_unused Arnd Bergmann
2017-02-02 9:25 ` Rusty Russell
2017-02-02 19:44 ` Miroslav Benes
@ 2017-02-07 0:51 ` Jessica Yu
2 siblings, 0 replies; 6+ messages in thread
From: Jessica Yu @ 2017-02-07 0:51 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Rusty Russell, Jiri Kosina, Paul Gortmaker, Miroslav Benes,
Anson Jacob, linux-kernel
+++ Arnd Bergmann [01/02/17 18:00 +0100]:
>clang warns about unused inline functions by default:
>
>arch/arm/crypto/aes-cipher-glue.c:68:1: warning: unused function '__inittest' [-Wunused-function]
>arch/arm/crypto/aes-cipher-glue.c:69:1: warning: unused function '__exittest' [-Wunused-function]
>
>As these appear in every single module, let's just disable the warnings by marking the
>two functions as __maybe_unused.
>
>Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Applied, thanks.
Jessica
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2017-02-07 0:51 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-01 17:00 [PATCH] modules: mark __inittest/__exittest as __maybe_unused Arnd Bergmann
2017-02-02 9:25 ` Rusty Russell
2017-02-02 10:19 ` Arnd Bergmann
2017-02-02 18:55 ` Rusty Russell
2017-02-02 19:44 ` Miroslav Benes
2017-02-07 0:51 ` Jessica Yu
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.