mirror of
https://github.com/torvalds/linux.git
synced 2026-09-25 09:41:03 +02:00
ASoC: intel: atom: Use __free(kfree) for stream pointer
Declare 'stream' with __free(kfree) so it is automatically freed when leaving scope. This allows direct returns from error paths and removes the explicit kfree(stream) call. Set 'stream' to NULL after ownership has been transferred to runtime->private_data to prevent it from being freed on the success path. This cleanup is a preparation step for upcoming locking changes. Signed-off-by: bui duc phuc <phucduc.bui@gmail.com> Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com> Link: https://patch.msgid.link/20260626082904.32344-4-phucduc.bui@gmail.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
6aaac9f6ba
commit
4889a8a73f
|
|
@ -11,6 +11,7 @@
|
|||
*/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
|
||||
|
||||
#include <linux/cleanup.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/io.h>
|
||||
#include <linux/module.h>
|
||||
|
|
@ -304,7 +305,7 @@ static int sst_media_open(struct snd_pcm_substream *substream,
|
|||
{
|
||||
int ret_val = 0;
|
||||
struct snd_pcm_runtime *runtime = substream->runtime;
|
||||
struct sst_runtime_stream *stream;
|
||||
struct sst_runtime_stream *stream __free(kfree) = NULL;
|
||||
|
||||
stream = kzalloc_obj(*stream);
|
||||
if (!stream)
|
||||
|
|
@ -330,7 +331,7 @@ static int sst_media_open(struct snd_pcm_substream *substream,
|
|||
|
||||
ret_val = power_up_sst(stream);
|
||||
if (ret_val < 0)
|
||||
goto out_power_up;
|
||||
return ret_val;
|
||||
|
||||
/*
|
||||
* Make sure the period to be multiple of 1ms to align the
|
||||
|
|
@ -347,12 +348,19 @@ static int sst_media_open(struct snd_pcm_substream *substream,
|
|||
snd_pcm_hw_constraint_step(substream->runtime, 0,
|
||||
SNDRV_PCM_HW_PARAM_PERIODS, 2);
|
||||
|
||||
return snd_pcm_hw_constraint_integer(runtime,
|
||||
SNDRV_PCM_HW_PARAM_PERIODS);
|
||||
ret_val = snd_pcm_hw_constraint_integer(runtime,
|
||||
SNDRV_PCM_HW_PARAM_PERIODS);
|
||||
|
||||
if (ret_val < 0)
|
||||
return ret_val;
|
||||
|
||||
stream = NULL;
|
||||
|
||||
return ret_val;
|
||||
|
||||
out_ops:
|
||||
mutex_unlock(&sst_lock);
|
||||
out_power_up:
|
||||
kfree(stream);
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user