aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomasz Figa <[email protected]>2014-06-10 22:57:57 +0200
committerInki Dae <[email protected]>2014-06-24 11:11:54 +0900
commitaaa51b13ffdc87ffbbde650bab9dee0a9c5c408f (patch)
treee89218313491ac73bccefdd6c40fe36b4c31fbea
parent245f98f269714c08dc6d66d021d166cf36059bc4 (diff)
drm/exynos: dpi: Fix NULL pointer dereference with legacy bindings
If there is no panel node in DT and instead display timings are provided directly in FIMD node, there is no panel object created and ctx->panel becomes NULL. However during Exynos DRM initialization drm_helper_hpd_irq_event() is called, which in turns calls exynos_dpi_detect(), which dereferences ctx->panel without a check, causing a NULL pointer derefrence. This patch fixes the issue by adding necessary NULL pointer check. Signed-off-by: Tomasz Figa <[email protected]> Reviewed-by: Jingoo Han <[email protected]> Signed-off-by: Inki Dae <[email protected]>
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_dpi.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dpi.c b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
index 482127f633c5..9e530f205ad2 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dpi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dpi.c
@@ -40,7 +40,7 @@ exynos_dpi_detect(struct drm_connector *connector, bool force)
{
struct exynos_dpi *ctx = connector_to_dpi(connector);
- if (!ctx->panel->connector)
+ if (ctx->panel && !ctx->panel->connector)
drm_panel_attach(ctx->panel, &ctx->connector);
return connector_status_connected;