diff options
Diffstat (limited to 'mm/nommu.c')
| -rw-r--r-- | mm/nommu.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/mm/nommu.c b/mm/nommu.c index 5edccd9c9218..ed75bc962fbe 100644 --- a/mm/nommu.c +++ b/mm/nommu.c | |||
| @@ -266,6 +266,27 @@ void *vmalloc_node(unsigned long size, int node) | |||
| 266 | } | 266 | } |
| 267 | EXPORT_SYMBOL(vmalloc_node); | 267 | EXPORT_SYMBOL(vmalloc_node); |
| 268 | 268 | ||
| 269 | #ifndef PAGE_KERNEL_EXEC | ||
| 270 | # define PAGE_KERNEL_EXEC PAGE_KERNEL | ||
| 271 | #endif | ||
| 272 | |||
| 273 | /** | ||
| 274 | * vmalloc_exec - allocate virtually contiguous, executable memory | ||
| 275 | * @size: allocation size | ||
| 276 | * | ||
| 277 | * Kernel-internal function to allocate enough pages to cover @size | ||
| 278 | * the page level allocator and map them into contiguous and | ||
| 279 | * executable kernel virtual space. | ||
| 280 | * | ||
| 281 | * For tight control over page level allocator and protection flags | ||
| 282 | * use __vmalloc() instead. | ||
| 283 | */ | ||
| 284 | |||
| 285 | void *vmalloc_exec(unsigned long size) | ||
| 286 | { | ||
| 287 | return __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL_EXEC); | ||
| 288 | } | ||
| 289 | |||
| 269 | /** | 290 | /** |
| 270 | * vmalloc_32 - allocate virtually contiguous memory (32bit addressable) | 291 | * vmalloc_32 - allocate virtually contiguous memory (32bit addressable) |
| 271 | * @size: allocation size | 292 | * @size: allocation size |
