linux_dsm_epyc7002/arch/powerpc
Nicholas Piggin a24553dd02 powerpc/pseries: Remove unnecessary syscall trampoline
When we originally added the ability to split the exception vectors from
the kernel (commit 1f6a93e4c3 ("powerpc: Make it possible to move the
interrupt handlers away from the kernel" 2008-09-15)), the LOAD_HANDLER() macro
used an addi instruction to compute the offset of the common handler
from the kernel base address.

Using addi meant the handler had to be within 32K of the kernel base
address, due to the addi instruction taking a signed immediate value.
That necessitated creating a trampoline for the system call handler,
because system_call_common (in entry64.S) is not linked within 32K of
the kernel base address.

Later in commit 61e2390ede ("powerpc: Make load_hander handle upto 64k
offset" 2012-11-15) we changed LOAD_HANDLER to take a 64K offset, by
changing it to use ori.

Although system_call_common is not in head_64.S or exceptions-64s.S, it
is included in head-y, which causes it to be linked early in the kernel
text, so in practice it ends up below 64K. Additionally if it can't be
placed below 64K the linker will fail to build with a "relocation
truncated to fit" error.

So remove the trampoline.

Newer toolchains are able to work out that the ori in LOAD_HANDLER only
takes a 16 bit offset, and so they generate a 16 bit relocation. Older
toolchains (binutils 2.22 at least) are not so smart, so we have to add
the @l annotation to tell the assembler to generate a 16 bit relocation.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2016-09-23 07:54:20 +10:00
..
boot powerpc/boot: Use $(Q) to quiet build rules not @ 2016-09-13 17:37:05 +10:00
configs powerpc updates for 4.8 # 1 2016-07-30 21:01:36 -07:00
crypto crypto: crc32c-vpmsum - Convert to CPU feature based module autoloading 2016-08-09 14:50:17 +10:00
include powerpc/pseries: Remove unnecessary syscall trampoline 2016-09-23 07:54:20 +10:00
kernel powerpc/pseries: Remove unnecessary syscall trampoline 2016-09-23 07:54:20 +10:00
kvm powerpc: move hmi.c to arch/powerpc/kvm/ 2016-08-22 11:09:33 +10:00
lib powerpc/Makefile: Drop CONFIG_WORD_SIZE for BITS 2016-09-13 17:37:06 +10:00
math-emu
mm powerpc/mm: Add radix flush all with IS=3 2016-09-23 07:54:18 +10:00
net powerpc/ebpf/jit: Implement JIT compiler for extended BPF 2016-06-24 15:17:57 +10:00
oprofile powerpc/sparse: Make a bunch of things static 2016-09-13 17:35:47 +10:00
perf powerpc/sparse: Make a bunch of things static 2016-09-13 17:35:47 +10:00
platforms powerpc/powernv/pci: Add PHB register dump debugfs handle 2016-09-23 07:54:19 +10:00
scripts
sysdev powerpc: Remove all usages of NO_IRQ 2016-09-20 20:57:12 +10:00
xmon powerpc/xmon: Don't use ld on 32-bit 2016-09-13 17:37:02 +10:00
Kconfig powerpc/mm: Update FORCE_MAX_ZONEORDER range to allow hugetlb w/4K 2016-09-20 14:40:41 +10:00
Kconfig.debug powerpc/mm: Catch usage of cpu/mmu_has_feature() before jump label init 2016-08-01 11:15:06 +10:00
Makefile powerpc/Makefile: Construct the UTS_MACHINE value more concisely 2016-09-13 17:37:06 +10:00
relocs_check.sh