2003-01-02 15:48:52

by Mikael Pettersson

[permalink] [raw]
Subject: [PATCH] 2.5.54 kill module.h compiler warnings

Rusty,

Compiling kernel 2.5.54 with CONFIG_MODULES=n results in
tons and tons of the following warnings:

include/linux/module.h:317: warning: statement with no effect
include/linux/module.h:353: warning: statement with no effect

patch-2.5.54 changed *MOD_INC_USE_COUNT from macros to
__deprecated functions, but also dropped the (void) casts
in front of the try_module_get() calls. Without modules,
try_module_get() is the constant 1, hence the warnings.

The patch below silences the warnings by adding back the
missing (void) casts. Works for me.

/Mikael

--- linux-2.5.54/include/linux/module.h.~1~ 2003-01-02 14:27:56.000000000 +0100
+++ linux-2.5.54/include/linux/module.h 2003-01-02 16:39:49.000000000 +0100
@@ -314,7 +314,7 @@
/*
* Yes, we ignore the retval here, that's why it's deprecated.
*/
- try_module_get(module);
+ (void)try_module_get(module);
}

static inline void __deprecated __MOD_DEC_USE_COUNT(struct module *module)
@@ -350,7 +350,7 @@
local_inc(&module->ref[get_cpu()].count);
put_cpu();
#else
- try_module_get(module);
+ (void)try_module_get(module);
#endif
}
#define MOD_INC_USE_COUNT \


2003-01-02 22:47:21

by Richard Henderson

[permalink] [raw]
Subject: Re: [PATCH] 2.5.54 kill module.h compiler warnings

On Thu, Jan 02, 2003 at 04:57:19PM +0100, Mikael Pettersson wrote:
> The patch below silences the warnings by adding back the
> missing (void) casts. Works for me.

Better to make try_module_get a real inline function.


r~

2003-01-03 04:18:20

by Rusty Russell

[permalink] [raw]
Subject: Re: [PATCH] 2.5.54 kill module.h compiler warnings

In message <[email protected]> you write:
> Rusty,
>
> Compiling kernel 2.5.54 with CONFIG_MODULES=n results in
> tons and tons of the following warnings:
>
> include/linux/module.h:317: warning: statement with no effect
> include/linux/module.h:353: warning: statement with no effect
>
> patch-2.5.54 changed *MOD_INC_USE_COUNT from macros to
> __deprecated functions, but also dropped the (void) casts
> in front of the try_module_get() calls. Without modules,
> try_module_get() is the constant 1, hence the warnings.
>
> The patch below silences the warnings by adding back the
> missing (void) casts. Works for me.

I know, Christoph Hellwig changed this, and I believe RTH fixed it in
his merge with Linus.

Thanks!
Rusty.
--
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.