From 2f4dee491099602afc7600d2f99e92fca9e097e8 Mon Sep 17 00:00:00 2001 From: Sandy Huang Date: Mon, 19 Mar 2018 14:52:13 +0800 Subject: [PATCH] drm/rockchip: fix kernel panic when drm driver probe failed For some reason drm driver maybe probe failed, so the drm_dev is null. this will lead to kernel panic when enter suspend function. Change-Id: Ic529ba9103d27b0766189285bd6cf8e43b23b912 Signed-off-by: Sandy Huang --- drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c index 7ae1a2341849..88b149375f10 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c @@ -1669,9 +1669,16 @@ static void rockchip_drm_fb_resume(struct drm_device *drm) static int rockchip_drm_sys_suspend(struct device *dev) { - struct drm_device *drm = dev_get_drvdata(dev); - struct rockchip_drm_private *priv = drm->dev_private; + struct drm_device *drm; + struct rockchip_drm_private *priv; + drm = dev_get_drvdata(dev); + if (!drm) { + DRM_ERROR("%s: Failed to get drm device!\n", __func__); + return 0; + } + + priv = drm->dev_private; drm_kms_helper_poll_disable(drm); rockchip_drm_fb_suspend(drm);