ALSA: ctxfi: Use common error handling code in two functions
Add jump targets so that a bit of exception handling can be better reused at the end of these functions. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring <elfring@users.sourceforge.net> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
2cded8c891
commit
cbb7eb20bb
|
@ -140,27 +140,28 @@ static int ct_pcm_playback_open(struct snd_pcm_substream *substream)
|
|||
|
||||
err = snd_pcm_hw_constraint_integer(runtime,
|
||||
SNDRV_PCM_HW_PARAM_PERIODS);
|
||||
if (err < 0) {
|
||||
kfree(apcm);
|
||||
return err;
|
||||
}
|
||||
if (err < 0)
|
||||
goto free_pcm;
|
||||
|
||||
err = snd_pcm_hw_constraint_minmax(runtime,
|
||||
SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
|
||||
1024, UINT_MAX);
|
||||
if (err < 0) {
|
||||
kfree(apcm);
|
||||
return err;
|
||||
}
|
||||
if (err < 0)
|
||||
goto free_pcm;
|
||||
|
||||
apcm->timer = ct_timer_instance_new(atc->timer, apcm);
|
||||
if (!apcm->timer) {
|
||||
kfree(apcm);
|
||||
return -ENOMEM;
|
||||
err = -ENOMEM;
|
||||
goto free_pcm;
|
||||
}
|
||||
runtime->private_data = apcm;
|
||||
runtime->private_free = ct_atc_pcm_free_substream;
|
||||
|
||||
return 0;
|
||||
|
||||
free_pcm:
|
||||
kfree(apcm);
|
||||
return err;
|
||||
}
|
||||
|
||||
static int ct_pcm_playback_close(struct snd_pcm_substream *substream)
|
||||
|
@ -286,27 +287,28 @@ static int ct_pcm_capture_open(struct snd_pcm_substream *substream)
|
|||
|
||||
err = snd_pcm_hw_constraint_integer(runtime,
|
||||
SNDRV_PCM_HW_PARAM_PERIODS);
|
||||
if (err < 0) {
|
||||
kfree(apcm);
|
||||
return err;
|
||||
}
|
||||
if (err < 0)
|
||||
goto free_pcm;
|
||||
|
||||
err = snd_pcm_hw_constraint_minmax(runtime,
|
||||
SNDRV_PCM_HW_PARAM_BUFFER_BYTES,
|
||||
1024, UINT_MAX);
|
||||
if (err < 0) {
|
||||
kfree(apcm);
|
||||
return err;
|
||||
}
|
||||
if (err < 0)
|
||||
goto free_pcm;
|
||||
|
||||
apcm->timer = ct_timer_instance_new(atc->timer, apcm);
|
||||
if (!apcm->timer) {
|
||||
kfree(apcm);
|
||||
return -ENOMEM;
|
||||
err = -ENOMEM;
|
||||
goto free_pcm;
|
||||
}
|
||||
runtime->private_data = apcm;
|
||||
runtime->private_free = ct_atc_pcm_free_substream;
|
||||
|
||||
return 0;
|
||||
|
||||
free_pcm:
|
||||
kfree(apcm);
|
||||
return err;
|
||||
}
|
||||
|
||||
static int ct_pcm_capture_close(struct snd_pcm_substream *substream)
|
||||
|
|
Loading…
Reference in New Issue