Commit c5f12503 authored by Kevin Welton's avatar Kevin Welton Committed by Russell King

[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: default avatarKevin Welton <Kevin.Welton@arm.com>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 8678c1f0
...@@ -116,8 +116,8 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex, ...@@ -116,8 +116,8 @@ apply_relocate(Elf32_Shdr *sechdrs, const char *strtab, unsigned int symindex,
offset += sym->st_value - loc; offset += sym->st_value - loc;
if (offset & 3 || if (offset & 3 ||
offset <= (s32)0xfc000000 || offset <= (s32)0xfe000000 ||
offset >= (s32)0x04000000) { offset >= (s32)0x02000000) {
printk(KERN_ERR printk(KERN_ERR
"%s: relocation out of range, section " "%s: relocation out of range, section "
"%d reloc %d sym '%s'\n", module->name, "%d reloc %d sym '%s'\n", module->name,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment