ASoC: Intel: avs: Access path components under lock
Path and its components should be accessed under lock to prevent
problems with one thread modifying them while other tries to read.
Fixes: c8c960c109
("ASoC: Intel: avs: APL-based platforms support")
Reviewed-by: Cezary Rojewski <cezary.rojewski@intel.com>
Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Link: https://lore.kernel.org/r/20230519201711.4073845-3-amadeuszx.slawinski@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
ff04437f6d
commit
d849996f74
@ -169,6 +169,7 @@ static bool apl_lp_streaming(struct avs_dev *adev)
|
||||
{
|
||||
struct avs_path *path;
|
||||
|
||||
spin_lock(&adev->path_list_lock);
|
||||
/* Any gateway without buffer allocated in LP area disqualifies D0IX. */
|
||||
list_for_each_entry(path, &adev->path_list, node) {
|
||||
struct avs_path_pipeline *ppl;
|
||||
@ -188,11 +189,14 @@ static bool apl_lp_streaming(struct avs_dev *adev)
|
||||
if (cfg->copier.dma_type == INVALID_OBJECT_ID)
|
||||
continue;
|
||||
|
||||
if (!mod->gtw_attrs.lp_buffer_alloc)
|
||||
if (!mod->gtw_attrs.lp_buffer_alloc) {
|
||||
spin_unlock(&adev->path_list_lock);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
spin_unlock(&adev->path_list_lock);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user