On Mon Sep 2, 2024 at 2:40 AM PDT, tjakobi wrote: > From: Tobias Jakobi <tjakobi@xxxxxxxxxxxxxxxxxxxxx> > > Hello, > > this fixes a nasty race condition in the set_drr() callbacks for DCN10 > and DCN35 that has existed now since quite some time, see this GitLab > issue for reference. > > https://gitlab.freedesktop.org/drm/amd/-/issues/3142 > > The report just focuses von DCN10, but the same problem also exists in > the DCN35 code. Does the problem not exist in the following references to funcs->set_drr? drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c: if (pipe_ctx->stream_res.tg->funcs->set_drr) drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c: pipe_ctx->stream_res.tg->funcs->set_drr( drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c: pipe_ctx[i]->stream_res.tg->funcs->set_drr( drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c: if (pipe_ctx->stream_res.tg->funcs->set_drr) drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c: pipe_ctx->stream_res.tg->funcs->set_drr( drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c: if (pipe_ctx->stream_res.tg->funcs->set_drr) drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c: pipe_ctx->stream_res.tg->funcs->set_drr( drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c: if (pipe_ctx->stream_res.tg->funcs->set_drr) drivers/gpu/drm/amd/display/dc/hwss/dcn31/dcn31_hwseq.c: pipe_ctx->stream_res.tg->funcs->set_drr( drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c: if (pipe_ctx->stream_res.tg->funcs->set_drr) drivers/gpu/drm/amd/display/dc/hwss/dcn401/dcn401_hwseq.c: pipe_ctx->stream_res.tg->funcs->set_drr( > > With best wishes, > Tobias > > Tobias Jakobi (2): > drm/amd/display: Avoid race between dcn10_set_drr() and > dc_state_destruct() > drm/amd/display: Avoid race between dcn35_set_drr() and > dc_state_destruct() > > .../amd/display/dc/hwss/dcn10/dcn10_hwseq.c | 20 +++++++++++-------- > .../amd/display/dc/hwss/dcn35/dcn35_hwseq.c | 20 +++++++++++-------- > 2 files changed, 24 insertions(+), 16 deletions(-)