summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/drm_fb_helper.c
diff options
context:
space:
mode:
authorNoralf Trønnes <noralf@tronnes.org>2019-05-15 16:29:25 +0300
committerNoralf Trønnes <noralf@tronnes.org>2019-05-16 13:01:46 +0300
commit0586576950d5dd34d70cca7adba85e5fb08664f7 (patch)
treeed13dc0fc3a3e2c1d5008a82aea1beb1b313670b /drivers/gpu/drm/drm_fb_helper.c
parent86d804f41e5d9e6e1af01539d85137db91992094 (diff)
downloadlinux-0586576950d5dd34d70cca7adba85e5fb08664f7.tar.xz
drm/fb-helper: Fix drm_fb_helper_hotplug_event() NULL ptr argument
drm_fb_helper_hotplug_event() should tolerate the fb_helper argument being NULL. Commit 03a9606e7fee ("drm/fb-helper: Avoid race with DRM userspace") introduced a fb_helper dereference before the NULL check. Fixup by moving the dereference after the NULL check. Fixes: 03a9606e7fee ("drm/fb-helper: Avoid race with DRM userspace") Reported-by: kbuild test robot <lkp@intel.com> Reported-by: Dan Carpenter <dan.carpenter@oracle.com> Signed-off-by: Noralf Trønnes <noralf@tronnes.org> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20190515132925.48867-1-noralf@tronnes.org
Diffstat (limited to 'drivers/gpu/drm/drm_fb_helper.c')
-rw-r--r--drivers/gpu/drm/drm_fb_helper.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index c259a28522f8..a52b48fafbd7 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -3031,7 +3031,6 @@ EXPORT_SYMBOL(drm_fb_helper_initial_config);
*/
int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper)
{
- struct drm_device *dev = fb_helper->dev;
int err = 0;
if (!drm_fbdev_emulation || !fb_helper)
@@ -3044,13 +3043,13 @@ int drm_fb_helper_hotplug_event(struct drm_fb_helper *fb_helper)
return err;
}
- if (!fb_helper->fb || !drm_master_internal_acquire(dev)) {
+ if (!fb_helper->fb || !drm_master_internal_acquire(fb_helper->dev)) {
fb_helper->delayed_hotplug = true;
mutex_unlock(&fb_helper->lock);
return err;
}
- drm_master_internal_release(dev);
+ drm_master_internal_release(fb_helper->dev);
DRM_DEBUG_KMS("\n");