Modules: Digigram VX core
Noticed by Eric Sesterhenn on kernel-janitors@
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
 
        /* allocate pipes */
        chip->playback_pipes = kmalloc(sizeof(struct vx_pipe *) * chip->audio_outs, GFP_KERNEL);
+       if (!chip->playback_pipes)
+               return -ENOMEM;
        chip->capture_pipes = kmalloc(sizeof(struct vx_pipe *) * chip->audio_ins, GFP_KERNEL);
-       if (! chip->playback_pipes || ! chip->capture_pipes)
+       if (!chip->capture_pipes) {
+               kfree(chip->playback_pipes);
                return -ENOMEM;
+       }
 
        memset(chip->playback_pipes, 0, sizeof(struct vx_pipe *) * chip->audio_outs);
        memset(chip->capture_pipes, 0, sizeof(struct vx_pipe *) * chip->audio_ins);