unsigned long ino = 0;
        dev_t dev = 0;
        char *nm = buf;
+       struct mm_struct *active_mm = current->active_mm;
 
        /* can't use print_vma_addr() yet as it doesn't check for
         * non-inclusive vma
         */
-
-       vma = find_vma(current->active_mm, address);
+       down_read(&active_mm->mmap_sem);
+       vma = find_vma(active_mm, address);
 
        /* check against the find_vma( ) behaviour which returns the next VMA
         * if the container VMA is not found
                        vma->vm_start < TASK_UNMAPPED_BASE ?
                                address : address - vma->vm_start,
                        nm, vma->vm_start, vma->vm_end);
-       } else {
+       } else
                pr_info("    @No matching VMA found\n");
-       }
+
+       up_read(&active_mm->mmap_sem);
 }
 
 static void show_ecr_verbose(struct pt_regs *regs)