]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - mm/mempool.c
[PATCH] leds: Amstrad Delta LED support
[linux-2.6-omap-h63xx.git] / mm / mempool.c
index 45c0112ca7b24903302c6d746c543a45bea599b4..fe6e05289cc5b5b7b30f036980fb7ea3835892e0 100644 (file)
@@ -183,8 +183,8 @@ EXPORT_SYMBOL(mempool_resize);
  */
 void mempool_destroy(mempool_t *pool)
 {
-       if (pool->curr_nr != pool->min_nr)
-               BUG();          /* There were outstanding elements */
+       /* Check for outstanding elements */
+       BUG_ON(pool->curr_nr != pool->min_nr);
        free_pool(pool);
 }
 EXPORT_SYMBOL(mempool_destroy);
@@ -290,6 +290,30 @@ void mempool_free_slab(void *element, void *pool_data)
 }
 EXPORT_SYMBOL(mempool_free_slab);
 
+/*
+ * A commonly used alloc and free fn that kmalloc/kfrees the amount of memory
+ * specfied by pool_data
+ */
+void *mempool_kmalloc(gfp_t gfp_mask, void *pool_data)
+{
+       size_t size = (size_t)(long)pool_data;
+       return kmalloc(size, gfp_mask);
+}
+EXPORT_SYMBOL(mempool_kmalloc);
+
+void *mempool_kzalloc(gfp_t gfp_mask, void *pool_data)
+{
+       size_t size = (size_t) pool_data;
+       return kzalloc(size, gfp_mask);
+}
+EXPORT_SYMBOL(mempool_kzalloc);
+
+void mempool_kfree(void *element, void *pool_data)
+{
+       kfree(element);
+}
+EXPORT_SYMBOL(mempool_kfree);
+
 /*
  * A simple mempool-backed page allocator that allocates pages
  * of the order specified by pool_data.