@@ -3882,11 +3882,10 @@ snd_soc_dai_link_event_pre_pmu(struct snd_soc_dapm_widget *w,
3882
3882
struct snd_soc_dapm_path * path ;
3883
3883
struct snd_soc_dai * source , * sink ;
3884
3884
struct snd_soc_pcm_runtime * rtd = snd_soc_substream_to_rtd (substream );
3885
- struct snd_pcm_hw_params * params = NULL ;
3886
3885
const struct snd_soc_pcm_stream * config = NULL ;
3887
3886
struct snd_pcm_runtime * runtime = NULL ;
3888
3887
unsigned int fmt ;
3889
- int ret = 0 ;
3888
+ int ret ;
3890
3889
3891
3890
/*
3892
3891
* NOTE
@@ -3897,15 +3896,14 @@ snd_soc_dai_link_event_pre_pmu(struct snd_soc_dapm_widget *w,
3897
3896
* stuff that increases stack usage.
3898
3897
* So, we use kzalloc()/kfree() for params in this function.
3899
3898
*/
3900
- params = kzalloc (sizeof (* params ), GFP_KERNEL );
3899
+ struct snd_pcm_hw_params * params __free (kfree ) = kzalloc (sizeof (* params ),
3900
+ GFP_KERNEL );
3901
3901
if (!params )
3902
3902
return - ENOMEM ;
3903
3903
3904
3904
runtime = kzalloc (sizeof (* runtime ), GFP_KERNEL );
3905
- if (!runtime ) {
3906
- ret = - ENOMEM ;
3907
- goto out ;
3908
- }
3905
+ if (!runtime )
3906
+ return - ENOMEM ;
3909
3907
3910
3908
substream -> runtime = runtime ;
3911
3909
@@ -3915,7 +3913,7 @@ snd_soc_dai_link_event_pre_pmu(struct snd_soc_dapm_widget *w,
3915
3913
3916
3914
ret = snd_soc_dai_startup (source , substream );
3917
3915
if (ret < 0 )
3918
- goto out ;
3916
+ return ret ;
3919
3917
3920
3918
snd_soc_dai_activate (source , substream -> stream );
3921
3919
}
@@ -3926,7 +3924,7 @@ snd_soc_dai_link_event_pre_pmu(struct snd_soc_dapm_widget *w,
3926
3924
3927
3925
ret = snd_soc_dai_startup (sink , substream );
3928
3926
if (ret < 0 )
3929
- goto out ;
3927
+ return ret ;
3930
3928
3931
3929
snd_soc_dai_activate (sink , substream -> stream );
3932
3930
}
@@ -3941,16 +3939,14 @@ snd_soc_dai_link_event_pre_pmu(struct snd_soc_dapm_widget *w,
3941
3939
config = rtd -> dai_link -> c2c_params + rtd -> c2c_params_select ;
3942
3940
if (!config ) {
3943
3941
dev_err (w -> dapm -> dev , "ASoC: link config missing\n" );
3944
- ret = - EINVAL ;
3945
- goto out ;
3942
+ return - EINVAL ;
3946
3943
}
3947
3944
3948
3945
/* Be a little careful as we don't want to overflow the mask array */
3949
3946
if (!config -> formats ) {
3950
3947
dev_warn (w -> dapm -> dev , "ASoC: Invalid format was specified\n" );
3951
3948
3952
- ret = - EINVAL ;
3953
- goto out ;
3949
+ return - EINVAL ;
3954
3950
}
3955
3951
3956
3952
fmt = ffs (config -> formats ) - 1 ;
@@ -3971,7 +3967,7 @@ snd_soc_dai_link_event_pre_pmu(struct snd_soc_dapm_widget *w,
3971
3967
3972
3968
ret = snd_soc_dai_hw_params (source , substream , params );
3973
3969
if (ret < 0 )
3974
- goto out ;
3970
+ return ret ;
3975
3971
3976
3972
dapm_update_dai_unlocked (substream , params , source );
3977
3973
}
@@ -3982,7 +3978,7 @@ snd_soc_dai_link_event_pre_pmu(struct snd_soc_dapm_widget *w,
3982
3978
3983
3979
ret = snd_soc_dai_hw_params (sink , substream , params );
3984
3980
if (ret < 0 )
3985
- goto out ;
3981
+ return ret ;
3986
3982
3987
3983
dapm_update_dai_unlocked (substream , params , sink );
3988
3984
}
@@ -3992,11 +3988,7 @@ snd_soc_dai_link_event_pre_pmu(struct snd_soc_dapm_widget *w,
3992
3988
runtime -> channels = params_channels (params );
3993
3989
runtime -> rate = params_rate (params );
3994
3990
3995
- out :
3996
- /* see above NOTE */
3997
- kfree (params );
3998
-
3999
- return ret ;
3991
+ return 0 ;
4000
3992
}
4001
3993
4002
3994
static int snd_soc_dai_link_event (struct snd_soc_dapm_widget * w ,
0 commit comments