powerpc: Fix exception vector build with 2.23 era binutils
authorHugh Dickins <hughd@google.com>
Tue, 8 Nov 2016 06:28:21 +0000 (22:28 -0800)
committerMichael Ellerman <mpe@ellerman.id.au>
Sat, 12 Nov 2016 09:12:49 +0000 (20:12 +1100)
commite6740ae631db02e4f3a6742e2a38ea63718d8d17
treeaf34672505c9cf33e696053d6f94162e4f737110
parentf23ed166f283b1a6f0a1f0b0c889e8df9a10ff85
powerpc: Fix exception vector build with 2.23 era binutils

The changes to use gas sections for constructing the exception vectors
causes a build break when using binutils 2.23:

  arch/powerpc/kernel/exceptions-64s.S:770: Error: operand out of range
  (0xffffffffffff8100 is not between 0x0000000000000000 and 0x000000000000ffff)

And so on.

Reported by Hugh with binutils-2.23.2-8.1.4.ppc64 from openSUSE 13.1 and
also Naveen & Denis using 2.23.52.0.1-26.el7 from RHEL 7. Strangely
binutils 2.22 (what I test with) is not affected.

This is caused by the use of @l in LOAD_HANDLER(). The @l was only
recently added in commit a24553dd02dc ("powerpc/pseries: Remove
unnecessary syscall trampoline").

Luckily the gas section changes split out the LOAD_SYSCALL_HANDLER()
macro, which means we actually *don't* need to use @l in LOAD_HANDLER()
any more, only in LOAD_SYSCALL_HANDLER().

So drop the @l from LOAD_HANDLER().

Fixes: 57f266497d81 ("powerpc: Use gas sections for arranging exception vectors")
Signed-off-by: Hugh Dickins <hughd@google.com>
[mpe: Add gory details to change log]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/include/asm/exception-64s.h