summaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel
diff options
context:
space:
mode:
authorKevin Welton <Kevin.Welton@arm.com>2007-05-08 22:05:25 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2007-05-08 22:05:25 +0100
commitc5f125031f416ba6350e84462e9039737b6e2bab (patch)
tree5235278dc97c1dd4611f148ae46dafda2dc60ff6 /arch/arm/kernel
parent8678c1f04277daaa914abb107fb9fe71298d916d (diff)
downloadlinux-c5f125031f416ba6350e84462e9039737b6e2bab.tar.gz
linux-c5f125031f416ba6350e84462e9039737b6e2bab.tar.bz2
linux-c5f125031f416ba6350e84462e9039737b6e2bab.zip
[ARM] Fix ARM branch relocation range
Branches in the ARM architecture are restricted to a range of +/- 32MB. However, the code in .../arch/arm/kernel/module.c::apply_relocate() was checking offset against a range of +/- 64MB. Signed-off-by: Kevin Welton <Kevin.Welton@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r--arch/arm/kernel/module.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c
index 1b061583408e..79b7e5cf5416 100644
--- a/arch/arm/kernel/module.c
+++ b/arch/arm/kernel/module.c
@@ -116,8 +116,8 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex,
offset += sym->st_value - loc;
if (offset & 3 ||
- offset <= (s32)0xfc000000 ||
- offset >= (s32)0x04000000) {
+ offset <= (s32)0xfe000000 ||
+ offset >= (s32)0x02000000) {
printk(KERN_ERR
"%s: relocation out of range, section "
"%d reloc %d sym '%s'\n", module->name,