On Mon, May 30, 2016 at 09:38:21AM +0100, Chris Wilson wrote: > Protect against drivers that may try to register the connector more > than once, or who try to unregister it multiple times. > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > Cc: dri-devel@xxxxxxxxxxxxxxxxxxxxx > --- > drivers/gpu/drm/drm_crtc.c | 9 +++++++++ > include/drm/drm_crtc.h | 1 + > 2 files changed, 10 insertions(+) > > diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c > index 81641544ac3e..8b9ee921a9e1 100644 > --- a/drivers/gpu/drm/drm_crtc.c > +++ b/drivers/gpu/drm/drm_crtc.c > @@ -1030,6 +1030,9 @@ int drm_connector_register(struct drm_connector *connector) > { > int ret; > > + if (connector->registered) > + return 0; > + > ret = drm_sysfs_connector_add(connector); > if (ret) > return ret; > @@ -1047,6 +1050,7 @@ int drm_connector_register(struct drm_connector *connector) > > drm_mode_object_register(connector->dev, &connector->base); > > + connector->registered = true; > return 0; > > err_debugfs: > @@ -1065,11 +1069,16 @@ EXPORT_SYMBOL(drm_connector_register); > */ > void drm_connector_unregister(struct drm_connector *connector) > { > + if (!connector->registered) > + return; > + > if (connector->funcs->early_unregister) > connector->funcs->early_unregister(connector); > > drm_sysfs_connector_remove(connector); > drm_debugfs_connector_remove(connector); > + > + connector->registered = false; > } > EXPORT_SYMBOL(drm_connector_unregister); > > diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h > index 77b775cff4e7..35e47eea5ee1 100644 > --- a/include/drm/drm_crtc.h > +++ b/include/drm/drm_crtc.h > @@ -1212,6 +1212,7 @@ struct drm_connector { > bool interlace_allowed; > bool doublescan_allowed; > bool stereo_allowed; > + bool registered; Needs kerneldoc for this on, with that fixed Reviewed-by: Daniel Vetter <daniel.vetter@xxxxxxxx> > struct list_head modes; /* list of modes on this connector */ > > enum drm_connector_status status; > -- > 2.8.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel