mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2024-12-28 16:52:18 +00:00
drm/msm/dpu: check dpu_plane_atomic_print_state() for valid sspp
Similar to the r_pipe sspp protect, add a check to protect
the pipe state prints to avoid NULL ptr dereference for cases when
the state is dumped without a corresponding atomic_check() where the
pipe->sspp is assigned.
Fixes: 31f7148fd3
("drm/msm/dpu: move pstate->pipe initialization to dpu_plane_atomic_check")
Reported-by: Stephen Boyd <swboyd@chromium.org>
Closes: https://gitlab.freedesktop.org/drm/msm/-/issues/67
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Tested-by: Douglas Anderson <dianders@chromium.org>
Tested-by: Stephen Boyd <swboyd@chromium.org> # sc7180-trogdor
Patchwork: https://patchwork.freedesktop.org/patch/628404/
Link: https://lore.kernel.org/r/20241211-check-state-before-dump-v2-1-62647a501e8c@quicinc.com
Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
This commit is contained in:
parent
d9f55e2abf
commit
789384eb14
@ -1335,12 +1335,15 @@ static void dpu_plane_atomic_print_state(struct drm_printer *p,
|
||||
|
||||
drm_printf(p, "\tstage=%d\n", pstate->stage);
|
||||
|
||||
drm_printf(p, "\tsspp[0]=%s\n", pipe->sspp->cap->name);
|
||||
drm_printf(p, "\tmultirect_mode[0]=%s\n", dpu_get_multirect_mode(pipe->multirect_mode));
|
||||
drm_printf(p, "\tmultirect_index[0]=%s\n",
|
||||
dpu_get_multirect_index(pipe->multirect_index));
|
||||
drm_printf(p, "\tsrc[0]=" DRM_RECT_FMT "\n", DRM_RECT_ARG(&pipe_cfg->src_rect));
|
||||
drm_printf(p, "\tdst[0]=" DRM_RECT_FMT "\n", DRM_RECT_ARG(&pipe_cfg->dst_rect));
|
||||
if (pipe->sspp) {
|
||||
drm_printf(p, "\tsspp[0]=%s\n", pipe->sspp->cap->name);
|
||||
drm_printf(p, "\tmultirect_mode[0]=%s\n",
|
||||
dpu_get_multirect_mode(pipe->multirect_mode));
|
||||
drm_printf(p, "\tmultirect_index[0]=%s\n",
|
||||
dpu_get_multirect_index(pipe->multirect_index));
|
||||
drm_printf(p, "\tsrc[0]=" DRM_RECT_FMT "\n", DRM_RECT_ARG(&pipe_cfg->src_rect));
|
||||
drm_printf(p, "\tdst[0]=" DRM_RECT_FMT "\n", DRM_RECT_ARG(&pipe_cfg->dst_rect));
|
||||
}
|
||||
|
||||
if (r_pipe->sspp) {
|
||||
drm_printf(p, "\tsspp[1]=%s\n", r_pipe->sspp->cap->name);
|
||||
|
Loading…
Reference in New Issue
Block a user