[alsa-devel] [PATCH 09/10] alsabat: use variable for thread return value
Lu, Han
han.lu at intel.com
Mon Mar 14 10:36:53 CET 2016
Hi Takashi,
> -----Original Message-----
> From: Takashi Iwai [mailto:tiwai at suse.de]
> Sent: Monday, March 14, 2016 5:21 PM
> To: Lu, Han <han.lu at intel.com>
> Cc: liam.r.girdwood at linux.intel.com; Gautier, Bernard
> <bernard.gautier at intel.com>; Popescu, Edward C
> <edward.c.popescu at intel.com>; alsa-devel at alsa-project.org
> Subject: Re: [alsa-devel] [PATCH 09/10] alsabat: use variable for thread
> return value
>
> On Mon, 14 Mar 2016 10:15:20 +0100,
> Lu, Han wrote:
> >
> > Hi Takashi,
> >
> > > -----Original Message-----
> > > From: Takashi Iwai [mailto:tiwai at suse.de]
> > > Sent: Friday, March 11, 2016 9:34 PM
> > > To: Lu, Han <han.lu at intel.com>
> > > Cc: liam.r.girdwood at linux.intel.com; Gautier, Bernard
> > > <bernard.gautier at intel.com>; Popescu, Edward C
> > > <edward.c.popescu at intel.com>; alsa-devel at alsa-project.org
> > > Subject: Re: [alsa-devel] [PATCH 09/10] alsabat: use variable for
> > > thread return value
> > >
> > > On Wed, 02 Mar 2016 09:53:19 +0100,
> > > han.lu at intel.com wrote:
> > > >
> > > > From: "Lu, Han" <han.lu at intel.com>
> > > >
> > > > Replace fixed "1" to variable for thread return value.
> > > >
> > > > Signed-off-by: Lu, Han <han.lu at intel.com>
> > > >
> > > > diff --git a/bat/alsa.c b/bat/alsa.c index 0a5f899..189b0e9 100644
> > > > --- a/bat/alsa.c
> > > > +++ b/bat/alsa.c
> > > > @@ -309,13 +309,13 @@ void *playback_alsa(struct bat *bat)
> > > > if (err != 0) {
> > > > fprintf(bat->err, _("Cannot open PCM playback device: "));
> > > > fprintf(bat->err, _("%s(%d)\n"), snd_strerror(err), err);
> > > > - retval_play = 1;
> > > > + retval_play = err;
> > > > goto exit1;
> > > > }
> > > >
> > > > err = set_snd_pcm_params(bat, &sndpcm);
> > > > if (err != 0) {
> > > > - retval_play = 1;
> > > > + retval_play = err;
> > > > goto exit2;
> > > > }
> > > >
> > > > @@ -332,13 +332,13 @@ void *playback_alsa(struct bat *bat)
> > > > fprintf(bat->err, _("Cannot open file for playback: "));
> > > > fprintf(bat->err, _("%s %d\n"),
> > > > bat->playback.file, -errno);
> > > > - retval_play = 1;
> > > > + retval_play = -errno;
> > >
> > > Is the original errno still preserved at this point...?
> >
> > [han] I think so, the complete code section here is
> > ...
> > bat->fp = fopen(bat->playback.file, "rb");
> > if (bat->fp == NULL) {
> > fprintf(bat->err, _("Cannot open file for playback: "));
> > fprintf(bat->err, _("%s %d\n"),
> > bat->playback.file, -errno);
> > - retval_play = 1;
> > + retval_play = -errno;
> > goto exit3;
> > }
> > ...
> > So the use of errno should be safe.
>
> You call a bunch of functions between the fopen() error and the reference of
> errno. The errno reference should be done immediately after the error.
>
>
> Takashi
[han] sorry! I ignored the errno could be changed by the printf(). I'll rewrite the
patch and fix other similar errors.
BR,
Han
More information about the Alsa-devel
mailing list