The unregister work should be also canceled in snd_hda_detach_beep_device() function. Signed-off-by: Jaroslav Kysela <perex@perex.cz> Signed-off-by: Takashi Iwai <tiwai@suse.de>
@@ -239,6 +239,7 @@ void snd_hda_detach_beep_device(struct hda_codec *codec)
struct hda_beep *beep = codec->beep;
if (beep) {
cancel_work_sync(&beep->register_work);
+ cancel_delayed_work(&beep->unregister_work);
if (beep->enabled)
snd_hda_do_detach(beep);
codec->beep = NULL;