Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/i915/dsi: Fix NULL pointer deref in vlv_dphy_param_init()

Commit 77ba0b856225 ("drm/i915/dsi: convert vlv_dsi.[ch] to struct
intel_display") added a to_intel_display(connector) call to
vlv_dphy_param_init() but when vlv_dphy_param_init() gets called
the connector object has not been initialized yet, so this leads
to a NULL pointer deref:

BUG: kernel NULL pointer dereference, address: 000000000000000c
...
Hardware name: ASUSTeK COMPUTER INC. T100TA/T100TA, BIOS T100TA.314 08/13/2015
RIP: 0010:vlv_dsi_init+0x4e6/0x1600 [i915]
...
Call Trace:
<TASK>
? intel_step_name+0x4be8/0x5c30 [i915]
intel_setup_outputs+0x2d6/0xbd0 [i915]
intel_display_driver_probe_nogem+0x13f/0x220 [i915]
i915_driver_probe+0x3d9/0xaf0 [i915]

Use to_intel_display(&intel_dsi->base) instead to fix this.

Fixes: 77ba0b856225 ("drm/i915/dsi: convert vlv_dsi.[ch] to struct intel_display")
Signed-off-by: Hans de Goede <hansg@kernel.org>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
Link: https://lore.kernel.org/r/20250626143317.101706-1-hansg@kernel.org
Signed-off-by: Jani Nikula <jani.nikula@intel.com>

authored by

Hans de Goede and committed by
Jani Nikula
0dc6bfb5 98910fa0

+1 -1
+1 -1
drivers/gpu/drm/i915/display/vlv_dsi.c
··· 1591 1591 1592 1592 static void vlv_dphy_param_init(struct intel_dsi *intel_dsi) 1593 1593 { 1594 + struct intel_display *display = to_intel_display(&intel_dsi->base); 1594 1595 struct intel_connector *connector = intel_dsi->attached_connector; 1595 - struct intel_display *display = to_intel_display(connector); 1596 1596 struct mipi_config *mipi_config = connector->panel.vbt.dsi.config; 1597 1597 u32 tlpx_ns, extra_byte_count, tlpx_ui; 1598 1598 u32 ui_num, ui_den;