diff options
author | Kevin Welton <Kevin.Welton@arm.com> | 2007-05-08 22:05:25 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2007-05-08 22:05:25 +0100 |
commit | c5f125031f416ba6350e84462e9039737b6e2bab (patch) | |
tree | 5235278dc97c1dd4611f148ae46dafda2dc60ff6 /arch/arm/kernel | |
parent | 8678c1f04277daaa914abb107fb9fe71298d916d (diff) | |
download | linux-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.c | 4 |
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, |