X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=sound%2Fcore%2Fpcm_native.c;h=f9ddecf2f4cd7a17ebc0d5f0ba92405c03ab904a;hb=bfd9155ebbdd4ea3d14b5d1ee933a893bbe0618f;hp=6e8872de5ba05f78864eba53fa577197370c33a9;hpb=3fd9396af83a1e69eaf9ebb573207431d8f265b6;p=~andy%2Flinux diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c index 6e8872de5ba..f9ddecf2f4c 100644 --- a/sound/core/pcm_native.c +++ b/sound/core/pcm_native.c @@ -2122,7 +2122,8 @@ static int snd_pcm_playback_open(struct inode *inode, struct file *file) pcm = snd_lookup_minor_data(iminor(inode), SNDRV_DEVICE_TYPE_PCM_PLAYBACK); err = snd_pcm_open(file, pcm, SNDRV_PCM_STREAM_PLAYBACK); - snd_card_unref(pcm->card); + if (pcm) + snd_card_unref(pcm->card); return err; } @@ -2135,7 +2136,8 @@ static int snd_pcm_capture_open(struct inode *inode, struct file *file) pcm = snd_lookup_minor_data(iminor(inode), SNDRV_DEVICE_TYPE_PCM_CAPTURE); err = snd_pcm_open(file, pcm, SNDRV_PCM_STREAM_CAPTURE); - snd_card_unref(pcm->card); + if (pcm) + snd_card_unref(pcm->card); return err; }