]> Pileus Git - ~andy/linux/blobdiff - drivers/gpu/drm/drm_sysfs.c
Merge branch 'for-3.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj...
[~andy/linux] / drivers / gpu / drm / drm_sysfs.c
index 85da4c40694cc8a99c2b3224e31af548b76e198a..0f9ef9bf6730aa6ee68b9ce763f1e76bd62ee63a 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/kdev_t.h>
 #include <linux/gfp.h>
 #include <linux/err.h>
+#include <linux/export.h>
 
 #include "drm_sysfs.h"
 #include "drm_core.h"
@@ -158,8 +159,15 @@ static ssize_t status_show(struct device *device,
 {
        struct drm_connector *connector = to_drm_connector(device);
        enum drm_connector_status status;
+       int ret;
+
+       ret = mutex_lock_interruptible(&connector->dev->mode_config.mutex);
+       if (ret)
+               return ret;
 
        status = connector->funcs->detect(connector, true);
+       mutex_unlock(&connector->dev->mode_config.mutex);
+
        return snprintf(buf, PAGE_SIZE, "%s\n",
                        drm_get_connector_status_name(status));
 }