Quellcode durchsuchen

CRIS: Add configuration possibility for using kmalloc for modules.

Using kmalloc instead of vmalloc solves the stability problems
experienced by some 100 LX products.
Jesper Nilsson vor 18 Jahren
Ursprung
Commit
08cfeacb6b
1 geänderte Dateien mit 11 neuen und 3 gelöschten Zeilen
  1. 11 3
      arch/cris/kernel/module.c

+ 11 - 3
arch/cris/kernel/module.c

@@ -28,20 +28,28 @@
 #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. */