aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mm.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/mm.h')
-rw-r--r--include/linux/mm.h25
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
289extern int is_vmalloc_or_module_addr(const void *x);
290#else
291static int is_vmalloc_or_module_addr(const void *x)
292{
293 return 0;
294}
295#endif
288 296
289static inline struct page *compound_head(struct page *page) 297static 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,
786extern int vmtruncate(struct inode * inode, loff_t offset); 795extern int vmtruncate(struct inode * inode, loff_t offset);
787extern int vmtruncate_range(struct inode * inode, loff_t offset, loff_t end); 796extern int vmtruncate_range(struct inode * inode, loff_t offset, loff_t end);
788 797
798int truncate_inode_page(struct address_space *mapping, struct page *page);
799int generic_error_remove_page(struct address_space *mapping, struct page *page);
800
801int invalidate_inode_page(struct page *page);
802
789#ifdef CONFIG_MMU 803#ifdef CONFIG_MMU
790extern int handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma, 804extern 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
1274int drop_caches_sysctl_handler(struct ctl_table *, int, struct file *, 1288int drop_caches_sysctl_handler(struct ctl_table *, int,
1275 void __user *, size_t *, loff_t *); 1289 void __user *, size_t *, loff_t *);
1276unsigned long shrink_slab(unsigned long scanned, gfp_t gfp_mask, 1290unsigned 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);
1300extern int account_locked_memory(struct mm_struct *mm, struct rlimit *rlim, 1314extern int account_locked_memory(struct mm_struct *mm, struct rlimit *rlim,
1301 size_t size); 1315 size_t size);
1302extern void refund_locked_memory(struct mm_struct *mm, size_t size); 1316extern void refund_locked_memory(struct mm_struct *mm, size_t size);
1317
1318extern void memory_failure(unsigned long pfn, int trapno);
1319extern int __memory_failure(unsigned long pfn, int trapno, int ref);
1320extern int sysctl_memory_failure_early_kill;
1321extern int sysctl_memory_failure_recovery;
1322extern atomic_long_t mce_bad_pages;
1323
1303#endif /* __KERNEL__ */ 1324#endif /* __KERNEL__ */
1304#endif /* _LINUX_MM_H */ 1325#endif /* _LINUX_MM_H */