summaryrefslogtreecommitdiffstats
path: root/include/linux/mm.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/mm.h')
-rw-r--r--include/linux/mm.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 3dd80ba6568a..035a688e5472 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -285,6 +285,11 @@ extern pgprot_t protection_map[16];
285#define FAULT_FLAG_REMOTE 0x80 /* faulting for non current tsk/mm */ 285#define FAULT_FLAG_REMOTE 0x80 /* faulting for non current tsk/mm */
286#define FAULT_FLAG_INSTRUCTION 0x100 /* The fault was during an instruction fetch */ 286#define FAULT_FLAG_INSTRUCTION 0x100 /* The fault was during an instruction fetch */
287 287
288#define FAULT_FLAG_SIZE_MASK 0x7000 /* Support up to 8-level page tables */
289#define FAULT_FLAG_SIZE_PTE 0x0000 /* First level (eg 4k) */
290#define FAULT_FLAG_SIZE_PMD 0x1000 /* Second level (eg 2MB) */
291#define FAULT_FLAG_SIZE_PUD 0x2000 /* Third level (eg 1GB) */
292
288#define FAULT_FLAG_TRACE \ 293#define FAULT_FLAG_TRACE \
289 { FAULT_FLAG_WRITE, "WRITE" }, \ 294 { FAULT_FLAG_WRITE, "WRITE" }, \
290 { FAULT_FLAG_MKWRITE, "MKWRITE" }, \ 295 { FAULT_FLAG_MKWRITE, "MKWRITE" }, \
@@ -314,6 +319,9 @@ struct vm_fault {
314 unsigned long address; /* Faulting virtual address */ 319 unsigned long address; /* Faulting virtual address */
315 pmd_t *pmd; /* Pointer to pmd entry matching 320 pmd_t *pmd; /* Pointer to pmd entry matching
316 * the 'address' */ 321 * the 'address' */
322 pud_t *pud; /* Pointer to pud entry matching
323 * the 'address'
324 */
317 pte_t orig_pte; /* Value of PTE at the time of fault */ 325 pte_t orig_pte; /* Value of PTE at the time of fault */
318 326
319 struct page *cow_page; /* Page handler may use for COW fault */ 327 struct page *cow_page; /* Page handler may use for COW fault */
@@ -351,7 +359,7 @@ struct vm_operations_struct {
351 void (*close)(struct vm_area_struct * area); 359 void (*close)(struct vm_area_struct * area);
352 int (*mremap)(struct vm_area_struct * area); 360 int (*mremap)(struct vm_area_struct * area);
353 int (*fault)(struct vm_fault *vmf); 361 int (*fault)(struct vm_fault *vmf);
354 int (*pmd_fault)(struct vm_fault *vmf); 362 int (*huge_fault)(struct vm_fault *vmf);
355 void (*map_pages)(struct vm_fault *vmf, 363 void (*map_pages)(struct vm_fault *vmf,
356 pgoff_t start_pgoff, pgoff_t end_pgoff); 364 pgoff_t start_pgoff, pgoff_t end_pgoff);
357 365