drm: check for !kdev in drm_unplug_minor()
authorDavid Herrmann <dh.herrmann@gmail.com>
Wed, 13 Nov 2013 10:42:26 +0000 (11:42 +0100)
committerDave Airlie <airlied@gmail.com>
Fri, 15 Nov 2013 10:49:02 +0000 (20:49 +1000)
We moved minor deallocation to drm_dev_free() in:
  commit 8f6599da8e772fa8de54cdf98e9e03cbaf3946da
  Author: David Herrmann <dh.herrmann@gmail.com>
  Date:   Sun Oct 20 18:55:45 2013 +0200

      drm: delay minor destruction to drm_dev_free()

However, this causes a call to drm_unplug_minor(), which should just do
nothing as drm_dev_unregister() already called this.

But a separate patch caused kdev lifetime changes:
  commit 5bdebb183c9702a8c57a01dff09337be3de337a6
  Author: Dave Airlie <airlied@redhat.com>
  Date:   Fri Oct 11 14:07:25 2013 +1000

      drm/sysfs: sort out minor and connector device object lifetimes.

Thus making our dev_is_registered() call useles (and even segfault if it
is NULL). Replace it with a simple !kdev test and we're fine.

Reported-by: Huax Lu <huax.lu@intel.com>
Reported-by: Daniel Vetter <daniel@ffwll.ch>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=71208
Tested-by: lu hua <huax.lu@intel.com>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
Signed-off-by: Dave Airlie <airlied@gmail.com>
drivers/gpu/drm/drm_stub.c

index c200136a5d8e34dc7e53e98d693cafdae7b118ff..f53d5246979c386ed632b21c08decb3ab1296f9e 100644 (file)
@@ -338,7 +338,7 @@ err_idr:
  */
 static void drm_unplug_minor(struct drm_minor *minor)
 {
-       if (!minor || !device_is_registered(minor->kdev))
+       if (!minor || !minor->kdev)
                return;
 
 #if defined(CONFIG_DEBUG_FS)