summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2009-07-03 23:10:23 +0200
committerTakashi Iwai <tiwai@suse.de>2009-07-03 23:10:23 +0200
commitc470331e69bd54d11a9ea3c27a0e4ad783d02d6b (patch)
tree40966f94ea8ea1bb12373df23644f8ee803820b9
parentALSA: hda - Call snd_pcm_lib_hw_rates() again after codec open callback (diff)
downloadlinux-c470331e69bd54d11a9ea3c27a0e4ad783d02d6b.tar.xz
linux-c470331e69bd54d11a9ea3c27a0e4ad783d02d6b.zip
ALSA: hda - Add sanity check in PCM open callback
Add some sanity checks of struct snd_pcm_hardware fields in the PCM open callback of hda driver. This makes a bit easier to debug any PCM setup errors in the codec side. Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--sound/pci/hda/hda_intel.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index b36dc46615a4..1877d95d4aa6 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -1464,6 +1464,12 @@ static int azx_pcm_open(struct snd_pcm_substream *substream)
snd_pcm_set_sync(substream);
mutex_unlock(&chip->open_mutex);
+ if (snd_BUG_ON(!runtime->hw.channels_min || !runtime->hw.channels_max))
+ return -EINVAL;
+ if (snd_BUG_ON(!runtime->hw.formats))
+ return -EINVAL;
+ if (snd_BUG_ON(!runtime->hw.rates))
+ return -EINVAL;
return 0;
}