|
@@ -28,20 +28,28 @@
|
|
#define DEBUGP(fmt , ...)
|
|
#define DEBUGP(fmt , ...)
|
|
#endif
|
|
#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)
|
|
void *module_alloc(unsigned long size)
|
|
{
|
|
{
|
|
if (size == 0)
|
|
if (size == 0)
|
|
return NULL;
|
|
return NULL;
|
|
- return vmalloc_exec(size);
|
|
|
|
|
|
+ return MALLOC_MODULE(size);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
/* Free memory returned from module_alloc */
|
|
/* Free memory returned from module_alloc */
|
|
void module_free(struct module *mod, void *module_region)
|
|
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
|
|
/* FIXME: If module_region == mod->init_region, trim exception
|
|
- table entries. */
|
|
|
|
|
|
+ table entries. */
|
|
}
|
|
}
|
|
|
|
|
|
/* We don't need anything special. */
|
|
/* We don't need anything special. */
|