ALSA: pcm: Use the common error path in __snd_pcm_lib_xfer()
authorTakashi Iwai <tiwai@suse.de>
Fri, 25 Jan 2019 16:31:59 +0000 (17:31 +0100)
committerTakashi Iwai <tiwai@suse.de>
Fri, 25 Jan 2019 16:31:59 +0000 (17:31 +0100)
An open-coded error path in __snd_pcm_lib_xfer() can be replaced with
the simple goto to the common error path.  This also makes the error
handling more consistent, i.e. when some samples have been already
processed, return that size instead of the error code.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/core/pcm_lib.c

index 40013b26f67196b23bcf94d69890b2835cde9f9d..f48efce937adc571b63eaa3cd7a8f6b7879a3e0d 100644 (file)
@@ -2219,9 +2219,8 @@ snd_pcm_sframes_t __snd_pcm_lib_xfer(struct snd_pcm_substream *substream,
                if (frames > cont)
                        frames = cont;
                if (snd_BUG_ON(!frames)) {
-                       runtime->twake = 0;
-                       snd_pcm_stream_unlock_irq(substream);
-                       return -EINVAL;
+                       err = -EINVAL;
+                       goto _end_unlock;
                }
                snd_pcm_stream_unlock_irq(substream);
                err = writer(substream, appl_ofs, data, offset, frames,