diff options
author | Noralf Trønnes <noralf@tronnes.org> | 2019-05-15 16:29:25 +0300 |
---|---|---|
committer | Noralf Trønnes <noralf@tronnes.org> | 2019-05-16 13:01:46 +0300 |
commit | 0586576950d5dd34d70cca7adba85e5fb08664f7 (patch) | |
tree | ed13dc0fc3a3e2c1d5008a82aea1beb1b313670b /drivers/gpu/drm/drm_fb_helper.c | |
parent | 86d804f41e5d9e6e1af01539d85137db91992094 (diff) | |
download | linux-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.c | 5 |
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"); |