summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Zankel <chris@zankel.net>2008-01-08 01:42:21 +0100
committerChris Zankel <chris@zankel.net>2008-02-14 02:23:26 +0100
commit3b4a49e21b0d8a69629623815a8caff3eb4cf9f7 (patch)
tree28caaf5e577264a6edcbcd04141180fabaabe19c
parent[XTENSA] Add missing cast in elf.h ELF_CORE_COPY_REGS() (diff)
downloadlinux-3b4a49e21b0d8a69629623815a8caff3eb4cf9f7.tar.xz
linux-3b4a49e21b0d8a69629623815a8caff3eb4cf9f7.zip
[XTENSA] Fix modules for non-exec processor configurations
We need to use vmalloc_exec for module loading. Also remove the definitions MODULE_START and MODULE_END, which wasn't used, and increase the VMALLOC memory range accordingly. Signed-off-by: Chris Zankel <chris@zankel.net>
-rw-r--r--arch/xtensa/kernel/module.c2
-rw-r--r--include/asm-xtensa/module.h4
-rw-r--r--include/asm-xtensa/pgtable.h8
3 files changed, 7 insertions, 7 deletions
diff --git a/arch/xtensa/kernel/module.c b/arch/xtensa/kernel/module.c
index ddf14dcf2ad9..3981a466c779 100644
--- a/arch/xtensa/kernel/module.c
+++ b/arch/xtensa/kernel/module.c
@@ -28,7 +28,7 @@ void *module_alloc(unsigned long size)
{
if (size == 0)
return NULL;
- return vmalloc(size);
+ return vmalloc_exec(size);
}
void module_free(struct module *mod, void *module_region)
diff --git a/include/asm-xtensa/module.h b/include/asm-xtensa/module.h
index ffb25bfdf6a1..d9b34bee4d42 100644
--- a/include/asm-xtensa/module.h
+++ b/include/asm-xtensa/module.h
@@ -15,9 +15,11 @@
struct mod_arch_specific
{
- /* Module support is not completely implemented. */
+ /* No special elements, yet. */
};
+#define MODULE_ARCH_VERMAGIC "xtensa-" __stringify(XCHAL_CORE_ID) " "
+
#define Elf_Shdr Elf32_Shdr
#define Elf_Sym Elf32_Sym
#define Elf_Ehdr Elf32_Ehdr
diff --git a/include/asm-xtensa/pgtable.h b/include/asm-xtensa/pgtable.h
index c0fcc1c9660c..c8b024a48b4d 100644
--- a/include/asm-xtensa/pgtable.h
+++ b/include/asm-xtensa/pgtable.h
@@ -66,11 +66,9 @@
*/
#define VMALLOC_START 0xC0000000
-#define VMALLOC_END 0xC6FEFFFF
-#define TLBTEMP_BASE_1 0xC6FF0000
-#define TLBTEMP_BASE_2 0xC6FF8000
-#define MODULE_START 0xC7000000
-#define MODULE_END 0xC7FFFFFF
+#define VMALLOC_END 0xC7FEFFFF
+#define TLBTEMP_BASE_1 0xC7FF0000
+#define TLBTEMP_BASE_2 0xC7FF8000
/*
* Xtensa Linux config PTE layout (when present):