[alsa-devel] [PATCH 1/2] ALSA: wss: Fix invalid snd_free_pages() at error path
Takashi Sakamoto
o-takashi at sakamocchi.jp
Sat Nov 24 15:40:34 CET 2018
Hi,
On Fri, Nov 23, 2018 at 06:19:55PM +0100, Takashi Iwai wrote:
> Some spurious calls of snd_free_pages() have been overlooked and
> remain in the error paths of wss driver code. Since runtime->dma_area
> is managed by the PCM core helper, we shouldn't release manually.
>
> Drop the superfluous calls.
>
> Cc: <stable at vger.kernel.org>
> Signed-off-by: Takashi Iwai <tiwai at suse.de>
> ---
> sound/isa/wss/wss_lib.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/sound/isa/wss/wss_lib.c b/sound/isa/wss/wss_lib.c
> index 32453f81b95a..3a5008837576 100644
> --- a/sound/isa/wss/wss_lib.c
> +++ b/sound/isa/wss/wss_lib.c
> @@ -1531,7 +1531,6 @@ static int snd_wss_playback_open(struct snd_pcm_substream *substream)
> if (err < 0) {
> if (chip->release_dma)
> chip->release_dma(chip, chip->dma_private_data, chip->dma1);
> - snd_free_pages(runtime->dma_area, runtime->dma_bytes);
> return err;
> }
> chip->playback_substream = substream;
> @@ -1572,7 +1571,6 @@ static int snd_wss_capture_open(struct snd_pcm_substream *substream)
> if (err < 0) {
> if (chip->release_dma)
> chip->release_dma(chip, chip->dma_private_data, chip->dma2);
> - snd_free_pages(runtime->dma_area, runtime->dma_bytes);
> return err;
> }
> chip->capture_substream = substream;
Reviewed-by: Takashi Sakamoto <o-takashi at sakamocchi.jp>
As in commit message, in this case, the 'struct snd_pcm_runtime.dma_area'
is assigned by a call of 'snd_pcm_lib_malloc_pages()', thus it's
allocated in 'snd_wss_[capture|playback]_hw_params()', and released in
'snd_wss_[capture|playback]_hw_free()'. No need to care it in
'snd_wss_[capture|playback_open()]'.
> --
> 2.19.1
>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
More information about the Alsa-devel
mailing list