Commit 115b94d5 authored by Kirill Tkhai's avatar Kirill Tkhai Committed by Takashi Iwai

ALSA: ak4117: Do not free priv until timer handler hasn't actually stopped using it

Function del_timer() does not guarantee that timer was really deleted.
If the timer handler is beeing executed at the moment, the function
does nothing. So, it's possible to use already freed memory in the handler:

[ref: Documentation/DocBook/kernel-locking.tmpl]

This was found using grep and compile-tested only.
Signed-off-by: default avatarKirill Tkhai <ktkhai@parallels.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent 9ce50543
...@@ -62,7 +62,7 @@ static void reg_dump(struct ak4117 *ak4117) ...@@ -62,7 +62,7 @@ static void reg_dump(struct ak4117 *ak4117)
static void snd_ak4117_free(struct ak4117 *chip) static void snd_ak4117_free(struct ak4117 *chip)
{ {
del_timer(&chip->timer); del_timer_sync(&chip->timer);
kfree(chip); kfree(chip);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment