]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - include/linux/mm_types.h
Merge tag 'v4.5-rc1' into x86/asm, to refresh the branch before merging new changes
[linux.git] / include / linux / mm_types.h
index d3ebb9d21a5334d26e85bc865d318535f5864569..87577d37f97b95e499986acd1f37d92abff989dc 100644 (file)
@@ -566,10 +566,26 @@ static inline void clear_tlb_flush_pending(struct mm_struct *mm)
 }
 #endif
 
-struct vm_special_mapping
-{
-       const char *name;
+struct vm_fault;
+
+struct vm_special_mapping {
+       const char *name;       /* The name, e.g. "[vdso]". */
+
+       /*
+        * If .fault is not provided, this points to a
+        * NULL-terminated array of pages that back the special mapping.
+        *
+        * This must not be NULL unless .fault is provided.
+        */
        struct page **pages;
+
+       /*
+        * If non-NULL, then this is called to resolve page faults
+        * on the special mapping.  If used, .pages is not checked.
+        */
+       int (*fault)(const struct vm_special_mapping *sm,
+                    struct vm_area_struct *vma,
+                    struct vm_fault *vmf);
 };
 
 enum tlb_flush_reason {