microblaze: Add {z,}alloc_maybe_bootmem functions
Michal Simek [Thu, 14 Jan 2010 16:03:49 +0000 (17:03 +0100)]
I will need {z,}alloc_maybe_bootmem functions for pci patches

Signed-off-by: Michal Simek <monstr@monstr.eu>

arch/microblaze/include/asm/system.h
arch/microblaze/mm/init.c

index 1579706..59efb3f 100644 (file)
@@ -87,6 +87,9 @@ void free_initmem(void);
 extern char *klimit;
 extern void ret_from_fork(void);
 
+extern void *alloc_maybe_bootmem(size_t size, gfp_t mask);
+extern void *zalloc_maybe_bootmem(size_t size, gfp_t mask);
+
 #ifdef CONFIG_DEBUG_FS
 extern struct dentry *of_debugfs_root;
 #endif
index a57cedf..6eea554 100644 (file)
@@ -349,4 +349,27 @@ void __init *early_get_page(void)
        }
        return p;
 }
+
+void * __init_refok alloc_maybe_bootmem(size_t size, gfp_t mask)
+{
+       if (mem_init_done)
+               return kmalloc(size, mask);
+       else
+               return alloc_bootmem(size);
+}
+
+void * __init_refok zalloc_maybe_bootmem(size_t size, gfp_t mask)
+{
+       void *p;
+
+       if (mem_init_done)
+               p = kzalloc(size, mask);
+       else {
+               p = alloc_bootmem(size);
+               if (p)
+                       memset(p, 0, size);
+       }
+       return p;
+}
+
 #endif /* CONFIG_MMU */