mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 12:28:41 +08:00
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: 4bdc495c87b3('ALSA: dice: handle several PCM substreams when any isochronous streams are available') Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
83a9efb5b8
commit
6b94fb14fc
@ -446,18 +446,12 @@ end:
|
||||
|
||||
void snd_dice_stream_destroy_duplex(struct snd_dice *dice)
|
||||
{
|
||||
struct reg_params tx_params, rx_params;
|
||||
unsigned int i;
|
||||
|
||||
snd_dice_transaction_clear_enable(dice);
|
||||
|
||||
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)
|
||||
|
Loading…
Reference in New Issue
Block a user