ALSA: hda - Fix Oops at codec reset/reconfig
authorTakashi Iwai <tiwai@suse.de>
Mon, 10 Sep 2012 07:39:31 +0000 (09:39 +0200)
committerTakashi Iwai <tiwai@suse.de>
Mon, 10 Sep 2012 08:26:23 +0000 (10:26 +0200)
commit07dc59f0988cb54fd87bd373b3b27eb2401dd811
tree6cf9ec43ccd20298698cca8aa534d1dae51a7bff
parent1213a205f9ed27d97de3d5bed28fb085ef4853e2
ALSA: hda - Fix Oops at codec reset/reconfig

snd_hda_codec_reset() calls restore_pincfgs() where the codec is
powered up again, which eventually tries to resume and initialize via
the callbacks of the codec.  However, it's the place just after codec
free callback, thus no codec callbacks should be called after that.
On a codec like CS4206, it results in Oops due to the access in init
callback.

This patch fixes the issue by clearing the codec callbacks properly
after freeing codec.

Reported-by: Daniel J Blueman <daniel@quora.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
sound/pci/hda/hda_codec.c