{
        int i;
 
+       if (!connector->kdev.parent)
+               return;
        DRM_DEBUG("removing \"%s\" from sysfs\n",
                  drm_get_connector_name(connector));
 
                device_remove_file(&connector->kdev, &connector_attrs[i]);
        sysfs_remove_bin_file(&connector->kdev.kobj, &edid_attr);
        device_unregister(&connector->kdev);
+       connector->kdev.parent = NULL;
 }
 EXPORT_SYMBOL(drm_sysfs_connector_remove);
 
  */
 void drm_sysfs_device_remove(struct drm_minor *minor)
 {
-       device_unregister(&minor->kdev);
+       if (minor->kdev.parent)
+               device_unregister(&minor->kdev);
+       minor->kdev.parent = NULL;
 }