All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.