drm: remove dev->vma_count
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 11 Dec 2013 10:35:10 +0000 (11:35 +0100)
committerDave Airlie <airlied@redhat.com>
Wed, 18 Dec 2013 01:43:29 +0000 (11:43 +1000)
This is just used for a debugfs file, and we can easily reconstruct
this number by just walking the list twice. Which isn't really bad for
a debugfs file anyway.

So let's rip this out.

There's the other issue that the dev->vmalist itself is a bit useless,
since that can be reconstructed with all the memory mapping
information from proc. But remove that is a different topic entirely.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/drm_fops.c
drivers/gpu/drm/drm_info.c
drivers/gpu/drm/drm_vm.c
include/drm/drmP.h

index 330f3dd8e9d09542f946a2788dbfa7b8e3af9f4d..7f2af9aca03895b97c75af76968093a61930b501 100644 (file)
@@ -391,8 +391,6 @@ static void drm_legacy_dev_reinit(struct drm_device *dev)
        if (drm_core_check_feature(dev, DRIVER_MODESET))
                return;
 
-       atomic_set(&dev->vma_count, 0);
-
        dev->sigdata.lock = NULL;
 
        dev->context_flag = 0;
index 31da45c582fc8f7d4ec0d0dcf39167b0fa5d693d..7473035dd28b781ed8f382d0e8b6cd3743df772e 100644 (file)
@@ -234,14 +234,18 @@ int drm_vma_info(struct seq_file *m, void *data)
        struct drm_device *dev = node->minor->dev;
        struct drm_vma_entry *pt;
        struct vm_area_struct *vma;
+       unsigned long vma_count = 0;
 #if defined(__i386__)
        unsigned int pgprot;
 #endif
 
        mutex_lock(&dev->struct_mutex);
-       seq_printf(m, "vma use count: %d, high_memory = %pK, 0x%pK\n",
-                  atomic_read(&dev->vma_count),
-                  high_memory, (void *)(unsigned long)virt_to_phys(high_memory));
+       list_for_each_entry(pt, &dev->vmalist, head)
+               vma_count++;
+
+       seq_printf(m, "vma use count: %lu, high_memory = %pK, 0x%pK\n",
+                  vma_count, high_memory,
+                  (void *)(unsigned long)virt_to_phys(high_memory));
 
        list_for_each_entry(pt, &dev->vmalist, head) {
                vma = pt->vma;
index ef5540b6b451e59e673c20b4a3b07f9ef5712261..24e045c4f53140270ebbb28f9a6be21209b704a7 100644 (file)
@@ -220,7 +220,6 @@ static void drm_vm_shm_close(struct vm_area_struct *vma)
 
        DRM_DEBUG("0x%08lx,0x%08lx\n",
                  vma->vm_start, vma->vm_end - vma->vm_start);
-       atomic_dec(&dev->vma_count);
 
        map = vma->vm_private_data;
 
@@ -405,7 +404,6 @@ void drm_vm_open_locked(struct drm_device *dev,
 
        DRM_DEBUG("0x%08lx,0x%08lx\n",
                  vma->vm_start, vma->vm_end - vma->vm_start);
-       atomic_inc(&dev->vma_count);
 
        vma_entry = kmalloc(sizeof(*vma_entry), GFP_KERNEL);
        if (vma_entry) {
@@ -433,7 +431,6 @@ void drm_vm_close_locked(struct drm_device *dev,
 
        DRM_DEBUG("0x%08lx,0x%08lx\n",
                  vma->vm_start, vma->vm_end - vma->vm_start);
-       atomic_dec(&dev->vma_count);
 
        list_for_each_entry_safe(pt, temp, &dev->vmalist, head) {
                if (pt->vma == vma) {
index 5b6c33ce776f50a57165ccb2b71b09b42e86254c..2fe9b5d5d16244963da88739a71c139829deeb86 100644 (file)
@@ -1109,7 +1109,6 @@ struct drm_device {
        /** \name Usage Counters */
        /*@{ */
        int open_count;                 /**< Outstanding files open */
-       atomic_t vma_count;             /**< Outstanding vma areas open */
        int buf_use;                    /**< Buffers in use -- cannot alloc */
        atomic_t buf_alloc;             /**< Buffer allocation in progress */
        /*@} */