[alsa-devel] [PATCH v2] ALSA: dice: fix memory leak when unplugging
Takashi Iwai
tiwai at suse.de
Mon Mar 28 09:33:39 CEST 2016
On Mon, 28 Mar 2016 01:29:32 +0200,
Takashi Sakamoto wrote:
>
> When sound card is going to be released, dice private data is
> also released. Then all of data should be released. However,
> stream data is not released. This causes memory leak when
> unplugging dice unit.
>
> This commit fixes the bug.
>
> Fixes: 4bdc495c87b3('ALSA: dice: handle several PCM substreams when any isochronous streams are available')
> Signed-off-by: Takashi Sakamoto <o-takashi at sakamocchi.jp>
Applied, thanks.
Takashi
> ---
> sound/firewire/dice/dice-stream.c | 14 ++++----------
> 1 file changed, 4 insertions(+), 10 deletions(-)
>
> diff --git a/sound/firewire/dice/dice-stream.c b/sound/firewire/dice/dice-stream.c
> index 845d5e5..ec4db3a 100644
> --- a/sound/firewire/dice/dice-stream.c
> +++ b/sound/firewire/dice/dice-stream.c
> @@ -446,18 +446,12 @@ end:
>
> void snd_dice_stream_destroy_duplex(struct snd_dice *dice)
> {
> - struct reg_params tx_params, rx_params;
> -
> - snd_dice_transaction_clear_enable(dice);
> + unsigned int i;
>
> - if (get_register_params(dice, &tx_params, &rx_params) == 0) {
> - stop_streams(dice, AMDTP_IN_STREAM, &tx_params);
> - stop_streams(dice, AMDTP_OUT_STREAM, &rx_params);
> + for (i = 0; i < MAX_STREAMS; i++) {
> + destroy_stream(dice, AMDTP_IN_STREAM, i);
> + destroy_stream(dice, AMDTP_OUT_STREAM, i);
> }
> -
> - release_resources(dice);
> -
> - dice->substreams_counter = 0;
> }
>
> void snd_dice_stream_update_duplex(struct snd_dice *dice)
> --
> 2.7.3
>
More information about the Alsa-devel
mailing list