Message ID | 20241206-drm-connector-eld-mutex-v2-4-c9bce1ee8bea@linaro.org (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
Series | drm/connector: add eld_mutex to protect connector->eld | expand |
On Fri, Dec 06, 2024 at 11:43:07AM +0200, Dmitry Baryshkov wrote: > Reading access to connector->eld can happen at the same time the > drm_edid_to_eld() updates the data. Take the newly added eld_mutex in > order to protect connector->eld from concurrent access. > > Reviewed-by: Maxime Ripard <mripard@kernel.org> > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 2 ++ > 1 file changed, 2 insertions(+) Harry, Leo, Rodrigo, Alex, Christian, Xinhui, any response to this one and to the radeon patches? I'd like to be able to pick the series for drm-misc and these two are not reviewed by you. > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > index 19a58630e774029767bf2a27eb4ddf17e3c21129..04c68c320252b5ce9647f0606fb86fe57f347639 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > @@ -1037,8 +1037,10 @@ static int amdgpu_dm_audio_component_get_eld(struct device *kdev, int port, > continue; > > *enabled = true; > + mutex_lock(&connector->eld_mutex); > ret = drm_eld_size(connector->eld); > memcpy(buf, connector->eld, min(max_bytes, ret)); > + mutex_unlock(&connector->eld_mutex); > > break; > } > > -- > 2.39.5 >
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c index 19a58630e774029767bf2a27eb4ddf17e3c21129..04c68c320252b5ce9647f0606fb86fe57f347639 100644 --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c @@ -1037,8 +1037,10 @@ static int amdgpu_dm_audio_component_get_eld(struct device *kdev, int port, continue; *enabled = true; + mutex_lock(&connector->eld_mutex); ret = drm_eld_size(connector->eld); memcpy(buf, connector->eld, min(max_bytes, ret)); + mutex_unlock(&connector->eld_mutex); break; }