At Thu, 21 Feb 2008 09:48:30 +0100, Clemens Ladisch wrote:
Joshua Roys wrote:
sound/core/init.c: In function ‘snd_card_disconnect’: sound/core/init.c:307: warning: the address of ‘snd_shutdown_f_ops’ will always evaluate as ‘true’
Signed-off-by: Joshua Roys roysjosh@gmail.com
sound/core/init.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/sound/core/init.c b/sound/core/init.c index 2cb7099..1afc58b 100644 --- a/sound/core/init.c +++ b/sound/core/init.c @@ -304,7 +304,6 @@ int snd_card_disconnect(struct snd_card *card) list_add(&mfile->shutdown_list, &shutdown_files); spin_unlock(&shutdown_lock);
mfile->file->f_op = &snd_shutdown_f_ops; mfile = mfile->next;fops_get(&snd_shutdown_f_ops);
This change may get rid of the warning, but is has the slight disadvantage that the kernel will blow up if you try to unload the sound modules before all device files have been closed.
If you want to get rid of this warning, tell the compiler that fops_get knows what it does; or try making fops_get an inline function instead of a macro.
This was already fixed in a different way on 2.6.25-rc.
commit bc9abce0de0b180817bc7e9f73145ef0b6a464ef Author: Miguel Boton mboton@gmail.com Date: Sun Jan 13 12:03:53 2008 +0100
[ALSA] fix compilation warning in GCC
'snd_shutdown_f_ops' is not a pointer so its address will never be NULL. GCC will complain because 'fops_get' will do an unnecessary check because '&snd_shutdown_f_ops' is always true.
Takashi