aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/drm_sysfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/drm_sysfs.c')
-rw-r--r--drivers/gpu/drm/drm_sysfs.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/gpu/drm/drm_sysfs.c b/drivers/gpu/drm/drm_sysfs.c
index 62c3675045ac..5a7bd51fc3d8 100644
--- a/drivers/gpu/drm/drm_sysfs.c
+++ b/drivers/gpu/drm/drm_sysfs.c
@@ -454,6 +454,8 @@ void drm_sysfs_connector_remove(struct drm_connector *connector)
454{ 454{
455 int i; 455 int i;
456 456
457 if (!connector->kdev.parent)
458 return;
457 DRM_DEBUG("removing \"%s\" from sysfs\n", 459 DRM_DEBUG("removing \"%s\" from sysfs\n",
458 drm_get_connector_name(connector)); 460 drm_get_connector_name(connector));
459 461
@@ -461,6 +463,7 @@ void drm_sysfs_connector_remove(struct drm_connector *connector)
461 device_remove_file(&connector->kdev, &connector_attrs[i]); 463 device_remove_file(&connector->kdev, &connector_attrs[i]);
462 sysfs_remove_bin_file(&connector->kdev.kobj, &edid_attr); 464 sysfs_remove_bin_file(&connector->kdev.kobj, &edid_attr);
463 device_unregister(&connector->kdev); 465 device_unregister(&connector->kdev);
466 connector->kdev.parent = NULL;
464} 467}
465EXPORT_SYMBOL(drm_sysfs_connector_remove); 468EXPORT_SYMBOL(drm_sysfs_connector_remove);
466 469
@@ -533,7 +536,9 @@ err_out:
533 */ 536 */
534void drm_sysfs_device_remove(struct drm_minor *minor) 537void drm_sysfs_device_remove(struct drm_minor *minor)
535{ 538{
536 device_unregister(&minor->kdev); 539 if (minor->kdev.parent)
540 device_unregister(&minor->kdev);
541 minor->kdev.parent = NULL;
537} 542}
538 543
539 544