]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - mm/slob.c
Merge branches 'topic/slob/cleanups', 'topic/slob/fixes', 'topic/slub/core', 'topic...
[mv-sheeva.git] / mm / slob.c
index c9cd31d27e694e764eaf0686df832728d0ece7e6..0bfa680a8981127307d1d922231dca3d66f9b2bd 100644 (file)
--- a/mm/slob.c
+++ b/mm/slob.c
@@ -403,10 +403,11 @@ static void slob_free(void *block, int size)
                /* Go directly to page allocator. Do not pass slob allocator */
                if (slob_page_free(sp))
                        clear_slob_page_free(sp);
+               spin_unlock_irqrestore(&slob_lock, flags);
                clear_slob_page(sp);
                free_slob_page(sp);
                free_page((unsigned long)b);
-               goto out;
+               return;
        }
 
        if (!slob_page_free(sp)) {
@@ -531,6 +532,7 @@ size_t ksize(const void *block)
        } else
                return sp->page.private;
 }
+EXPORT_SYMBOL(ksize);
 
 struct kmem_cache {
        unsigned int size, align;