drm: fail gracefully when proc isn't setup.
authorDave Airlie <airlied@gmail.com>
Fri, 6 Jul 2012 17:06:42 +0000 (18:06 +0100)
committerDave Airlie <airlied@gmail.com>
Sun, 15 Jul 2012 19:57:03 +0000 (05:57 +1000)
If drm can't find proc it should fail more gracefully, than just
oopsing, this tests drm_class is NULL, and sets it to NULL in the
fail paths.

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/drm_sysfs.c

index 45cf1dd3eb9ce5548c8782cd835f4c8db588e8f9..45ac8d6c92b7d1edb4483b39f49b796e039c9679 100644 (file)
@@ -134,6 +134,7 @@ void drm_sysfs_destroy(void)
                return;
        class_remove_file(drm_class, &class_attr_version.attr);
        class_destroy(drm_class);
+       drm_class = NULL;
 }
 
 /**
@@ -554,6 +555,9 @@ void drm_sysfs_device_remove(struct drm_minor *minor)
 
 int drm_class_device_register(struct device *dev)
 {
+       if (!drm_class || IS_ERR(drm_class))
+               return -ENOENT;
+
        dev->class = drm_class;
        return device_register(dev);
 }