Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/riastradh-drm2]: src/sys/external/bsd/drm2/dist/drm Take master->lock.sp...



details:   https://anonhg.NetBSD.org/src/rev/6d0b769618fa
branches:  riastradh-drm2
changeset: 788600:6d0b769618fa
user:      riastradh <riastradh%NetBSD.org@localhost>
date:      Wed Jan 15 13:55:40 2014 +0000

description:
Take master->lock.spinlock to read master->lock.hw_lock.

diffstat:

 sys/external/bsd/drm2/dist/drm/drm_ioctl.c |  7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diffs (20 lines):

diff -r 1f6080a980f8 -r 6d0b769618fa sys/external/bsd/drm2/dist/drm/drm_ioctl.c
--- a/sys/external/bsd/drm2/dist/drm/drm_ioctl.c        Wed Jan 15 13:54:03 2014 +0000
+++ b/sys/external/bsd/drm2/dist/drm/drm_ioctl.c        Wed Jan 15 13:55:40 2014 +0000
@@ -253,11 +253,14 @@
        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];
        }
 



Home | Main Index | Thread Index | Old Index