diff options
Diffstat (limited to 'mm/util.c')
| -rw-r--r-- | mm/util.c | 10 |
1 files changed, 10 insertions, 0 deletions
| @@ -10,6 +10,7 @@ | |||
| 10 | #include <linux/swapops.h> | 10 | #include <linux/swapops.h> |
| 11 | #include <linux/mman.h> | 11 | #include <linux/mman.h> |
| 12 | #include <linux/hugetlb.h> | 12 | #include <linux/hugetlb.h> |
| 13 | #include <linux/vmalloc.h> | ||
| 13 | 14 | ||
| 14 | #include <asm/uaccess.h> | 15 | #include <asm/uaccess.h> |
| 15 | 16 | ||
| @@ -387,6 +388,15 @@ unsigned long vm_mmap(struct file *file, unsigned long addr, | |||
| 387 | } | 388 | } |
| 388 | EXPORT_SYMBOL(vm_mmap); | 389 | EXPORT_SYMBOL(vm_mmap); |
| 389 | 390 | ||
| 391 | void kvfree(const void *addr) | ||
| 392 | { | ||
| 393 | if (is_vmalloc_addr(addr)) | ||
| 394 | vfree(addr); | ||
| 395 | else | ||
| 396 | kfree(addr); | ||
| 397 | } | ||
| 398 | EXPORT_SYMBOL(kvfree); | ||
| 399 | |||
| 390 | struct address_space *page_mapping(struct page *page) | 400 | struct address_space *page_mapping(struct page *page) |
| 391 | { | 401 | { |
| 392 | struct address_space *mapping = page->mapping; | 402 | struct address_space *mapping = page->mapping; |
