diff options
Diffstat (limited to 'include/linux/gfp.h')
-rw-r--r-- | include/linux/gfp.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/include/linux/gfp.h b/include/linux/gfp.h index f54adfcbec9c..a3b148a91874 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h | |||
@@ -34,6 +34,7 @@ struct vm_area_struct; | |||
34 | #else | 34 | #else |
35 | #define ___GFP_NOTRACK 0 | 35 | #define ___GFP_NOTRACK 0 |
36 | #endif | 36 | #endif |
37 | #define ___GFP_NO_KSWAPD 0x400000u | ||
37 | 38 | ||
38 | /* | 39 | /* |
39 | * GFP bitmasks.. | 40 | * GFP bitmasks.. |
@@ -81,13 +82,15 @@ struct vm_area_struct; | |||
81 | #define __GFP_RECLAIMABLE ((__force gfp_t)___GFP_RECLAIMABLE) /* Page is reclaimable */ | 82 | #define __GFP_RECLAIMABLE ((__force gfp_t)___GFP_RECLAIMABLE) /* Page is reclaimable */ |
82 | #define __GFP_NOTRACK ((__force gfp_t)___GFP_NOTRACK) /* Don't track with kmemcheck */ | 83 | #define __GFP_NOTRACK ((__force gfp_t)___GFP_NOTRACK) /* Don't track with kmemcheck */ |
83 | 84 | ||
85 | #define __GFP_NO_KSWAPD ((__force gfp_t)___GFP_NO_KSWAPD) | ||
86 | |||
84 | /* | 87 | /* |
85 | * This may seem redundant, but it's a way of annotating false positives vs. | 88 | * This may seem redundant, but it's a way of annotating false positives vs. |
86 | * allocations that simply cannot be supported (e.g. page tables). | 89 | * allocations that simply cannot be supported (e.g. page tables). |
87 | */ | 90 | */ |
88 | #define __GFP_NOTRACK_FALSE_POSITIVE (__GFP_NOTRACK) | 91 | #define __GFP_NOTRACK_FALSE_POSITIVE (__GFP_NOTRACK) |
89 | 92 | ||
90 | #define __GFP_BITS_SHIFT 22 /* Room for 22 __GFP_FOO bits */ | 93 | #define __GFP_BITS_SHIFT 23 /* Room for 23 __GFP_FOO bits */ |
91 | #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1)) | 94 | #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1)) |
92 | 95 | ||
93 | /* This equals 0, but use constants in case they ever change */ | 96 | /* This equals 0, but use constants in case they ever change */ |
@@ -106,6 +109,9 @@ struct vm_area_struct; | |||
106 | __GFP_HARDWALL | __GFP_HIGHMEM | \ | 109 | __GFP_HARDWALL | __GFP_HIGHMEM | \ |
107 | __GFP_MOVABLE) | 110 | __GFP_MOVABLE) |
108 | #define GFP_IOFS (__GFP_IO | __GFP_FS) | 111 | #define GFP_IOFS (__GFP_IO | __GFP_FS) |
112 | #define GFP_TRANSHUGE (GFP_HIGHUSER_MOVABLE | __GFP_COMP | \ | ||
113 | __GFP_NOMEMALLOC | __GFP_NORETRY | __GFP_NOWARN | \ | ||
114 | __GFP_NO_KSWAPD) | ||
109 | 115 | ||
110 | #ifdef CONFIG_NUMA | 116 | #ifdef CONFIG_NUMA |
111 | #define GFP_THISNODE (__GFP_THISNODE | __GFP_NOWARN | __GFP_NORETRY) | 117 | #define GFP_THISNODE (__GFP_THISNODE | __GFP_NOWARN | __GFP_NORETRY) |
@@ -325,14 +331,17 @@ alloc_pages(gfp_t gfp_mask, unsigned int order) | |||
325 | { | 331 | { |
326 | return alloc_pages_current(gfp_mask, order); | 332 | return alloc_pages_current(gfp_mask, order); |
327 | } | 333 | } |
328 | extern struct page *alloc_page_vma(gfp_t gfp_mask, | 334 | extern struct page *alloc_pages_vma(gfp_t gfp_mask, int order, |
329 | struct vm_area_struct *vma, unsigned long addr); | 335 | struct vm_area_struct *vma, unsigned long addr); |
330 | #else | 336 | #else |
331 | #define alloc_pages(gfp_mask, order) \ | 337 | #define alloc_pages(gfp_mask, order) \ |
332 | alloc_pages_node(numa_node_id(), gfp_mask, order) | 338 | alloc_pages_node(numa_node_id(), gfp_mask, order) |
333 | #define alloc_page_vma(gfp_mask, vma, addr) alloc_pages(gfp_mask, 0) | 339 | #define alloc_pages_vma(gfp_mask, order, vma, addr) \ |
340 | alloc_pages(gfp_mask, order) | ||
334 | #endif | 341 | #endif |
335 | #define alloc_page(gfp_mask) alloc_pages(gfp_mask, 0) | 342 | #define alloc_page(gfp_mask) alloc_pages(gfp_mask, 0) |
343 | #define alloc_page_vma(gfp_mask, vma, addr) \ | ||
344 | alloc_pages_vma(gfp_mask, 0, vma, addr) | ||
336 | 345 | ||
337 | extern unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order); | 346 | extern unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order); |
338 | extern unsigned long get_zeroed_page(gfp_t gfp_mask); | 347 | extern unsigned long get_zeroed_page(gfp_t gfp_mask); |