Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6b94fb14 authored by Takashi Sakamoto's avatar Takashi Sakamoto Committed by Takashi Iwai
Browse files

ALSA: dice: fix memory leak when unplugging



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: 4bdc495c('ALSA: dice: handle several PCM substreams when any isochronous streams are available')
Signed-off-by: default avatarTakashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 83a9efb5
Loading
Loading
Loading
Loading
+4 −10
Original line number Diff line number Diff line
@@ -446,18 +446,12 @@ int snd_dice_stream_init_duplex(struct snd_dice *dice)

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)