kernel_optimize_test/arch/powerpc/kernel
Oliver O'Halloran 8f5f525d5b powerpc/64: Fix flush_(d|i)cache_range() called from modules
When the kernel is compiled to use 64bit ABIv2 the _GLOBAL() macro does
not include a global entry point. A function's global entry point is
used when the function is called from a different TOC context and in the
kernel this typically means a call from a module into the vmlinux (or
vice-versa).

There are a few exported asm functions declared with _GLOBAL() and
calling them from a module will likely crash the kernel since any TOC
relative load will yield garbage.

flush_icache_range() and flush_dcache_range() are both exported to
modules, and use the TOC, so must use _GLOBAL_TOC().

Fixes: 721aeaa9fd ("powerpc: Build little endian ppc64 kernel with ABIv2")
Cc: stable@vger.kernel.org # v3.16+
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2017-04-05 21:40:21 +10:00
..
vdso32
vdso64
.gitignore
align.c powerpc: Don't try to fix up misaligned load-with-reservation instructions 2017-04-04 23:16:57 +10:00
asm-offsets.c powerpc updates for 4.11 part 2 2017-03-01 10:10:16 -08:00
audit.c
btext.c
cacheinfo.c
cacheinfo.h
compat_audit.c
cpu_setup_6xx.S
cpu_setup_44x.S
cpu_setup_fsl_booke.S
cpu_setup_pa6t.S
cpu_setup_power.S powerpc/mm/hash: Always clear UPRT and Host Radix bits when setting up CPU 2017-02-23 08:26:15 +11:00
cpu_setup_ppc970.S
cputable.c powerpc/64s: POWER9 machine check handler 2017-03-10 16:32:08 +11:00
crash_dump.c
crash.c
dbell.c
dma-iommu.c
dma-swiotlb.c
dma.c
eeh_cache.c
eeh_dev.c
eeh_driver.c
eeh_event.c
eeh_pe.c
eeh_sysfs.c
eeh.c
entry_32.S powerpc updates for 4.11 part 2 2017-03-01 10:10:16 -08:00
entry_64.S
epapr_hcalls.S
epapr_paravirt.c
exceptions-64e.S
exceptions-64s.S Merge branch 'topic/ppc-kvm' into next 2017-02-14 17:18:29 +11:00
fadump.c
firmware.c
fpu.S
fsl_booke_entry_mapping.S
ftrace.c
head_8xx.S
head_32.S
head_40x.S
head_44x.S
head_64.S
head_booke.h
head_fsl_booke.S
hw_breakpoint.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/scottwood/linux into next 2017-02-18 21:37:14 +11:00
idle_6xx.S
idle_book3e.S
idle_book3s.S powerpc/64s: Fix idle wakeup potential to clobber registers 2017-03-20 20:35:12 +11:00
idle_e500.S
idle_power4.S
idle.c
ima_kexec.c
io-workarounds.c sched/headers: Prepare to remove the <linux/mm_types.h> dependency from <linux/sched.h> 2017-03-02 08:42:37 +01:00
io.c
iomap.c
iommu.c
irq.c
isa-bridge.c
jump_label.c
kexec_elf_64.c
kgdb.c
kprobes.c powerpc/kprobes: Remove kprobe_exceptions_notify() 2017-02-10 14:43:15 +11:00
kvm_emul.S
kvm.c
l2cr_6xx.S
legacy_serial.c
machine_kexec_32.c
machine_kexec_64.c
machine_kexec_file_64.c
machine_kexec.c
Makefile powerpc updates for 4.11 part 1. 2017-02-22 10:30:38 -08:00
mce_power.c powerpc/64s: POWER9 machine check handler 2017-03-10 16:32:08 +11:00
mce.c powerpc/64s: POWER9 machine check handler 2017-03-10 16:32:08 +11:00
misc_32.S
misc_64.S powerpc/64: Fix flush_(d|i)cache_range() called from modules 2017-04-05 21:40:21 +10:00
misc.S
module_32.c
module_64.c modversions: treat symbol CRCs as 32 bit quantities 2017-02-03 08:28:25 -08:00
module.c
msi.c
nvram_64.c
of_platform.c
optprobes_head.S powerpc/optprobes: Fix TOC handling in optprobes trampoline 2017-02-23 08:23:30 +11:00
optprobes.c powerpc/kprobes: Optimize kprobe in kretprobe_trampoline() 2017-02-10 13:28:05 +11:00
paca.c sched/headers: Prepare to move 'init_task' and 'init_thread_union' from <linux/sched.h> to <linux/sched/task.h> 2017-03-02 08:42:38 +01:00
pci_32.c
pci_64.c
pci_dn.c
pci_of_scan.c
pci-common.c powerpc updates for 4.11 part 2 2017-03-01 10:10:16 -08:00
pci-hotplug.c
pmc.c
ppc_save_regs.S
ppc32.h
proc_powerpc.c
process.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/task_stack.h> 2017-03-02 08:42:36 +01:00
prom_init_check.sh
prom_init.c powerpc: Update to new option-vector-5 format for CAS 2017-03-06 21:44:09 +11:00
prom_parse.c
prom.c
ptrace.c
ptrace32.c
reloc_32.S
reloc_64.S
rtas_flash.c
rtas_pci.c
rtas-proc.c
rtas-rtc.c
rtas.c
rtasd.c powerpc/pseries: Update affinity for memory and cpus specified in a PRRN event 2017-02-02 20:36:38 +11:00
setup_32.c powerpc: Move {d,i,u}cache_bsize definitions to a common place 2017-02-06 19:46:04 +11:00
setup_64.c powerpc: Disable HFSCR[TM] if TM is not supported 2017-03-28 19:52:37 +11:00
setup-common.c powerpc: Move {d,i,u}cache_bsize definitions to a common place 2017-02-06 19:46:04 +11:00
setup.h
signal_32.c
signal_64.c
signal.c
signal.h
smp-tbsync.c
smp.c sched/headers: Move task->mm handling methods to <linux/sched/mm.h> 2017-03-03 01:43:28 +01:00
stacktrace.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/debug.h> 2017-03-02 08:42:34 +01:00
suspend.c
swsusp_32.S
swsusp_64.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/nmi.h> 2017-03-02 08:42:30 +01:00
swsusp_asm64.S
swsusp_booke.S
swsusp.c
sys_ppc32.c
syscalls.c
sysfs.c
systbl_chk.c
systbl_chk.sh
systbl.S
tau_6xx.c
time.c sched/headers: Prepare to move cputime functionality from <linux/sched.h> into <linux/sched/cputime.h> 2017-03-02 08:42:39 +01:00
tm.S
trace_clock.c
traps.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/debug.h> 2017-03-02 08:42:34 +01:00
udbg_16550.c
udbg.c
uprobes.c
vdso.c powerpc/64: Clean up ppc64_caches using a struct per cache 2017-02-06 19:46:04 +11:00
vecemu.c
vector.S
vmlinux.lds.S