diff --git a/sound/core/timer.c b/sound/core/timer.c index 12db60dd147b793ce11547a0433f2aaf4d392d5a..b419e612f98749db23c5919292e358ed3d3d4912 100644 --- a/sound/core/timer.c +++ b/sound/core/timer.c @@ -1058,11 +1058,21 @@ static int snd_timer_s_stop(struct snd_timer * timer) return 0; } +static int snd_timer_s_close(struct snd_timer *timer) +{ + struct snd_timer_system_private *priv; + + priv = (struct snd_timer_system_private *)timer->private_data; + del_timer_sync(&priv->tlist); + return 0; +} + static struct snd_timer_hardware snd_timer_system = { .flags = SNDRV_TIMER_HW_FIRST | SNDRV_TIMER_HW_TASKLET, .resolution = 1000000000L / HZ, .ticks = 10000000L, + .close = snd_timer_s_close, .start = snd_timer_s_start, .stop = snd_timer_s_stop };