diff options
author | John David Anglin <dave.anglin@bell.net> | 2013-05-04 19:16:41 +0000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-05-19 11:38:46 -0700 |
commit | 746cb3d3ce315b53263a1f8a97390be84cfd5ee3 (patch) | |
tree | aff95c32568d4fe266eeb42a7804bbbaa490a36a | |
parent | 94754ecd526651ef163d1b12562b5d0ea7f96ce0 (diff) | |
download | lwn-746cb3d3ce315b53263a1f8a97390be84cfd5ee3.tar.gz lwn-746cb3d3ce315b53263a1f8a97390be84cfd5ee3.zip |
parisc: use long branch in fork_like macro
commit bbbfde782084b4f0d85ddffb88f1cf4650ff40e4 upstream.
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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | arch/parisc/kernel/entry.S | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S index ac07f9634c57..897bce412c58 100644 --- a/arch/parisc/kernel/entry.S +++ b/arch/parisc/kernel/entry.S @@ -1709,7 +1709,8 @@ ENTRY(sys_\name\()_wrapper) ldo TASK_REGS(%r1),%r1 reg_save %r1 mfctl %cr27, %r28 - b sys_\name + ldil L%sys_\name, %r31 + be R%sys_\name(%sr4,%r31) STREG %r28, PT_CR27(%r1) ENDPROC(sys_\name\()_wrapper) .endm |