diff options
Diffstat (limited to 'include/linux/mm.h')
-rw-r--r-- | include/linux/mm.h | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h index 5946e2ff9fe8..6953a5a53e44 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -285,6 +285,14 @@ static inline int is_vmalloc_addr(const void *x) | |||
285 | return 0; | 285 | return 0; |
286 | #endif | 286 | #endif |
287 | } | 287 | } |
288 | #ifdef CONFIG_MMU | ||
289 | extern int is_vmalloc_or_module_addr(const void *x); | ||
290 | #else | ||
291 | static int is_vmalloc_or_module_addr(const void *x) | ||
292 | { | ||
293 | return 0; | ||
294 | } | ||
295 | #endif | ||
288 | 296 | ||
289 | static inline struct page *compound_head(struct page *page) | 297 | static inline struct page *compound_head(struct page *page) |
290 | { | 298 | { |
@@ -687,11 +695,12 @@ static inline int page_mapped(struct page *page) | |||
687 | #define VM_FAULT_SIGBUS 0x0002 | 695 | #define VM_FAULT_SIGBUS 0x0002 |
688 | #define VM_FAULT_MAJOR 0x0004 | 696 | #define VM_FAULT_MAJOR 0x0004 |
689 | #define VM_FAULT_WRITE 0x0008 /* Special case for get_user_pages */ | 697 | #define VM_FAULT_WRITE 0x0008 /* Special case for get_user_pages */ |
698 | #define VM_FAULT_HWPOISON 0x0010 /* Hit poisoned page */ | ||
690 | 699 | ||
691 | #define VM_FAULT_NOPAGE 0x0100 /* ->fault installed the pte, not return page */ | 700 | #define VM_FAULT_NOPAGE 0x0100 /* ->fault installed the pte, not return page */ |
692 | #define VM_FAULT_LOCKED 0x0200 /* ->fault locked the returned page */ | 701 | #define VM_FAULT_LOCKED 0x0200 /* ->fault locked the returned page */ |
693 | 702 | ||
694 | #define VM_FAULT_ERROR (VM_FAULT_OOM | VM_FAULT_SIGBUS) | 703 | #define VM_FAULT_ERROR (VM_FAULT_OOM | VM_FAULT_SIGBUS | VM_FAULT_HWPOISON) |
695 | 704 | ||
696 | /* | 705 | /* |
697 | * Can be called by the pagefault handler when it gets a VM_FAULT_OOM. | 706 | * Can be called by the pagefault handler when it gets a VM_FAULT_OOM. |
@@ -786,6 +795,11 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping, | |||
786 | extern int vmtruncate(struct inode * inode, loff_t offset); | 795 | extern int vmtruncate(struct inode * inode, loff_t offset); |
787 | extern int vmtruncate_range(struct inode * inode, loff_t offset, loff_t end); | 796 | extern int vmtruncate_range(struct inode * inode, loff_t offset, loff_t end); |
788 | 797 | ||
798 | int truncate_inode_page(struct address_space *mapping, struct page *page); | ||
799 | int generic_error_remove_page(struct address_space *mapping, struct page *page); | ||
800 | |||
801 | int invalidate_inode_page(struct page *page); | ||
802 | |||
789 | #ifdef CONFIG_MMU | 803 | #ifdef CONFIG_MMU |
790 | extern int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma, | 804 | extern int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma, |
791 | unsigned long address, unsigned int flags); | 805 | unsigned long address, unsigned int flags); |
@@ -1271,7 +1285,7 @@ int in_gate_area_no_task(unsigned long addr); | |||
1271 | #define in_gate_area(task, addr) ({(void)task; in_gate_area_no_task(addr);}) | 1285 | #define in_gate_area(task, addr) ({(void)task; in_gate_area_no_task(addr);}) |
1272 | #endif /* __HAVE_ARCH_GATE_AREA */ | 1286 | #endif /* __HAVE_ARCH_GATE_AREA */ |
1273 | 1287 | ||
1274 | int drop_caches_sysctl_handler(struct ctl_table *, int, struct file *, | 1288 | int drop_caches_sysctl_handler(struct ctl_table *, int, |
1275 | void __user *, size_t *, loff_t *); | 1289 | void __user *, size_t *, loff_t *); |
1276 | unsigned long shrink_slab(unsigned long scanned, gfp_t gfp_mask, | 1290 | unsigned long shrink_slab(unsigned long scanned, gfp_t gfp_mask, |
1277 | unsigned long lru_pages); | 1291 | unsigned long lru_pages); |
@@ -1300,5 +1314,12 @@ void vmemmap_populate_print_last(void); | |||
1300 | extern int account_locked_memory(struct mm_struct *mm, struct rlimit *rlim, | 1314 | extern int account_locked_memory(struct mm_struct *mm, struct rlimit *rlim, |
1301 | size_t size); | 1315 | size_t size); |
1302 | extern void refund_locked_memory(struct mm_struct *mm, size_t size); | 1316 | extern void refund_locked_memory(struct mm_struct *mm, size_t size); |
1317 | |||
1318 | extern void memory_failure(unsigned long pfn, int trapno); | ||
1319 | extern int __memory_failure(unsigned long pfn, int trapno, int ref); | ||
1320 | extern int sysctl_memory_failure_early_kill; | ||
1321 | extern int sysctl_memory_failure_recovery; | ||
1322 | extern atomic_long_t mce_bad_pages; | ||
1323 | |||
1303 | #endif /* __KERNEL__ */ | 1324 | #endif /* __KERNEL__ */ |
1304 | #endif /* _LINUX_MM_H */ | 1325 | #endif /* _LINUX_MM_H */ |