OSDN Git Service

drm/sysfs: Annote lockless show functions with READ_ONCE
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 30 Mar 2016 09:45:13 +0000 (11:45 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 26 Apr 2016 11:23:24 +0000 (13:23 +0200)
For documentation and paranoia.

Acked-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1459331120-27864-4-git-send-email-daniel.vetter@ffwll.ch
drivers/gpu/drm/drm_sysfs.c

index d7d8cec..fa7fadc 100644 (file)
@@ -208,9 +208,12 @@ static ssize_t status_show(struct device *device,
                           char *buf)
 {
        struct drm_connector *connector = to_drm_connector(device);
+       enum drm_connector_status status;
+
+       status = READ_ONCE(connector->status);
 
        return snprintf(buf, PAGE_SIZE, "%s\n",
-                       drm_get_connector_status_name(connector->status));
+                       drm_get_connector_status_name(status));
 }
 
 static ssize_t dpms_show(struct device *device,
@@ -231,9 +234,11 @@ static ssize_t enabled_show(struct device *device,
                           char *buf)
 {
        struct drm_connector *connector = to_drm_connector(device);
+       bool enabled;
+
+       enabled = READ_ONCE(connector->encoder);
 
-       return snprintf(buf, PAGE_SIZE, "%s\n", connector->encoder ? "enabled" :
-                       "disabled");
+       return snprintf(buf, PAGE_SIZE, enabled ? "enabled\n" : "disabled\n");
 }
 
 static ssize_t edid_show(struct file *filp, struct kobject *kobj,