]> err.no Git - linux-2.6/commitdiff
CRIS: Add configuration possibility for using kmalloc for modules.
authorJesper Nilsson <jesper.nilsson@axis.com>
Mon, 28 Jan 2008 15:28:10 +0000 (16:28 +0100)
committerJesper Nilsson <jesper.nilsson@axis.com>
Fri, 8 Feb 2008 10:06:36 +0000 (11:06 +0100)
Using kmalloc instead of vmalloc solves the stability problems
experienced by some 100 LX products.

arch/cris/kernel/module.c

index 11b867df8617dec4df64ce84078aa9e24a6fdc86..a187833febc8b0cfd582a39b84aaefdabe54a205 100644 (file)
 #define DEBUGP(fmt , ...)
 #endif
 
+#ifdef CONFIG_ETRAX_KMALLOCED_MODULES
+#define MALLOC_MODULE(size) kmalloc(size, GFP_KERNEL)
+#define FREE_MODULE(region) kfree(region)
+#else
+#define MALLOC_MODULE(size) vmalloc_exec(size)
+#define FREE_MODULE(region) vfree(region)
+#endif
+
 void *module_alloc(unsigned long size)
 {
        if (size == 0)
                return NULL;
-       return vmalloc_exec(size);
+       return MALLOC_MODULE(size);
 }
 
 
 /* Free memory returned from module_alloc */
 void module_free(struct module *mod, void *module_region)
 {
-       vfree(module_region);
+       FREE_MODULE(module_region);
        /* FIXME: If module_region == mod->init_region, trim exception
-           table entries. */
+          table entries. */
 }
 
 /* We don't need anything special. */