aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@bell.net>2013-05-04 15:16:41 -0400
committerHelge Deller <deller@gmx.de>2013-05-06 17:09:48 -0400
commitbbbfde782084b4f0d85ddffb88f1cf4650ff40e4 (patch)
tree66e295f6e8f0223c5ef206df581959bf0f1f684c /arch
parent93782eba49e23c3f311a6b05a19ba15927ec4e8b (diff)
parisc: use long branch in fork_like macro
The "b" branch instruction used in the fork_like macro only can handle 17-bit pc-relative offsets. This fails with an out of range offset with some .config files. Rewrite to use the "be" instruction which can branch to any address in a space. Signed-off-by: John David Anglin <dave.anglin@bell.net> Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/parisc/kernel/entry.S3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S
index aa486e46ab97..36f4f1dcb778 100644
--- a/arch/parisc/kernel/entry.S
+++ b/arch/parisc/kernel/entry.S
@@ -1702,7 +1702,8 @@ ENTRY(sys_\name\()_wrapper)
1702 ldo TASK_REGS(%r1),%r1 1702 ldo TASK_REGS(%r1),%r1
1703 reg_save %r1 1703 reg_save %r1
1704 mfctl %cr27, %r28 1704 mfctl %cr27, %r28
1705 b sys_\name 1705 ldil L%sys_\name, %r31
1706 be R%sys_\name(%sr4,%r31)
1706 STREG %r28, PT_CR27(%r1) 1707 STREG %r28, PT_CR27(%r1)
1707ENDPROC(sys_\name\()_wrapper) 1708ENDPROC(sys_\name\()_wrapper)
1708 .endm 1709 .endm