[PATCH 00/22] drm: Review of mode copies

Ville Syrjala ville.syrjala at linux.intel.com
Fri Feb 18 02:03:41 PST 2022


From: Ville Syrjälä <ville.syrjala at linux.intel.com>

I might be taking this a bit too far, but the lack of
consistency in our methods to copy drm_display_mode
structs around is bugging me.

The main worry is the embedded list head, which if
clobbered could lead to list corruption. I'd also
prefer to make sure even the valid list heads don't
propagate between copies since that makes no sense.

While going through some of the code I also spotted
some very weird on stack copies being made for no
reason at all. I elimininated a few of them here,
but there could certainly be more lurking in the
shadows.

Cc: Abhinav Kumar <quic_abhinavk at quicinc.com>
Cc: Alain Volmat <alain.volmat at foss.st.com>
Cc: Alex Deucher <alexander.deucher at amd.com>
Cc: amd-gfx at lists.freedesktop.org
Cc: Andrzej Hajda <andrzej.hajda at intel.com>
Cc: Aurabindo Pillai <aurabindo.pillai at amd.com>
Cc: Chen Feng <puck.chen at hisilicon.com>
Cc: Chun-Kuang Hu <chunkuang.hu at kernel.org>
Cc: Emma Anholt <emma at anholt.net>
Cc: freedreno at lists.freedesktop.org
Cc: Harry Wentland <harry.wentland at amd.com>
Cc: "Heiko Stübner" <heiko at sntech.de>
Cc: Jernej Skrabec <jernej.skrabec at gmail.com>
Cc: John Stultz <john.stultz at linaro.org>
Cc: Jonas Karlman <jonas at kwiboo.se>
Cc: Jyri Sarha <jyri.sarha at iki.fi>
Cc: Laurent Pinchart <Laurent.pinchart at ideasonboard.com>
Cc: Leo Li <sunpeng.li at amd.com>
Cc: linux-arm-kernel at lists.infradead.org
Cc: linux-arm-msm at vger.kernel.org
Cc: linux-rockchip at lists.infradead.org
Cc: Maxime Ripard <mripard at kernel.org>
Cc: Neil Armstrong <narmstrong at baylibre.com>
Cc: Nikola Cornij <nikola.cornij at amd.com>
Cc: Patrik Jakobsson <patrik.r.jakobsson at gmail.com>
Cc: Philipp Zabel <p.zabel at pengutronix.de>
Cc: Rob Clark <robdclark at gmail.com>
Cc: Robert Foss <robert.foss at linaro.org>
Cc: Rodrigo Siqueira <Rodrigo.Siqueira at amd.com>
Cc: Sam Ravnborg <sam at ravnborg.org>
Cc: Sandy Huang <hjc at rock-chips.com>
Cc: Sean Paul <sean at poorly.run>
Cc: Thierry Reding <thierry.reding at gmail.com>
Cc: Tian Tao <tiantao6 at hisilicon.com>
Cc: Tomi Valkeinen <tomba at kernel.org>
Cc: Xinliang Liu <xinliang.liu at linaro.org>
Cc: Xinwei Kong <kong.kongxinwei at hisilicon.com>

Ville Syrjälä (22):
  drm: Add drm_mode_init()
  drm/amdgpu: Remove pointless on stack mode copies
  drm/amdgpu: Use drm_mode_init() for on-stack modes
  drm/amdgpu: Use drm_mode_copy()
  drm/radeon: Use drm_mode_copy()
  drm/bridge: Use drm_mode_copy()
  drm/gma500: Use drm_mode_copy()
  drm/hisilicon: Use drm_mode_init() for on-stack modes
  drm/imx: Use drm_mode_duplicate()
  drm/msm: Nuke weird on stack mode copy
  drm/msm: Use drm_mode_init() for on-stack modes
  drm/msm: Use drm_mode_copy()
  drm/mtk: Use drm_mode_init() for on-stack modes
  drm/rockchip: Use drm_mode_copy()
  drm/sti: Use drm_mode_copy()
  drm/tilcdc: Use drm_mode_copy()
  drm/vc4: Use drm_mode_copy()
  drm/i915: Use drm_mode_init() for on-stack modes
  drm/i915: Use drm_mode_copy()
  drm/panel: Use drm_mode_duplicate()
  drm: Use drm_mode_init() for on-stack modes
  drm: Use drm_mode_copy()

 .../gpu/drm/amd/amdgpu/amdgpu_connectors.c    |  4 +-
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 41 ++++++++++---------
 drivers/gpu/drm/bridge/nwl-dsi.c              |  2 +-
 drivers/gpu/drm/bridge/synopsys/dw-hdmi.c     |  2 +-
 drivers/gpu/drm/bridge/tc358767.c             |  2 +-
 drivers/gpu/drm/drm_crtc_helper.c             | 12 +++---
 drivers/gpu/drm/drm_edid.c                    |  8 +++-
 drivers/gpu/drm/drm_modes.c                   | 21 +++++++++-
 drivers/gpu/drm/drm_vblank.c                  |  2 +-
 drivers/gpu/drm/gma500/oaktrail_crtc.c        |  8 +---
 drivers/gpu/drm/hisilicon/kirin/dw_drm_dsi.c  |  2 +-
 drivers/gpu/drm/i915/display/intel_display.c  | 20 +++++----
 drivers/gpu/drm/imx/imx-ldb.c                 |  3 +-
 drivers/gpu/drm/mediatek/mtk_hdmi.c           |  2 +-
 .../drm/msm/disp/dpu1/dpu_encoder_phys_cmd.c  |  2 +-
 .../drm/msm/disp/dpu1/dpu_encoder_phys_vid.c  |  9 ++--
 drivers/gpu/drm/msm/dp/dp_display.c           |  2 +-
 drivers/gpu/drm/msm/dp/dp_drm.c               | 10 ++---
 drivers/gpu/drm/panel/panel-truly-nt35597.c   |  3 +-
 .../gpu/drm/panel/panel-visionox-rm69299.c    |  4 +-
 drivers/gpu/drm/radeon/radeon_connectors.c    |  4 +-
 drivers/gpu/drm/rockchip/cdn-dp-core.c        |  2 +-
 drivers/gpu/drm/rockchip/inno_hdmi.c          |  2 +-
 drivers/gpu/drm/rockchip/rk3066_hdmi.c        |  2 +-
 drivers/gpu/drm/sti/sti_dvo.c                 |  2 +-
 drivers/gpu/drm/sti/sti_hda.c                 |  2 +-
 drivers/gpu/drm/sti/sti_hdmi.c                |  2 +-
 drivers/gpu/drm/tilcdc/tilcdc_crtc.c          |  2 +-
 drivers/gpu/drm/vc4/vc4_hdmi.c                |  5 +--
 include/drm/drm_modes.h                       |  2 +
 30 files changed, 105 insertions(+), 79 deletions(-)

-- 
2.34.1




More information about the linux-arm-kernel mailing list