|
@@ -289,3 +289,21 @@ void mempool_free_slab(void *element, void *pool_data)
|
|
|
kmem_cache_free(mem, element);
|
|
|
}
|
|
|
EXPORT_SYMBOL(mempool_free_slab);
|
|
|
+
|
|
|
+/*
|
|
|
+ * A simple mempool-backed page allocator that allocates pages
|
|
|
+ * of the order specified by pool_data.
|
|
|
+ */
|
|
|
+void *mempool_alloc_pages(gfp_t gfp_mask, void *pool_data)
|
|
|
+{
|
|
|
+ int order = (int)(long)pool_data;
|
|
|
+ return alloc_pages(gfp_mask, order);
|
|
|
+}
|
|
|
+EXPORT_SYMBOL(mempool_alloc_pages);
|
|
|
+
|
|
|
+void mempool_free_pages(void *element, void *pool_data)
|
|
|
+{
|
|
|
+ int order = (int)(long)pool_data;
|
|
|
+ __free_pages(element, order);
|
|
|
+}
|
|
|
+EXPORT_SYMBOL(mempool_free_pages);
|