drm: Cancel drm_fb_helper_resume_work on unload
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 7 Feb 2017 12:49:56 +0000 (12:49 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Mar 2017 02:02:50 +0000 (10:02 +0800)
commit 24f76b2c87ed68f79f9f0705b11ccbefaaa0d390 upstream.

We can not allow the worker to run after its fbdev, or even the module,
has been removed.

Fixes: cfe63423d9be ("drm/fb-helper: Add drm_fb_helper_set_suspend_unlocked()")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Noralf Trønnes <noralf@tronnes.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Jani Nikula <jani.nikula@linux.intel.com>
Cc: Sean Paul <seanpaul@chromium.org>
Cc: dri-devel@lists.freedesktop.org
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/20170207124956.14954-2-chris@chris-wilson.co.uk
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/drm_fb_helper.c

index cc8938bb9ff4bd50034d913652d1ab761fa49f22..6a48d6637e5c9f361e6790324257b8a7538f50e4 100644 (file)
@@ -848,6 +848,7 @@ void drm_fb_helper_fini(struct drm_fb_helper *fb_helper)
        if (!drm_fbdev_emulation)
                return;
 
+       cancel_work_sync(&fb_helper->resume_work);
        cancel_work_sync(&fb_helper->dirty_work);
 
        if (!list_empty(&fb_helper->kernel_fb_list)) {