diff options
author | Sandy Huang <hjc@rock-chips.com> | 2018-03-19 14:52:13 +0800 |
---|---|---|
committer | Sandy Huang <hjc@rock-chips.com> | 2018-03-19 15:06:37 +0800 |
commit | 2f4dee491099602afc7600d2f99e92fca9e097e8 (patch) | |
tree | 27c809120a44efeb5dbb766f520fe6a5bc0a90fe | |
parent | 5b1eeb664602af1529b22b3d68aa6020a8248e30 (diff) |
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 <hjc@rock-chips.com>
-rw-r--r-- | drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 11 |
1 files 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); |