|
@@ -10,6 +10,7 @@
|
|
|
#include <linux/swapops.h>
|
|
|
#include <linux/mman.h>
|
|
|
#include <linux/hugetlb.h>
|
|
|
+#include <linux/vmalloc.h>
|
|
|
|
|
|
#include <asm/uaccess.h>
|
|
|
|
|
@@ -387,6 +388,15 @@ unsigned long vm_mmap(struct file *file, unsigned long addr,
|
|
|
}
|
|
|
EXPORT_SYMBOL(vm_mmap);
|
|
|
|
|
|
+void kvfree(const void *addr)
|
|
|
+{
|
|
|
+ if (is_vmalloc_addr(addr))
|
|
|
+ vfree(addr);
|
|
|
+ else
|
|
|
+ kfree(addr);
|
|
|
+}
|
|
|
+EXPORT_SYMBOL(kvfree);
|
|
|
+
|
|
|
struct address_space *page_mapping(struct page *page)
|
|
|
{
|
|
|
struct address_space *mapping = page->mapping;
|