Using kmalloc instead of vmalloc solves the stability problems
experienced by some 100 LX products.
#define DEBUGP(fmt , ...)
#endif
#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;
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)
{
}
/* Free memory returned from module_alloc */
void module_free(struct module *mod, void *module_region)
{
+ FREE_MODULE(module_region);
/* FIXME: If module_region == mod->init_region, trim exception
/* FIXME: If module_region == mod->init_region, trim exception
}
/* We don't need anything special. */
}
/* We don't need anything special. */