diff options
Diffstat (limited to 'include/linux/mm.h')
-rw-r--r-- | include/linux/mm.h | 10 |
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 | ||