Merge branch 'topic/oss' into for-linus
authorTakashi Iwai <tiwai@suse.de>
Thu, 10 Sep 2009 13:32:58 +0000 (15:32 +0200)
committerTakashi Iwai <tiwai@suse.de>
Thu, 10 Sep 2009 13:32:58 +0000 (15:32 +0200)
* topic/oss:
  ALSA: allocation may fail in snd_pcm_oss_change_params()
  sound: vwsnd: Fix setting of cfgval and ctlval in li_setup_dma()
  sound: fix OSS MIDI output data loss

1  2 
sound/core/oss/pcm_oss.c

diff --combined sound/core/oss/pcm_oss.c
index d8b2d76125b437ec66ca324181173c5553fd1f63,d35d61b3292ced461a1aa63f0f755a072324e840..d9c96353121a567b53f040dc1b87207aac40cac4
@@@ -1043,10 -1043,15 +1043,15 @@@ static int snd_pcm_oss_change_params(st
        runtime->oss.channels = params_channels(params);
        runtime->oss.rate = params_rate(params);
  
-       runtime->oss.params = 0;
-       runtime->oss.prepare = 1;
        vfree(runtime->oss.buffer);
        runtime->oss.buffer = vmalloc(runtime->oss.period_bytes);
+       if (!runtime->oss.buffer) {
+               err = -ENOMEM;
+               goto failure;
+       }
+       runtime->oss.params = 0;
+       runtime->oss.prepare = 1;
        runtime->oss.buffer_used = 0;
        if (runtime->dma_area)
                snd_pcm_format_set_silence(runtime->format, runtime->dma_area, bytes_to_samples(runtime, runtime->dma_bytes));
@@@ -2836,8 -2841,7 +2841,8 @@@ static void snd_pcm_oss_proc_write(stru
                                   struct snd_info_buffer *buffer)
  {
        struct snd_pcm_str *pstr = entry->private_data;
 -      char line[128], str[32], task_name[32], *ptr;
 +      char line[128], str[32], task_name[32];
 +      const char *ptr;
        int idx1;
        struct snd_pcm_oss_setup *setup, *setup1, template;