android_kernel_oneplus_msm8998/arch/powerpc/include/asm
Michael Ellerman a87e810f61 powerpc: Work around gcc bug in current_thread_info()
In commit a3e5b356b3 "powerpc: Don't use local named register variable
in current_thread_info" Anton changed the way we did current_thread_info()
to accommodate LLVM, and it was not meant to have any effect elsewhere.

Unfortunately it has exposed a gcc bug, where r1 gets copied into
another register and then gcc uses that register to restore the toc
after a function call, even when that register is volatile and has been
clobbered by the function call.

We could revert Anton's patch, but it's not clear the original code is
safe either, we may just have been lucky.

The cleanest solution is to just use the existing CURRENT_THREAD_INFO()
asm macro, and call it using inline asm.

Segher points out we don't need volatile on the asm, if the result of
the shift is unused it's fine for the compiler to elide it.

Fixes: a3e5b356b3 ("powerpc: Don't use local named register variable in current_thread_info")
Reported-by: Alexander Graf <agraf@suse.de>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2015-01-12 16:40:02 +11:00
..
8xx_immap.h
agp.h
archrandom.h random: Add arch_has_random[_seed]() 2014-03-19 22:24:08 -04:00
asm-compat.h PPC: Add asm helpers for BE 32bit load/store 2014-07-28 15:22:21 +02:00
asm-offsets.h
async_tx.h
atomic.h locking,arch,powerpc: Fold atomic_ops 2014-08-14 12:48:11 +02:00
backlight.h
barrier.h arch: Add lightweight memory barriers dma_rmb() and dma_wmb() 2014-12-11 21:15:06 -05:00
bitops.h powerpc: Fix comment typos in arch/powerpc/include/asm/bitops.h 2014-11-12 16:31:46 +11:00
bootx.h
btext.h powerpc/pmac: Early debug output on screen on 64-bit macs 2013-08-14 14:57:40 +10:00
bug.h powerpc: Remove stale function prototypes 2014-09-25 23:14:43 +10:00
bugs.h
cache.h Use the POWER8 Micro Partition Prefetch Engine in KVM HV on POWER8 2014-07-28 15:23:17 +02:00
cacheflush.h powerpc: Remove the symbol __flush_icache_range 2013-08-14 14:56:44 +10:00
cell-pmu.h
cell-regs.h
checksum.h powerpc: Use generic checksum code in little endian 2013-10-11 16:48:39 +11:00
cmpxchg.h powerpc: Add support for the optimised lockref implementation 2014-01-28 14:45:43 +11:00
code-patching.h powerpc: Add ppc_global_function_entry() 2014-06-24 14:05:32 +10:00
compat.h powerpc/compat: 32-bit little endian machine name is ppcle, not ppc 2014-03-24 10:16:04 +11:00
context_tracking.h powerpc: No need to use dot symbols when branching to a function 2014-04-23 10:05:16 +10:00
copro.h powerpc/cell: Make spu_flush_all_slbs() generic 2014-10-08 20:15:37 +11:00
cpm.h
cpm1.h
cpm2.h powerpc/cpm: Remove duplicate FCC_GFMR_TTX define 2014-06-11 17:03:28 +10:00
cpuidle.h powernv/cpuidle: Redesign idle states management 2014-12-15 10:46:40 +11:00
cputable.h powerpc: Remove unused CPU_FTRS_A2 2014-11-10 09:59:29 +11:00
cputhreads.h powerpc: Add threads_per_subcore 2014-05-28 13:35:35 +10:00
cputime.h Merge branch 'for-3.18-consistent-ops' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2014-10-15 07:48:18 +02:00
current.h
dbdma.h
dbell.h powerpc: Select either privileged or hypervisor doorbell when sending 2013-01-10 15:09:06 +11:00
dcr-generic.h
dcr-mmio.h of: Stop naming platform_device using dcr address 2014-05-23 08:28:02 +09:00
dcr-native.h
dcr-regs.h
dcr.h
debug.h powerpc: Fix smp_processor_id() in preemptible splat in set_breakpoint 2014-05-20 10:54:06 +10:00
delay.h
device.h powerpc: Add iommu domain pointer to device archdata 2013-08-14 11:38:34 +02:00
disassemble.h KVM: PPC: BOOK3S: Remove open coded make_dsisr in alignment handler 2014-05-30 14:26:25 +02:00
div64.h
dma-mapping.h powerpc/powernv: Override dma_get_required_mask() 2014-09-30 17:15:20 +10:00
dma.h powerpc: remove PReP platform 2013-04-18 13:03:53 +10:00
edac.h
eeh.h powerpc/eeh: Dump PHB diag-data early 2014-12-02 11:03:26 +11:00
eeh_event.h powerpc/powernv: Fix killed EEH event 2014-06-11 17:04:33 +10:00
ehv_pic.h
elf.h powerpc: Use generic PIE randomization 2014-11-17 17:55:11 +11:00
emergency-restart.h
emulated_ops.h powerpc: Add lq/stq emulation 2014-04-09 12:53:28 +10:00
epapr_hcalls.h kvm/powerpc: move kvm_hypercall0() and friends to epapr_hypercall0() 2014-01-09 10:14:57 +01:00
exception-64e.h powerpc: No need to use dot symbols when branching to a function 2014-04-23 10:05:16 +10:00
exception-64s.h powerpc/book3s: Add basic infrastructure to handle HMI in Linux. 2014-08-05 16:33:48 +10:00
exec.h
fadump.h powerpc/fadump: Fix endianess issues in firmware assisted dump handling 2014-10-30 16:52:46 +11:00
fb.h
feature-fixups.h
firmware.h powerpc/powernv: Detect OPAL v3 API version 2013-05-14 15:10:02 +10:00
fixmap.h powerpc: use generic fixmap.h 2014-01-23 16:36:54 -08:00
floppy.h
fs_pd.h powerpc/8xx: Remove empty asm/mpc8xx.h 2014-06-25 18:49:40 -05:00
fsl_85xx_cache_sram.h
fsl_gtm.h
fsl_guts.h powerpc/fsl: Added rcw registers to global utility registers 2014-11-07 18:10:47 -06:00
fsl_hcalls.h
fsl_lbc.h powerpc/85xx: handle the eLBC error interrupt if it exists in dts 2014-01-10 17:19:27 -06:00
fsl_pamu_stash.h iommu/fsl: Add additional iommu attributes required by the PAMU driver. 2013-08-14 11:38:34 +02:00
ftrace.h powerpc: Remove function descriptors and dot symbols on new ABI 2014-04-23 10:05:20 +10:00
futex.h
gpio.h
grackle.h
hardirq.h powerpc: Replace __get_cpu_var uses 2014-11-03 12:12:32 +11:00
heathrow.h
highmem.h
hugetlb.h powerpc/mm: Switch to generic RCU get_user_pages_fast 2014-11-14 17:24:21 +11:00
hvcall.h KVM: PPC: Book3S HV: Add H_SET_MODE hcall handling 2014-07-28 15:22:19 +02:00
hvconsole.h
hvcserver.h
hvsi.h powerpc/hvsi: Fix endian issues in HVSI driver 2013-10-11 16:48:53 +11:00
hw_breakpoint.h powerpc: Fix smp_processor_id() in preemptible splat in set_breakpoint 2014-05-20 10:54:06 +10:00
hw_irq.h powerpc/book3s: Add basic infrastructure to handle HMI in Linux. 2014-08-05 16:33:48 +10:00
hydra.h powerpc: Remove stale function prototypes 2014-09-25 23:14:43 +10:00
i8259.h
ibmebus.h ibmebus: convert of_platform_driver to platform_driver 2013-06-12 12:37:26 +01:00
ide.h
immap_cpm2.h
immap_qe.h
io-defs.h
io-workarounds.h POWERPC: drivers: remove __dev* attributes. 2013-01-03 15:57:04 -08:00
io.h powerpc updates for 3.19 2014-12-11 17:48:14 -08:00
io_event_irq.h
iommu.h powerpc/iommu: Rename iommu_[un]map_sg functions 2014-11-18 11:30:01 +01:00
ipic.h
irq.h powerpc: Remove stale function prototypes 2014-09-25 23:14:43 +10:00
irq_regs.h
irqflags.h powerpc: Update comments in irqflags.h 2014-07-28 14:11:23 +10:00
jump_label.h powerpc/pseries: Use jump labels for hcall tracepoints 2014-07-11 16:05:58 +10:00
Kbuild net, lib: kill arch_fast_hash library bits 2014-12-10 15:17:46 -05:00
kdebug.h
kdump.h
kexec.h powerpc/kdump: Ignore failure in enabling big endian exception during crash 2014-12-29 15:44:53 +11:00
keylargo.h
kgdb.h
kmap_types.h
kprobes.h powerpc/kprobes: Fix ABIv2 issues with kprobe_lookup_name 2014-04-23 10:05:33 +10:00
kvm_asm.h KVM: PPC: Remove shared defines for SPE and AltiVec interrupts 2014-09-22 10:11:34 +02:00
kvm_book3s.h KVM: PPC: Book3S HV: Remove code for PPC970 processors 2014-12-17 13:44:03 +01:00
kvm_book3s_32.h KVM: PPC: Book3S PR: Allocate kvm_vcpu structs from kvm_vcpu_cache 2013-10-17 14:45:05 +02:00
kvm_book3s_64.h KVM: PPC: Book3S HV: Remove code for PPC970 processors 2014-12-17 13:44:03 +01:00
kvm_book3s_asm.h KVM: PPC: Book3S PR: Handle Facility interrupt and FSCR 2014-05-30 14:26:22 +02:00
kvm_booke.h powerpc/kvm: common sw breakpoint instr across ppc 2014-09-22 10:11:36 +02:00
kvm_booke_hv_asm.h powerpc/booke64: Use SPRG_TLB_EXFRAME on bolted handlers 2014-03-19 19:57:15 -05:00
kvm_fpu.h
kvm_host.h KVM: PPC: Book3S HV: Improve H_CONFER implementation 2014-12-17 13:53:39 +01:00
kvm_para.h kvm/powerpc: move kvm_hypercall0() and friends to epapr_hypercall0() 2014-01-09 10:14:57 +01:00
kvm_ppc.h KVM: PPC: Book3S HV: Remove code for PPC970 processors 2014-12-17 13:44:03 +01:00
libata-portmap.h
linkage.h powerpc: Remove function descriptors and dot symbols on new ABI 2014-04-23 10:05:20 +10:00
local.h
local64.h
lppaca.h powerpc: Make slb_shadow a local 2013-12-09 11:40:25 +11:00
lv1call.h
machdep.h powerpc/mm: don't do tlbie for updatepp request with NO HPTE fault 2014-12-05 16:26:15 +11:00
macio.h
mc146818rtc.h
mce.h powerpc/book3s: Recover from MC in sapphire on SCOM read via MMIO. 2014-03-07 15:52:10 +11:00
mediabay.h
mman.h
mmu-8xx.h powerpc/8xx: Implement 16k pages 2014-11-07 18:10:42 -06:00
mmu-40x.h
mmu-44x.h
mmu-book3e.h KVM: PPC: Book3e: Add TLBSEL/TSIZE defines for MAS0/1 2014-07-28 15:23:13 +02:00
mmu-hash32.h
mmu-hash64.h powerpc/mm: don't do tlbie for updatepp request with NO HPTE fault 2014-12-05 16:26:15 +11:00
mmu.h powerpc: Remove MMU_FTR_SLB 2014-07-28 14:10:23 +10:00
mmu_context.h powerpc: Remove MMU_FTR_SLB 2014-07-28 14:10:23 +10:00
mmzone.h
module.h powerpc/modules: Create module_trampoline_target() 2014-04-23 10:05:34 +10:00
mpc5xxx.h
mpc6xx.h
mpc52xx.h
mpc52xx_psc.h serial/mpc52xx_uart: add MPC5125 PSC support 2013-06-03 10:22:35 -07:00
mpc85xx.h powerpc/fsl-booke: Add support for T2080/T2081 SoC 2014-07-02 17:32:41 -05:00
mpc5121.h powerpc/512x: clk: support MPC5121/5123/5125 SoC variants 2014-01-12 18:59:36 +01:00
mpc8260.h
mpic.h powerpc/msi: Fix compile error on mpc83xx 2013-08-07 18:38:04 -05:00
mpic_msgr.h
mpic_timer.h powerpc/mpic: add global timer support 2013-07-01 18:38:41 -05:00
msi_bitmap.h Revert "powerpc/fsl_msi: spread msi ints across different MSIRs" 2014-09-19 15:20:42 -05:00
mutex.h arch: Make __mutex_fastpath_lock_retval return whether fastpath succeeded or not 2013-06-26 12:10:55 +02:00
nvram.h
ohare.h
opal.h powernv/powerpc: Add winkle support for offline cpus 2014-12-15 10:46:41 +11:00
oprofile_impl.h powerpc: Remove oprofile RS64 support 2014-07-28 14:10:25 +10:00
paca.h powernv/powerpc: Add winkle support for offline cpus 2014-12-15 10:46:41 +11:00
page.h powerpc/mm: Switch to generic RCU get_user_pages_fast 2014-11-14 17:24:21 +11:00
page_32.h
page_64.h powerpc: Speed up clear_page by unrolling it 2014-10-02 16:04:21 +10:00
parport.h powerpc: use for_each_compatible_node() macro 2013-04-18 13:03:50 +10:00
pasemi_dma.h
pci-bridge.h powerpc/pci: Remove unused force_32bit_msi quirk 2014-11-24 14:36:02 +11:00
pci.h PCI: Turn pcibios_penalize_isa_irq() into a weak function 2014-05-27 16:23:58 -06:00
percpu.h
perf_event.h powerpc: Rename __get_SP() to current_stack_pointer() 2014-10-15 11:23:20 +11:00
perf_event_fsl_emb.h powerpc/perf: increase the perf HW events to 6 2013-08-07 18:38:03 -05:00
perf_event_server.h powerpc/perf: Pass the struct perf_events down to compute_mmcr() 2014-07-28 14:30:47 +10:00
pgalloc-32.h powerpc: Fix PTE page address mismatch in pgtable ctor/dtor 2013-12-10 11:25:05 +11:00
pgalloc-64.h powerpc: Fix PTE page address mismatch in pgtable ctor/dtor 2013-12-10 11:25:05 +11:00
pgalloc.h mmu_gather: move minimal range calculations into generic code 2014-11-17 10:12:42 +00:00
pgtable-ppc32.h powerpc/8xx: set PTE bit 22 off TLBmiss 2014-11-07 18:10:43 -06:00
pgtable-ppc64-4k.h powerpc/mm: Add missing pmd accessors 2014-11-14 17:24:21 +11:00
pgtable-ppc64-64k.h powerpc/mm: Add missing pmd accessors 2014-11-14 17:24:21 +11:00
pgtable-ppc64.h powerpc updates for 3.19 2014-12-11 17:48:14 -08:00
pgtable.h powerpc/mm: Switch to generic RCU get_user_pages_fast 2014-11-14 17:24:21 +11:00
plpar_wrappers.h powerpc/pseries: Use new defines when calling H_SET_MODE 2014-10-07 22:01:56 +11:00
pmac_feature.h
pmac_low_i2c.h
pmac_pfunc.h
pmc.h
pmi.h
pnv-pci.h powerpc/powerpc: Add new PCIe functions for allocating cxl interrupts 2014-10-08 20:15:44 +11:00
ppc-opcode.h powerpc updates for 3.19 batch 2 2014-12-19 12:57:45 -08:00
ppc-pci.h powerpc/eeh: No hotplug on permanently removed dev 2014-04-28 17:34:32 +10:00
ppc4xx.h
ppc4xx_ocm.h powerpc/44x: Support OCM(On Chip Memory) for APM821xx SoC and Bluestone board 2013-01-10 15:08:37 +11:00
ppc_asm.h PPC: Add _GLOBAL_TOC for 32bit 2014-06-26 13:19:42 +02:00
probes.h powerpc: Move the single step enable code to a generic path 2013-06-20 16:55:09 +10:00
processor.h powernv/powerpc: Add winkle support for offline cpus 2014-12-15 10:46:41 +11:00
prom.h powerpc: Remove stale function prototypes 2014-09-25 23:14:43 +10:00
ps3.h powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
ps3av.h
ps3gpu.h
ps3stor.h
pte-8xx.h powerpc/8xx: set PTE bit 22 off TLBmiss 2014-11-07 18:10:43 -06:00
pte-40x.h
pte-44x.h
pte-book3e.h powerpc: book3e: _PAGE_LENDIAN must be _PAGE_ENDIAN 2013-10-17 14:49:37 +02:00
pte-common.h mm: remove misleading ARCH_USES_NUMA_PROT_NONE 2014-10-09 22:25:52 -04:00
pte-fsl-booke.h booke/powerpc: define wimge shift mask to fix compilation error 2014-06-25 18:49:39 -05:00
pte-hash32.h
pte-hash64-4k.h
pte-hash64-64k.h powerpc/mm: Use read barrier when creating real_pte 2014-08-13 18:20:41 +10:00
pte-hash64.h powerpc/mm: Enable _PAGE_NUMA for book3s 2013-12-09 11:40:30 +11:00
ptrace.h powerpc/perf: Fix ABIv2 kernel backtraces 2014-09-09 19:02:45 +10:00
qe.h
qe_ic.h
reg.h powernv/powerpc: Add winkle support for offline cpus 2014-12-15 10:46:41 +11:00
reg_8xx.h
reg_a2.h powerpc: Remove platforms/wsp and associated pieces 2014-06-11 16:35:38 +10:00
reg_booke.h KVM: PPC: BOOKE: Emulate debug registers and exception 2014-09-22 10:11:33 +02:00
reg_fsl_emb.h powerpc/perf: Add e6500 PMU driver 2013-08-07 18:38:04 -05:00
rheap.h
rio.h powerpc: Remove stale function prototypes 2014-09-25 23:14:43 +10:00
rtas.h powerpc/le: Enable RTAS events support 2014-04-07 10:33:12 +10:00
rtc.h
runlatch.h
scom.h powerpc/scom: Enable 64-bit addresses 2013-11-06 14:13:49 +11:00
sections.h Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-06-10 18:54:22 -07:00
serial.h
setjmp.h
setup.h powerpc: Remove bootmem allocator 2014-11-10 09:59:25 +11:00
sfp-machine.h powerpc: Put FP/VSX and VR state into structures 2013-10-11 17:26:49 +11:00
shmparam.h
signal.h powerpc/tm: Fix userspace stack corruption on signal delivery for active transactions 2013-06-01 08:29:23 +10:00
smp.h powerpc/kvm/book3s_hv: Rework the secondary inhibit code 2014-05-28 13:35:34 +10:00
smu.h
sparsemem.h
spinlock.h powerpc: Add smp_mb() to arch_spin_is_locked() 2014-08-13 15:13:26 +10:00
spinlock_types.h
spu.h powerpc/cell: Move spu_handle_mm_fault() out of cell platform 2014-10-08 20:14:54 +11:00
spu_csa.h
spu_info.h
spu_priv1.h
sstep.h powerpc: Emulate icbi, mcrf and conditional-trap instructions 2014-09-25 23:14:51 +10:00
string.h powerpc: memcpy optimization for 64bit LE 2014-04-30 15:26:18 +10:00
swab.h powerpc: Remove __arch_swab* 2014-06-24 12:43:15 +10:00
swiotlb.h
switch_to.h powerpc/perf: Ensure all EBB register state is cleared on fork() 2014-06-11 17:03:41 +10:00
synch.h
syscall.h powerpc: add little endian flag to syscall_get_arch() 2014-12-12 20:14:08 +11:00
syscalls.h powerpc: trim the crap from syscalls.h 2013-02-03 18:16:11 -05:00
systbl.h powerpc: Wire up sys_execveat() syscall 2014-12-29 15:44:53 +11:00
tce.h
termios.h
thread_info.h powerpc: Work around gcc bug in current_thread_info() 2015-01-12 16:40:02 +11:00
time.h KVM: PPC: BOOK3S: PR: Emulate virtual timebase register 2014-07-28 15:21:50 +02:00
timex.h powerpc/8xx: mfspr SPRN_TBRx in lieu of mftb/mftbu is not supported 2013-11-22 16:56:48 -06:00
tlb.h mmu_gather: move minimal range calculations into generic code 2014-11-17 10:12:42 +00:00
tlbflush.h powerpc/mm: don't do tlbie for updatepp request with NO HPTE fault 2014-12-05 16:26:15 +11:00
tm.h Merge branch 'kvm-ppchv-next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc into kvm-next 2014-03-29 15:44:05 +01:00
topology.h Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc 2014-06-10 18:54:22 -07:00
trace.h powernv: Add OPAL tracepoints 2014-07-11 16:06:08 +10:00
tsi108.h powerpc: Remove stale function prototypes 2014-09-25 23:14:43 +10:00
tsi108_irq.h
tsi108_pci.h
types.h
uaccess.h powerpc/uaccess: Allow get_user() with bitwise types 2014-12-18 19:11:09 +11:00
ucc.h
ucc_fast.h
ucc_slow.h
udbg.h powerpc: Remove stale function prototypes 2014-09-25 23:14:43 +10:00
uic.h
unaligned.h powerpc: Make unaligned accesses endian-safe for powerpc 2013-12-30 14:02:29 +11:00
uninorth.h
unistd.h powerpc: Wire up sys_execveat() syscall 2014-12-29 15:44:53 +11:00
uprobes.h uprobes/powerpc: Kill arch_uprobe->ainsn 2013-11-20 16:31:01 +01:00
user.h
vdso.h powerpc: Link VDSOs at 0x0 2014-02-17 11:19:37 +11:00
vdso_datapage.h
vga.h powerpc: Remove unused vgacon_remap_base & fix build break 2014-11-10 09:59:31 +11:00
vio.h powerpc: Delete non-required instances of include <linux/init.h> 2014-01-15 13:46:44 +11:00
word-at-a-time.h powerpc: ppc64le optimised word at a time 2014-09-30 14:59:13 +10:00
xics.h powerpc: Replace __get_cpu_var uses 2014-11-03 12:12:32 +11:00
xilinx_intc.h
xilinx_pci.h
xmon.h
xor.h powerpc: Add VMX optimised xor for RAID5 2013-10-30 16:02:28 +11:00