summaryrefslogtreecommitdiffstats
path: root/sound/isa
diff options
context:
space:
mode:
authorAditya Pakki <pakki001@umn.edu>2019-01-06 12:16:00 -0500
committerTakashi Iwai <tiwai@suse.de>2019-01-07 05:59:23 -0500
commitbeae77170c60aa786f3e4599c18ead2854d8694d (patch)
tree4e9fe5d0bc9d2a452ffff1850feed24ad4c87088 /sound/isa
parent02cc53e223d498010de5f114d72c11a2d55118e8 (diff)
ALSA: sb: fix a missing check of snd_ctl_add
snd_ctl_add() could fail, so let's check its return value and return its error code upstream upon failure. Signed-off-by: Aditya Pakki <pakki001@umn.edu> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/isa')
-rw-r--r--sound/isa/sb/sb16_main.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/sound/isa/sb/sb16_main.c b/sound/isa/sb/sb16_main.c
index 37e6ce7b0b13..981d65d122b6 100644
--- a/sound/isa/sb/sb16_main.c
+++ b/sound/isa/sb/sb16_main.c
@@ -879,10 +879,14 @@ int snd_sb16dsp_pcm(struct snd_sb *chip, int device)
879 snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_sb16_playback_ops); 879 snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_PLAYBACK, &snd_sb16_playback_ops);
880 snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_sb16_capture_ops); 880 snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &snd_sb16_capture_ops);
881 881
882 if (chip->dma16 >= 0 && chip->dma8 != chip->dma16) 882 if (chip->dma16 >= 0 && chip->dma8 != chip->dma16) {
883 snd_ctl_add(card, snd_ctl_new1(&snd_sb16_dma_control, chip)); 883 err = snd_ctl_add(card, snd_ctl_new1(
884 else 884 &snd_sb16_dma_control, chip));
885 if (err)
886 return err;
887 } else {
885 pcm->info_flags = SNDRV_PCM_INFO_HALF_DUPLEX; 888 pcm->info_flags = SNDRV_PCM_INFO_HALF_DUPLEX;
889 }
886 890
887 snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV, 891 snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV,
888 snd_dma_isa_data(), 892 snd_dma_isa_data(),