[alsa-devel] [PATCH 1/3] Add SuperH FSI driver support for ALSA
Takashi Iwai
tiwai at suse.de
Wed Aug 19 14:39:06 CEST 2009
At Wed, 19 Aug 2009 13:28:01 +0100,
Mark Brown wrote:
>
> > + struct snd_pcm_hw_params *hw_params)
> > +{
> > + return snd_pcm_lib_malloc_pages(substream,
> > + params_buffer_bytes(hw_params));
> > +}
>
> hw_params() may be called multiple times per stream, especially if OSS
> emulation is used. This would lead to memory leaks since if more pages
> need to be allocaeted the old buffer won't be freed. Simply calling
> free_pages() before malloc_pages() should plug this leak - free_pages()
> will check to see if anything was allocated.
Note that it's snd_pcm_lib_malloc_pages(), not the kernel's standard
one like alloc_pages(). The former frees the old buffer by itself
when resized, so you don't need to call snd_pcm_lib_free_pages()
(as long as it's called in hw_free callback).
thanks,
Takashi
More information about the Alsa-devel
mailing list