[alsa-devel] [PATCH] Fix a compile warning under gcc-4.2.3.

Takashi Iwai tiwai at suse.de
Thu Feb 21 12:19:14 CET 2008


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 at 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);
> >
> > -		fops_get(&snd_shutdown_f_ops);
> >  		mfile->file->f_op = &snd_shutdown_f_ops;
> >  		
> >  		mfile = mfile->next;
> 
> 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 at 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


More information about the Alsa-devel mailing list