diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-14 19:49:17 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-14 19:49:17 -0400 |
| commit | 1dcf58d6e6e6eb7ec10e9abc56887b040205b06f (patch) | |
| tree | c03e7a25ef13eea62f1547914a76e5c68f3f4c28 /include/linux | |
| parent | 80dcc31fbe55932ac9204daee5f2ebc0c49b6da3 (diff) | |
| parent | e4b0db72be2487bae0e3251c22f82c104f7c1cfd (diff) | |
Merge branch 'akpm' (patches from Andrew)
Merge first patchbomb from Andrew Morton:
- arch/sh updates
- ocfs2 updates
- kernel/watchdog feature
- about half of mm/
* emailed patches from Andrew Morton <akpm@linux-foundation.org>: (122 commits)
Documentation: update arch list in the 'memtest' entry
Kconfig: memtest: update number of test patterns up to 17
arm: add support for memtest
arm64: add support for memtest
memtest: use phys_addr_t for physical addresses
mm: move memtest under mm
mm, hugetlb: abort __get_user_pages if current has been oom killed
mm, mempool: do not allow atomic resizing
memcg: print cgroup information when system panics due to panic_on_oom
mm: numa: remove migrate_ratelimited
mm: fold arch_randomize_brk into ARCH_HAS_ELF_RANDOMIZE
mm: split ET_DYN ASLR from mmap ASLR
s390: redefine randomize_et_dyn for ELF_ET_DYN_BASE
mm: expose arch_mmap_rnd when available
s390: standardize mmap_rnd() usage
powerpc: standardize mmap_rnd() usage
mips: extract logic for mmap_rnd()
arm64: standardize mmap_rnd() usage
x86: standardize mmap_rnd() usage
arm: factor out mmap ASLR into mmap_rnd
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/cleancache.h | 13 | ||||
| -rw-r--r-- | include/linux/cma.h | 12 | ||||
| -rw-r--r-- | include/linux/elf-randomize.h | 22 | ||||
| -rw-r--r-- | include/linux/gfp.h | 16 | ||||
| -rw-r--r-- | include/linux/io.h | 8 | ||||
| -rw-r--r-- | include/linux/memblock.h | 8 | ||||
| -rw-r--r-- | include/linux/memory_hotplug.h | 6 | ||||
| -rw-r--r-- | include/linux/mempool.h | 2 | ||||
| -rw-r--r-- | include/linux/migrate.h | 5 | ||||
| -rw-r--r-- | include/linux/mm.h | 4 | ||||
| -rw-r--r-- | include/linux/mm_types.h | 2 | ||||
| -rw-r--r-- | include/linux/nmi.h | 21 | ||||
| -rw-r--r-- | include/linux/oom.h | 3 | ||||
| -rw-r--r-- | include/linux/page-flags.h | 2 | ||||
| -rw-r--r-- | include/linux/slab.h | 2 |
15 files changed, 83 insertions, 43 deletions
diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h index 4ce9056b31a8..bda5ec0b4b4d 100644 --- a/include/linux/cleancache.h +++ b/include/linux/cleancache.h | |||
| @@ -5,6 +5,10 @@ | |||
| 5 | #include <linux/exportfs.h> | 5 | #include <linux/exportfs.h> |
| 6 | #include <linux/mm.h> | 6 | #include <linux/mm.h> |
| 7 | 7 | ||
| 8 | #define CLEANCACHE_NO_POOL -1 | ||
| 9 | #define CLEANCACHE_NO_BACKEND -2 | ||
| 10 | #define CLEANCACHE_NO_BACKEND_SHARED -3 | ||
| 11 | |||
| 8 | #define CLEANCACHE_KEY_MAX 6 | 12 | #define CLEANCACHE_KEY_MAX 6 |
| 9 | 13 | ||
| 10 | /* | 14 | /* |
| @@ -33,10 +37,9 @@ struct cleancache_ops { | |||
| 33 | void (*invalidate_fs)(int); | 37 | void (*invalidate_fs)(int); |
| 34 | }; | 38 | }; |
| 35 | 39 | ||
| 36 | extern struct cleancache_ops * | 40 | extern int cleancache_register_ops(struct cleancache_ops *ops); |
| 37 | cleancache_register_ops(struct cleancache_ops *ops); | ||
| 38 | extern void __cleancache_init_fs(struct super_block *); | 41 | extern void __cleancache_init_fs(struct super_block *); |
| 39 | extern void __cleancache_init_shared_fs(char *, struct super_block *); | 42 | extern void __cleancache_init_shared_fs(struct super_block *); |
| 40 | extern int __cleancache_get_page(struct page *); | 43 | extern int __cleancache_get_page(struct page *); |
| 41 | extern void __cleancache_put_page(struct page *); | 44 | extern void __cleancache_put_page(struct page *); |
| 42 | extern void __cleancache_invalidate_page(struct address_space *, struct page *); | 45 | extern void __cleancache_invalidate_page(struct address_space *, struct page *); |
| @@ -78,10 +81,10 @@ static inline void cleancache_init_fs(struct super_block *sb) | |||
| 78 | __cleancache_init_fs(sb); | 81 | __cleancache_init_fs(sb); |
| 79 | } | 82 | } |
| 80 | 83 | ||
| 81 | static inline void cleancache_init_shared_fs(char *uuid, struct super_block *sb) | 84 | static inline void cleancache_init_shared_fs(struct super_block *sb) |
| 82 | { | 85 | { |
| 83 | if (cleancache_enabled) | 86 | if (cleancache_enabled) |
| 84 | __cleancache_init_shared_fs(uuid, sb); | 87 | __cleancache_init_shared_fs(sb); |
| 85 | } | 88 | } |
| 86 | 89 | ||
| 87 | static inline int cleancache_get_page(struct page *page) | 90 | static inline int cleancache_get_page(struct page *page) |
diff --git a/include/linux/cma.h b/include/linux/cma.h index 9384ba66e975..f7ef093ec49a 100644 --- a/include/linux/cma.h +++ b/include/linux/cma.h | |||
| @@ -16,16 +16,16 @@ | |||
| 16 | struct cma; | 16 | struct cma; |
| 17 | 17 | ||
| 18 | extern unsigned long totalcma_pages; | 18 | extern unsigned long totalcma_pages; |
| 19 | extern phys_addr_t cma_get_base(struct cma *cma); | 19 | extern phys_addr_t cma_get_base(const struct cma *cma); |
| 20 | extern unsigned long cma_get_size(struct cma *cma); | 20 | extern unsigned long cma_get_size(const struct cma *cma); |
| 21 | 21 | ||
| 22 | extern int __init cma_declare_contiguous(phys_addr_t base, | 22 | extern int __init cma_declare_contiguous(phys_addr_t base, |
| 23 | phys_addr_t size, phys_addr_t limit, | 23 | phys_addr_t size, phys_addr_t limit, |
| 24 | phys_addr_t alignment, unsigned int order_per_bit, | 24 | phys_addr_t alignment, unsigned int order_per_bit, |
| 25 | bool fixed, struct cma **res_cma); | 25 | bool fixed, struct cma **res_cma); |
| 26 | extern int cma_init_reserved_mem(phys_addr_t base, | 26 | extern int cma_init_reserved_mem(phys_addr_t base, phys_addr_t size, |
| 27 | phys_addr_t size, int order_per_bit, | 27 | unsigned int order_per_bit, |
| 28 | struct cma **res_cma); | 28 | struct cma **res_cma); |
| 29 | extern struct page *cma_alloc(struct cma *cma, int count, unsigned int align); | 29 | extern struct page *cma_alloc(struct cma *cma, unsigned int count, unsigned int align); |
| 30 | extern bool cma_release(struct cma *cma, struct page *pages, int count); | 30 | extern bool cma_release(struct cma *cma, const struct page *pages, unsigned int count); |
| 31 | #endif | 31 | #endif |
diff --git a/include/linux/elf-randomize.h b/include/linux/elf-randomize.h new file mode 100644 index 000000000000..b5f0bda9472e --- /dev/null +++ b/include/linux/elf-randomize.h | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | #ifndef _ELF_RANDOMIZE_H | ||
| 2 | #define _ELF_RANDOMIZE_H | ||
| 3 | |||
| 4 | struct mm_struct; | ||
| 5 | |||
| 6 | #ifndef CONFIG_ARCH_HAS_ELF_RANDOMIZE | ||
| 7 | static inline unsigned long arch_mmap_rnd(void) { return 0; } | ||
| 8 | # if defined(arch_randomize_brk) && defined(CONFIG_COMPAT_BRK) | ||
| 9 | # define compat_brk_randomized | ||
| 10 | # endif | ||
| 11 | # ifndef arch_randomize_brk | ||
| 12 | # define arch_randomize_brk(mm) (mm->brk) | ||
| 13 | # endif | ||
| 14 | #else | ||
| 15 | extern unsigned long arch_mmap_rnd(void); | ||
| 16 | extern unsigned long arch_randomize_brk(struct mm_struct *mm); | ||
| 17 | # ifdef CONFIG_COMPAT_BRK | ||
| 18 | # define compat_brk_randomized | ||
| 19 | # endif | ||
| 20 | #endif | ||
| 21 | |||
| 22 | #endif | ||
diff --git a/include/linux/gfp.h b/include/linux/gfp.h index 51bd1e72a917..97a9373e61e8 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h | |||
| @@ -57,8 +57,10 @@ struct vm_area_struct; | |||
| 57 | * _might_ fail. This depends upon the particular VM implementation. | 57 | * _might_ fail. This depends upon the particular VM implementation. |
| 58 | * | 58 | * |
| 59 | * __GFP_NOFAIL: The VM implementation _must_ retry infinitely: the caller | 59 | * __GFP_NOFAIL: The VM implementation _must_ retry infinitely: the caller |
| 60 | * cannot handle allocation failures. This modifier is deprecated and no new | 60 | * cannot handle allocation failures. New users should be evaluated carefully |
| 61 | * users should be added. | 61 | * (and the flag should be used only when there is no reasonable failure policy) |
| 62 | * but it is definitely preferable to use the flag rather than opencode endless | ||
| 63 | * loop around allocator. | ||
| 62 | * | 64 | * |
| 63 | * __GFP_NORETRY: The VM implementation must not retry indefinitely. | 65 | * __GFP_NORETRY: The VM implementation must not retry indefinitely. |
| 64 | * | 66 | * |
| @@ -117,16 +119,6 @@ struct vm_area_struct; | |||
| 117 | __GFP_NOMEMALLOC | __GFP_NORETRY | __GFP_NOWARN | \ | 119 | __GFP_NOMEMALLOC | __GFP_NORETRY | __GFP_NOWARN | \ |
| 118 | __GFP_NO_KSWAPD) | 120 | __GFP_NO_KSWAPD) |
| 119 | 121 | ||
| 120 | /* | ||
| 121 | * GFP_THISNODE does not perform any reclaim, you most likely want to | ||
| 122 | * use __GFP_THISNODE to allocate from a given node without fallback! | ||
| 123 | */ | ||
| 124 | #ifdef CONFIG_NUMA | ||
| 125 | #define GFP_THISNODE (__GFP_THISNODE | __GFP_NOWARN | __GFP_NORETRY) | ||
| 126 | #else | ||
| 127 | #define GFP_THISNODE ((__force gfp_t)0) | ||
| 128 | #endif | ||
| 129 | |||
| 130 | /* This mask makes up all the page movable related flags */ | 122 | /* This mask makes up all the page movable related flags */ |
| 131 | #define GFP_MOVABLE_MASK (__GFP_RECLAIMABLE|__GFP_MOVABLE) | 123 | #define GFP_MOVABLE_MASK (__GFP_RECLAIMABLE|__GFP_MOVABLE) |
| 132 | 124 | ||
diff --git a/include/linux/io.h b/include/linux/io.h index fa02e55e5a2e..4cc299c598e0 100644 --- a/include/linux/io.h +++ b/include/linux/io.h | |||
| @@ -38,6 +38,14 @@ static inline int ioremap_page_range(unsigned long addr, unsigned long end, | |||
| 38 | } | 38 | } |
| 39 | #endif | 39 | #endif |
| 40 | 40 | ||
| 41 | #ifdef CONFIG_HAVE_ARCH_HUGE_VMAP | ||
| 42 | void __init ioremap_huge_init(void); | ||
| 43 | int arch_ioremap_pud_supported(void); | ||
| 44 | int arch_ioremap_pmd_supported(void); | ||
| 45 | #else | ||
| 46 | static inline void ioremap_huge_init(void) { } | ||
| 47 | #endif | ||
| 48 | |||
| 41 | /* | 49 | /* |
| 42 | * Managed iomap interface | 50 | * Managed iomap interface |
| 43 | */ | 51 | */ |
diff --git a/include/linux/memblock.h b/include/linux/memblock.h index e8cc45307f8f..9497ec7c77ea 100644 --- a/include/linux/memblock.h +++ b/include/linux/memblock.h | |||
| @@ -365,6 +365,14 @@ static inline unsigned long memblock_region_reserved_end_pfn(const struct memblo | |||
| 365 | #define __initdata_memblock | 365 | #define __initdata_memblock |
| 366 | #endif | 366 | #endif |
| 367 | 367 | ||
| 368 | #ifdef CONFIG_MEMTEST | ||
| 369 | extern void early_memtest(phys_addr_t start, phys_addr_t end); | ||
| 370 | #else | ||
| 371 | static inline void early_memtest(phys_addr_t start, phys_addr_t end) | ||
| 372 | { | ||
| 373 | } | ||
| 374 | #endif | ||
| 375 | |||
| 368 | #else | 376 | #else |
| 369 | static inline phys_addr_t memblock_alloc(phys_addr_t size, phys_addr_t align) | 377 | static inline phys_addr_t memblock_alloc(phys_addr_t size, phys_addr_t align) |
| 370 | { | 378 | { |
diff --git a/include/linux/memory_hotplug.h b/include/linux/memory_hotplug.h index 8f1a41951df9..6ffa0ac7f7d6 100644 --- a/include/linux/memory_hotplug.h +++ b/include/linux/memory_hotplug.h | |||
| @@ -192,6 +192,9 @@ extern void get_page_bootmem(unsigned long ingo, struct page *page, | |||
| 192 | void get_online_mems(void); | 192 | void get_online_mems(void); |
| 193 | void put_online_mems(void); | 193 | void put_online_mems(void); |
| 194 | 194 | ||
| 195 | void mem_hotplug_begin(void); | ||
| 196 | void mem_hotplug_done(void); | ||
| 197 | |||
| 195 | #else /* ! CONFIG_MEMORY_HOTPLUG */ | 198 | #else /* ! CONFIG_MEMORY_HOTPLUG */ |
| 196 | /* | 199 | /* |
| 197 | * Stub functions for when hotplug is off | 200 | * Stub functions for when hotplug is off |
| @@ -231,6 +234,9 @@ static inline int try_online_node(int nid) | |||
| 231 | static inline void get_online_mems(void) {} | 234 | static inline void get_online_mems(void) {} |
| 232 | static inline void put_online_mems(void) {} | 235 | static inline void put_online_mems(void) {} |
| 233 | 236 | ||
| 237 | static inline void mem_hotplug_begin(void) {} | ||
| 238 | static inline void mem_hotplug_done(void) {} | ||
| 239 | |||
| 234 | #endif /* ! CONFIG_MEMORY_HOTPLUG */ | 240 | #endif /* ! CONFIG_MEMORY_HOTPLUG */ |
| 235 | 241 | ||
| 236 | #ifdef CONFIG_MEMORY_HOTREMOVE | 242 | #ifdef CONFIG_MEMORY_HOTREMOVE |
diff --git a/include/linux/mempool.h b/include/linux/mempool.h index 39ed62ab5b8a..b19b3023c880 100644 --- a/include/linux/mempool.h +++ b/include/linux/mempool.h | |||
| @@ -29,7 +29,7 @@ extern mempool_t *mempool_create_node(int min_nr, mempool_alloc_t *alloc_fn, | |||
| 29 | mempool_free_t *free_fn, void *pool_data, | 29 | mempool_free_t *free_fn, void *pool_data, |
| 30 | gfp_t gfp_mask, int nid); | 30 | gfp_t gfp_mask, int nid); |
| 31 | 31 | ||
| 32 | extern int mempool_resize(mempool_t *pool, int new_min_nr, gfp_t gfp_mask); | 32 | extern int mempool_resize(mempool_t *pool, int new_min_nr); |
| 33 | extern void mempool_destroy(mempool_t *pool); | 33 | extern void mempool_destroy(mempool_t *pool); |
| 34 | extern void * mempool_alloc(mempool_t *pool, gfp_t gfp_mask); | 34 | extern void * mempool_alloc(mempool_t *pool, gfp_t gfp_mask); |
| 35 | extern void mempool_free(void *element, mempool_t *pool); | 35 | extern void mempool_free(void *element, mempool_t *pool); |
diff --git a/include/linux/migrate.h b/include/linux/migrate.h index 78baed5f2952..cac1c0904d5f 100644 --- a/include/linux/migrate.h +++ b/include/linux/migrate.h | |||
| @@ -69,7 +69,6 @@ static inline int migrate_huge_page_move_mapping(struct address_space *mapping, | |||
| 69 | extern bool pmd_trans_migrating(pmd_t pmd); | 69 | extern bool pmd_trans_migrating(pmd_t pmd); |
| 70 | extern int migrate_misplaced_page(struct page *page, | 70 | extern int migrate_misplaced_page(struct page *page, |
| 71 | struct vm_area_struct *vma, int node); | 71 | struct vm_area_struct *vma, int node); |
| 72 | extern bool migrate_ratelimited(int node); | ||
| 73 | #else | 72 | #else |
| 74 | static inline bool pmd_trans_migrating(pmd_t pmd) | 73 | static inline bool pmd_trans_migrating(pmd_t pmd) |
| 75 | { | 74 | { |
| @@ -80,10 +79,6 @@ static inline int migrate_misplaced_page(struct page *page, | |||
| 80 | { | 79 | { |
| 81 | return -EAGAIN; /* can't migrate now */ | 80 | return -EAGAIN; /* can't migrate now */ |
| 82 | } | 81 | } |
| 83 | static inline bool migrate_ratelimited(int node) | ||
| 84 | { | ||
| 85 | return false; | ||
| 86 | } | ||
| 87 | #endif /* CONFIG_NUMA_BALANCING */ | 82 | #endif /* CONFIG_NUMA_BALANCING */ |
| 88 | 83 | ||
| 89 | #if defined(CONFIG_NUMA_BALANCING) && defined(CONFIG_TRANSPARENT_HUGEPAGE) | 84 | #if defined(CONFIG_NUMA_BALANCING) && defined(CONFIG_TRANSPARENT_HUGEPAGE) |
diff --git a/include/linux/mm.h b/include/linux/mm.h index 47a93928b90f..6571dd78e984 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
| @@ -1294,9 +1294,11 @@ int __set_page_dirty_no_writeback(struct page *page); | |||
| 1294 | int redirty_page_for_writepage(struct writeback_control *wbc, | 1294 | int redirty_page_for_writepage(struct writeback_control *wbc, |
| 1295 | struct page *page); | 1295 | struct page *page); |
| 1296 | void account_page_dirtied(struct page *page, struct address_space *mapping); | 1296 | void account_page_dirtied(struct page *page, struct address_space *mapping); |
| 1297 | void account_page_cleaned(struct page *page, struct address_space *mapping); | ||
| 1297 | int set_page_dirty(struct page *page); | 1298 | int set_page_dirty(struct page *page); |
| 1298 | int set_page_dirty_lock(struct page *page); | 1299 | int set_page_dirty_lock(struct page *page); |
| 1299 | int clear_page_dirty_for_io(struct page *page); | 1300 | int clear_page_dirty_for_io(struct page *page); |
| 1301 | |||
| 1300 | int get_cmdline(struct task_struct *task, char *buffer, int buflen); | 1302 | int get_cmdline(struct task_struct *task, char *buffer, int buflen); |
| 1301 | 1303 | ||
| 1302 | /* Is the vma a continuation of the stack vma above it? */ | 1304 | /* Is the vma a continuation of the stack vma above it? */ |
| @@ -2109,7 +2111,7 @@ static inline struct page *follow_page(struct vm_area_struct *vma, | |||
| 2109 | #define FOLL_FORCE 0x10 /* get_user_pages read/write w/o permission */ | 2111 | #define FOLL_FORCE 0x10 /* get_user_pages read/write w/o permission */ |
| 2110 | #define FOLL_NOWAIT 0x20 /* if a disk transfer is needed, start the IO | 2112 | #define FOLL_NOWAIT 0x20 /* if a disk transfer is needed, start the IO |
| 2111 | * and return without waiting upon it */ | 2113 | * and return without waiting upon it */ |
| 2112 | #define FOLL_MLOCK 0x40 /* mark page as mlocked */ | 2114 | #define FOLL_POPULATE 0x40 /* fault in page */ |
| 2113 | #define FOLL_SPLIT 0x80 /* don't return transhuge pages, split them */ | 2115 | #define FOLL_SPLIT 0x80 /* don't return transhuge pages, split them */ |
| 2114 | #define FOLL_HWPOISON 0x100 /* check page is hwpoisoned */ | 2116 | #define FOLL_HWPOISON 0x100 /* check page is hwpoisoned */ |
| 2115 | #define FOLL_NUMA 0x200 /* force NUMA hinting page fault */ | 2117 | #define FOLL_NUMA 0x200 /* force NUMA hinting page fault */ |
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 199a03aab8dc..590630eb59ba 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h | |||
| @@ -364,7 +364,9 @@ struct mm_struct { | |||
| 364 | atomic_t mm_users; /* How many users with user space? */ | 364 | atomic_t mm_users; /* How many users with user space? */ |
| 365 | atomic_t mm_count; /* How many references to "struct mm_struct" (users count as 1) */ | 365 | atomic_t mm_count; /* How many references to "struct mm_struct" (users count as 1) */ |
| 366 | atomic_long_t nr_ptes; /* PTE page table pages */ | 366 | atomic_long_t nr_ptes; /* PTE page table pages */ |
| 367 | #if CONFIG_PGTABLE_LEVELS > 2 | ||
| 367 | atomic_long_t nr_pmds; /* PMD page table pages */ | 368 | atomic_long_t nr_pmds; /* PMD page table pages */ |
| 369 | #endif | ||
| 368 | int map_count; /* number of VMAs */ | 370 | int map_count; /* number of VMAs */ |
| 369 | 371 | ||
| 370 | spinlock_t page_table_lock; /* Protects page tables and some counters */ | 372 | spinlock_t page_table_lock; /* Protects page tables and some counters */ |
diff --git a/include/linux/nmi.h b/include/linux/nmi.h index 9b2022ab4d85..3d46fb4708e0 100644 --- a/include/linux/nmi.h +++ b/include/linux/nmi.h | |||
| @@ -25,16 +25,11 @@ static inline void touch_nmi_watchdog(void) | |||
| 25 | #endif | 25 | #endif |
| 26 | 26 | ||
| 27 | #if defined(CONFIG_HARDLOCKUP_DETECTOR) | 27 | #if defined(CONFIG_HARDLOCKUP_DETECTOR) |
| 28 | extern void watchdog_enable_hardlockup_detector(bool val); | 28 | extern void hardlockup_detector_disable(void); |
| 29 | extern bool watchdog_hardlockup_detector_is_enabled(void); | ||
| 30 | #else | 29 | #else |
| 31 | static inline void watchdog_enable_hardlockup_detector(bool val) | 30 | static inline void hardlockup_detector_disable(void) |
| 32 | { | 31 | { |
| 33 | } | 32 | } |
| 34 | static inline bool watchdog_hardlockup_detector_is_enabled(void) | ||
| 35 | { | ||
| 36 | return true; | ||
| 37 | } | ||
| 38 | #endif | 33 | #endif |
| 39 | 34 | ||
| 40 | /* | 35 | /* |
| @@ -68,12 +63,20 @@ static inline bool trigger_allbutself_cpu_backtrace(void) | |||
| 68 | #ifdef CONFIG_LOCKUP_DETECTOR | 63 | #ifdef CONFIG_LOCKUP_DETECTOR |
| 69 | int hw_nmi_is_cpu_stuck(struct pt_regs *); | 64 | int hw_nmi_is_cpu_stuck(struct pt_regs *); |
| 70 | u64 hw_nmi_get_sample_period(int watchdog_thresh); | 65 | u64 hw_nmi_get_sample_period(int watchdog_thresh); |
| 66 | extern int nmi_watchdog_enabled; | ||
| 67 | extern int soft_watchdog_enabled; | ||
| 71 | extern int watchdog_user_enabled; | 68 | extern int watchdog_user_enabled; |
| 72 | extern int watchdog_thresh; | 69 | extern int watchdog_thresh; |
| 73 | extern int sysctl_softlockup_all_cpu_backtrace; | 70 | extern int sysctl_softlockup_all_cpu_backtrace; |
| 74 | struct ctl_table; | 71 | struct ctl_table; |
| 75 | extern int proc_dowatchdog(struct ctl_table *, int , | 72 | extern int proc_watchdog(struct ctl_table *, int , |
| 76 | void __user *, size_t *, loff_t *); | 73 | void __user *, size_t *, loff_t *); |
| 74 | extern int proc_nmi_watchdog(struct ctl_table *, int , | ||
| 75 | void __user *, size_t *, loff_t *); | ||
| 76 | extern int proc_soft_watchdog(struct ctl_table *, int , | ||
| 77 | void __user *, size_t *, loff_t *); | ||
| 78 | extern int proc_watchdog_thresh(struct ctl_table *, int , | ||
| 79 | void __user *, size_t *, loff_t *); | ||
| 77 | #endif | 80 | #endif |
| 78 | 81 | ||
| 79 | #ifdef CONFIG_HAVE_ACPI_APEI_NMI | 82 | #ifdef CONFIG_HAVE_ACPI_APEI_NMI |
diff --git a/include/linux/oom.h b/include/linux/oom.h index d5771bed59c9..44b2f6f7bbd8 100644 --- a/include/linux/oom.h +++ b/include/linux/oom.h | |||
| @@ -66,7 +66,8 @@ extern bool oom_zonelist_trylock(struct zonelist *zonelist, gfp_t gfp_flags); | |||
| 66 | extern void oom_zonelist_unlock(struct zonelist *zonelist, gfp_t gfp_flags); | 66 | extern void oom_zonelist_unlock(struct zonelist *zonelist, gfp_t gfp_flags); |
| 67 | 67 | ||
| 68 | extern void check_panic_on_oom(enum oom_constraint constraint, gfp_t gfp_mask, | 68 | extern void check_panic_on_oom(enum oom_constraint constraint, gfp_t gfp_mask, |
| 69 | int order, const nodemask_t *nodemask); | 69 | int order, const nodemask_t *nodemask, |
| 70 | struct mem_cgroup *memcg); | ||
| 70 | 71 | ||
| 71 | extern enum oom_scan_t oom_scan_process_thread(struct task_struct *task, | 72 | extern enum oom_scan_t oom_scan_process_thread(struct task_struct *task, |
| 72 | unsigned long totalpages, const nodemask_t *nodemask, | 73 | unsigned long totalpages, const nodemask_t *nodemask, |
diff --git a/include/linux/page-flags.h b/include/linux/page-flags.h index 5ed7bdaf22d5..c851ff92d5b3 100644 --- a/include/linux/page-flags.h +++ b/include/linux/page-flags.h | |||
| @@ -328,8 +328,6 @@ static inline void SetPageUptodate(struct page *page) | |||
| 328 | 328 | ||
| 329 | CLEARPAGEFLAG(Uptodate, uptodate) | 329 | CLEARPAGEFLAG(Uptodate, uptodate) |
| 330 | 330 | ||
| 331 | extern void cancel_dirty_page(struct page *page, unsigned int account_size); | ||
| 332 | |||
| 333 | int test_clear_page_writeback(struct page *page); | 331 | int test_clear_page_writeback(struct page *page); |
| 334 | int __test_set_page_writeback(struct page *page, bool keep_write); | 332 | int __test_set_page_writeback(struct page *page, bool keep_write); |
| 335 | 333 | ||
diff --git a/include/linux/slab.h b/include/linux/slab.h index 76f1feeabd38..ffd24c830151 100644 --- a/include/linux/slab.h +++ b/include/linux/slab.h | |||
| @@ -18,7 +18,7 @@ | |||
| 18 | 18 | ||
| 19 | /* | 19 | /* |
| 20 | * Flags to pass to kmem_cache_create(). | 20 | * Flags to pass to kmem_cache_create(). |
| 21 | * The ones marked DEBUG are only valid if CONFIG_SLAB_DEBUG is set. | 21 | * The ones marked DEBUG are only valid if CONFIG_DEBUG_SLAB is set. |
| 22 | */ | 22 | */ |
| 23 | #define SLAB_DEBUG_FREE 0x00000100UL /* DEBUG: Perform (expensive) checks on free */ | 23 | #define SLAB_DEBUG_FREE 0x00000100UL /* DEBUG: Perform (expensive) checks on free */ |
| 24 | #define SLAB_RED_ZONE 0x00000400UL /* DEBUG: Red zone objs in a cache */ | 24 | #define SLAB_RED_ZONE 0x00000400UL /* DEBUG: Red zone objs in a cache */ |
