Module Name: src
Committed By: riastradh
Date: Wed Jan 15 13:55:40 UTC 2014
Modified Files:
src/sys/external/bsd/drm2/dist/drm [riastradh-drm2]: drm_ioctl.c
Log Message:
Take master->lock.spinlock to read master->lock.hw_lock.
To generate a diff of this commit:
cvs rdiff -u -r1.1.1.1.2.4 -r1.1.1.1.2.5 \
src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c
diff -u src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.1.1.1.2.4 src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.1.1.1.2.5
--- src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c:1.1.1.1.2.4 Wed Jan 15 13:52:20 2014
+++ src/sys/external/bsd/drm2/dist/drm/drm_ioctl.c Wed Jan 15 13:55:40 2014
@@ -253,11 +253,14 @@ int drm_getstats(struct drm_device *dev,
memset(stats, 0, sizeof(*stats));
for (i = 0; i < dev->counters; i++) {
- if (dev->types[i] == _DRM_STAT_LOCK)
+ if (dev->types[i] == _DRM_STAT_LOCK) {
+ spin_lock(file_priv->master->lock.spinlock);
stats->data[i].value =
(file_priv->master->lock.hw_lock ? file_priv->master->lock.hw_lock->lock : 0);
- else
+ spin_unlock(file_priv->master->lock.spinlock);
+ } else {
stats->data[i].value = atomic_read(&dev->counts[i]);
+ }
stats->data[i].type = dev->types[i];
}