Message ID | 1384339346-31664-1-git-send-email-dh.herrmann@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, Nov 13, 2013 at 11:42:26AM +0100, David Herrmann wrote: > 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> > Signed-off-by: David Herrmann <dh.herrmann@gmail.com> 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> > --- > drivers/gpu/drm/drm_stub.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c > index c200136..f53d524 100644 > --- a/drivers/gpu/drm/drm_stub.c > +++ b/drivers/gpu/drm/drm_stub.c > @@ -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) > -- > 1.8.4.2 >
diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c index c200136..f53d524 100644 --- a/drivers/gpu/drm/drm_stub.c +++ b/drivers/gpu/drm/drm_stub.c @@ -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)
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> Signed-off-by: David Herrmann <dh.herrmann@gmail.com> --- drivers/gpu/drm/drm_stub.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)