mmap_read_unlock(mm);
        return 0;
 }
-
-static struct page *find_timens_vvar_page(struct vm_area_struct *vma)
-{
-       if (likely(vma->vm_mm == current->mm))
-               return current->nsproxy->time_ns->vvar_page;
-
-       /*
-        * VM_PFNMAP | VM_IO protect .fault() handler from being called
-        * through interfaces like /proc/$pid/mem or
-        * process_vm_{readv,writev}() as long as there's no .access()
-        * in special_mapping_vmops.
-        * For more details check_vma_flags() and __access_remote_vm()
-        */
-       WARN(1, "vvar_page accessed remotely");
-
-       return NULL;
-}
-#else
-static struct page *find_timens_vvar_page(struct vm_area_struct *vma)
-{
-       return NULL;
-}
 #endif
 
 static vm_fault_t vvar_fault(const struct vm_special_mapping *sm,
 
 
        return 0;
 }
-
-static struct page *find_timens_vvar_page(struct vm_area_struct *vma)
-{
-       if (likely(vma->vm_mm == current->mm))
-               return current->nsproxy->time_ns->vvar_page;
-
-       /*
-        * VM_PFNMAP | VM_IO protect .fault() handler from being called
-        * through interfaces like /proc/$pid/mem or
-        * process_vm_{readv,writev}() as long as there's no .access()
-        * in special_mapping_vmops.
-        * For more details check_vma_flags() and __access_remote_vm()
-        */
-       WARN(1, "vvar_page accessed remotely");
-
-       return NULL;
-}
-#else
-static struct page *find_timens_vvar_page(struct vm_area_struct *vma)
-{
-       return NULL;
-}
 #endif
 
 static vm_fault_t vvar_fault(const struct vm_special_mapping *sm,
 
        mmap_read_unlock(mm);
        return 0;
 }
-
-static struct page *find_timens_vvar_page(struct vm_area_struct *vma)
-{
-       if (likely(vma->vm_mm == current->mm))
-               return current->nsproxy->time_ns->vvar_page;
-
-       /*
-        * VM_PFNMAP | VM_IO protect .fault() handler from being called
-        * through interfaces like /proc/$pid/mem or
-        * process_vm_{readv,writev}() as long as there's no .access()
-        * in special_mapping_vmops.
-        * For more details check_vma_flags() and __access_remote_vm()
-        */
-       WARN(1, "vvar_page accessed remotely");
-
-       return NULL;
-}
-#else
-static struct page *find_timens_vvar_page(struct vm_area_struct *vma)
-{
-       return NULL;
-}
 #endif
 
 static vm_fault_t vvar_fault(const struct vm_special_mapping *sm,
 
        return (struct vdso_data *)(vvar_page);
 }
 
-static struct page *find_timens_vvar_page(struct vm_area_struct *vma)
-{
-       if (likely(vma->vm_mm == current->mm))
-               return current->nsproxy->time_ns->vvar_page;
-       /*
-        * VM_PFNMAP | VM_IO protect .fault() handler from being called
-        * through interfaces like /proc/$pid/mem or
-        * process_vm_{readv,writev}() as long as there's no .access()
-        * in special_mapping_vmops().
-        * For more details check_vma_flags() and __access_remote_vm()
-        */
-       WARN(1, "vvar_page accessed remotely");
-       return NULL;
-}
-
 /*
  * The VVAR page layout depends on whether a task belongs to the root or
  * non-root time namespace. Whenever a task changes its namespace, the VVAR
        mmap_read_unlock(mm);
        return 0;
 }
-#else
-static inline struct page *find_timens_vvar_page(struct vm_area_struct *vma)
-{
-       return NULL;
-}
 #endif
 
 static vm_fault_t vvar_fault(const struct vm_special_mapping *sm,
 
 }
 
 #ifdef CONFIG_TIME_NS
-static struct page *find_timens_vvar_page(struct vm_area_struct *vma)
-{
-       if (likely(vma->vm_mm == current->mm))
-               return current->nsproxy->time_ns->vvar_page;
-
-       /*
-        * VM_PFNMAP | VM_IO protect .fault() handler from being called
-        * through interfaces like /proc/$pid/mem or
-        * process_vm_{readv,writev}() as long as there's no .access()
-        * in special_mapping_vmops().
-        * For more details check_vma_flags() and __access_remote_vm()
-        */
-
-       WARN(1, "vvar_page accessed remotely");
-
-       return NULL;
-}
-
 /*
  * The vvar page layout depends on whether a task belongs to the root or
  * non-root time namespace. Whenever a task changes its namespace, the VVAR
 
        return 0;
 }
-#else
-static inline struct page *find_timens_vvar_page(struct vm_area_struct *vma)
-{
-       return NULL;
-}
 #endif
 
 static vm_fault_t vvar_fault(const struct vm_special_mapping *sm,
 
 void free_time_ns(struct time_namespace *ns);
 void timens_on_fork(struct nsproxy *nsproxy, struct task_struct *tsk);
 struct vdso_data *arch_get_vdso_data(void *vvar_page);
+struct page *find_timens_vvar_page(struct vm_area_struct *vma);
 
 static inline void put_time_ns(struct time_namespace *ns)
 {
        return;
 }
 
+static inline struct page *find_timens_vvar_page(struct vm_area_struct *vma)
+{
+       return NULL;
+}
+
 static inline void timens_add_monotonic(struct timespec64 *ts) { }
 static inline void timens_add_boottime(struct timespec64 *ts) { }
 
 
        offset[CLOCK_BOOTTIME_ALARM]    = boottime;
 }
 
+struct page *find_timens_vvar_page(struct vm_area_struct *vma)
+{
+       if (likely(vma->vm_mm == current->mm))
+               return current->nsproxy->time_ns->vvar_page;
+
+       /*
+        * VM_PFNMAP | VM_IO protect .fault() handler from being called
+        * through interfaces like /proc/$pid/mem or
+        * process_vm_{readv,writev}() as long as there's no .access()
+        * in special_mapping_vmops().
+        * For more details check_vma_flags() and __access_remote_vm()
+        */
+
+       WARN(1, "vvar_page accessed remotely");
+
+       return NULL;
+}
+
 /*
  * Protects possibly multiple offsets writers racing each other
  * and tasks entering the namespace.