diff options
Diffstat (limited to 'loopback')
-rw-r--r-- | loopback/loopback.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/loopback/loopback.c b/loopback/loopback.c index de0f38a..49c188d 100644 --- a/loopback/loopback.c +++ b/loopback/loopback.c @@ -1080,6 +1080,14 @@ static int loopbackap_configure(struct snd_card *card, return 0; } +static int loopbackap_unconfigure(void) +{ + mutex_destroy(&loopback->cable_lock); + kfree(loopback); + + return 0; +} + /******************************************************************************* * Loopback Audio Path AVIRT registration ******************************************************************************/ @@ -1091,6 +1099,7 @@ static struct snd_avirt_audiopath loopbackap_module = { .pcm_playback_ops = &loopbackap_pcm_ops, .pcm_capture_ops = &loopbackap_pcm_ops, .configure = loopbackap_configure, + .unconfigure = loopbackap_unconfigure, }; static int __init alsa_card_loopback_init(void) @@ -1108,6 +1117,8 @@ static int __init alsa_card_loopback_init(void) static void __exit alsa_card_loopback_exit(void) { + mutex_destroy(&loopback->cable_lock); + kfree(loopback); snd_avirt_audiopath_deregister(&loopbackap_module); } |