linux/arch/arm64/include/asm
Christopher Covington d9ff80f83e arm64: Work around Falkor erratum 1009
During a TLB invalidate sequence targeting the inner shareable domain,
Falkor may prematurely complete the DSB before all loads and stores using
the old translation are observed. Instruction fetches are not subject to
the conditions of this erratum. If the original code sequence includes
multiple TLB invalidate instructions followed by a single DSB, onle one of
the TLB instructions needs to be repeated to work around this erratum.
While the erratum only applies to cases in which the TLBI specifies the
inner-shareable domain (*IS form of TLBI) and the DSB is ISH form or
stronger (OSH, SYS), this changes applies the workaround overabundantly--
to local TLBI, DSB NSH sequences as well--for simplicity.

Based on work by Shanker Donthineni <shankerd@codeaurora.org>

Signed-off-by: Christopher Covington <cov@codeaurora.org>
Acked-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2017-02-01 15:41:50 +00:00
..
xen arm/arm64: xen: Move shared architecture headers to include/xen/arm 2016-12-02 11:49:55 -08:00
acenv.h ARM64 / ACPI: Get RSDP and ACPI boot-time tables 2015-03-25 11:49:30 +00:00
acpi.h Merge branches 'acpica' and 'acpi-scan' 2016-12-22 14:34:24 +01:00
alternative.h arm64: Fix circular include of asm/lse.h through linux/jump_label.h 2016-11-05 20:59:06 +00:00
arch_gicv3.h irqchip/gic-v3-its: Specialise readq and writeq accesses 2016-11-29 09:14:48 +00:00
arch_timer.h arm64: arch_timer: Work around QorIQ Erratum A-008585 2016-09-23 17:19:25 +01:00
arm-cci.h arm-cci: Get rid of secure transactions for PMU driver 2015-03-27 13:44:35 +00:00
asm-offsets.h
asm-uaccess.h arm64: don't pull uaccess.h into *.S 2016-12-26 13:05:17 -05:00
assembler.h arm64: Introduce uaccess_{disable,enable} functionality based on TTBR0_EL1 2016-11-21 18:48:53 +00:00
atomic_ll_sc.h locking/atomic, arch/arm64: Implement atomic{,64}_fetch_{add,sub,and,andnot,or,xor}{,_relaxed,_acquire,_release}() 2016-06-16 10:48:21 +02:00
atomic_lse.h arm64: lse: convert lse alternatives NOP padding to use __nops 2016-09-09 18:12:34 +01:00
atomic.h locking/atomic: Remove linux/atomic.h:atomic_fetch_or() 2016-06-16 10:48:32 +02:00
barrier.h arm64: barriers: introduce nops and __nops macros for NOP sequences 2016-09-09 18:12:28 +01:00
bitops.h
bitrev.h ARM: 8189/1: arm64:add bitrev.h file to support rbit instruction 2014-12-22 16:47:32 +00:00
boot.h arm64: allow kernel Image to be loaded anywhere in physical memory 2016-02-18 18:16:53 +00:00
brk-imm.h arm64: move brk immediate argument definitions to separate header 2016-02-23 17:43:25 +00:00
bug.h arm64: move brk immediate argument definitions to separate header 2016-02-23 17:43:25 +00:00
cache.h arm64: Increase the max granular size 2015-10-28 19:09:17 +00:00
cacheflush.h arm64: Remove I-cache invalidation from flush_cache_range() 2016-11-23 18:05:52 +00:00
cachetype.h arm64: cachetype: fix definitions of ICACHEF_* flags 2015-10-28 18:32:12 +00:00
checksum.h arm64: Implement optimised IP checksum helpers 2016-06-21 15:09:11 +01:00
clocksource.h arm/arm64: arch_timer: Use archdata to indicate vdso suitability 2016-09-23 17:19:25 +01:00
cmpxchg.h arm64: lse: convert lse alternatives NOP padding to use __nops 2016-09-09 18:12:34 +01:00
compat.h arm64: do not include ptrace.h from compat.h 2015-11-17 13:24:36 +00:00
compiler.h
cpu_ops.h ARM64: kernel: unify ACPI and DT cpus initialization 2015-05-19 16:09:29 +01:00
cpu.h arm64: cpuinfo: Expose MIDR_EL1 and REVIDR_EL1 to sysfs 2016-07-12 16:09:37 +01:00
cpucaps.h arm64: Work around Falkor erratum 1009 2017-02-01 15:41:50 +00:00
cpufeature.h arm64: cpufeature: Track user visible fields 2017-01-10 17:13:36 +00:00
cpuidle.h arm64: kernel: rename __cpu_suspend to keep it aligned with arm 2015-06-19 14:46:39 +01:00
cputype.h arm64: Define Falkor v1 CPU 2017-01-27 13:52:10 +00:00
current.h arm64: restore get_current() optimisation 2017-01-04 16:26:18 +00:00
dcc.h arm64: dcc: simplify accessors 2016-09-09 11:41:13 +01:00
debug-monitors.h arm64: Add uprobe support 2016-11-07 18:15:21 +00:00
device.h arm64: introduce is_device_dma_coherent 2014-12-04 12:41:49 +00:00
dma-mapping.h arm64: Allow for different DMA and CPU bus offsets 2016-06-06 13:48:54 -07:00
dmi.h arm64: dmi: Add SMBIOS/DMI support 2014-11-05 09:03:25 +01:00
efi.h arm64 updates for 4.10: 2016-12-13 16:39:21 -08:00
elf.h arm64: introduce mm context flag to keep 32 bit task information 2016-11-07 18:15:21 +00:00
esr.h arm64: Work around systems with mismatched cache line sizes 2016-09-09 15:03:29 +01:00
exception.h arch, ftrace: for KASAN put hard/soft IRQ entries into separate sections 2016-03-25 16:37:42 -07:00
exec.h arm64: suspend: Reconfigure PSTATE after resume from idle 2016-10-20 09:50:54 +01:00
fb.h
fixmap.h arm64: Remove fixmap include fragility 2016-02-26 15:22:53 +00:00
fpsimd.h
fpsimdmacros.h arm64: Avoid breakage caused by .altmacro in fpsimd save/restore macros 2015-01-29 17:24:39 +00:00
ftrace.h arm64: Fix misspellings in comments. 2016-03-04 18:19:17 +00:00
futex.h arm64: Factor out PAN enabling/disabling into separate uaccess_* macros 2016-11-21 17:33:47 +00:00
hardirq.h arm64: kernel: implement ACPI parking protocol 2016-02-16 15:12:32 +00:00
hugetlb.h arm64: hugetlb: add support for PTE contiguous bit 2015-12-21 17:26:00 +00:00
hw_breakpoint.h arm64: Allow hw watchpoint of length 3,5,6 and 7 2016-11-18 17:26:14 +00:00
hwcap.h arm64/HWCAP: Use system wide safe values 2015-10-21 15:35:58 +01:00
hypervisor.h
insn.h arm64: Add helper to decode register from instruction 2017-01-10 17:11:23 +00:00
io.h arm, arm64: don't include blk_types.h in <asm/io.h> 2016-11-01 09:43:26 -06:00
irq_work.h arm64: force CONFIG_SMP=y and remove redundant #ifdefs 2015-07-27 11:08:40 +01:00
irq.h arm64: remove irq_count and do_softirq_own_stack() 2015-12-21 17:26:01 +00:00
irqflags.h arm64: debug: remove unused local_dbg_{enable, disable} macros 2016-07-19 16:59:40 +01:00
jump_label.h locking/static_keys: Add a new static_key interface 2015-08-03 11:34:15 +02:00
kasan.h arm64: move kernel image to base of vmalloc area 2016-02-18 18:16:44 +00:00
Kbuild arm64 updates for 4.10: 2016-12-13 16:39:21 -08:00
kernel-pgtable.h arm64: Introduce uaccess_{disable,enable} functionality based on TTBR0_EL1 2016-11-21 18:48:53 +00:00
kexec.h arm64/kexec: Add core kexec support 2016-06-27 16:31:25 +01:00
kgdb.h arm64: kgdb: Match pstate size with gdbserver protocol 2016-06-16 19:20:51 +01:00
kprobes.h arm64: Remove stack duplicating code from jprobes 2016-08-11 17:38:16 +01:00
kvm_arm.h arm64: KVM: Rename HCR_VA to HCR_VSE 2016-09-08 12:53:00 +02:00
kvm_asm.h arm/arm64: KVM: Perform local TLB invalidation when multiplexing vcpus on a single CPU 2016-11-04 17:56:28 +00:00
kvm_coproc.h arm64: KVM: common infrastructure for handling AArch32 CP14/CP15 2014-07-11 04:57:44 -07:00
kvm_emulate.h arm64: KVM: Take S1 walks into account when determining S2 write faults 2016-10-21 17:25:47 +01:00
kvm_host.h arm/arm64: KVM: Perform local TLB invalidation when multiplexing vcpus on a single CPU 2016-11-04 17:56:28 +00:00
kvm_hyp.h arm64: KVM: Inject a vSerror if detecting a bad GICV access at EL2 2016-09-08 12:53:00 +02:00
kvm_mmio.h KVM: arm/arm64: Export mmio_read/write_bus 2016-05-20 15:39:42 +02:00
kvm_mmu.h arm64: Use __pa_symbol for kernel symbols 2017-01-12 15:05:39 +00:00
kvm_psci.h
linkage.h
lse.h arm64: Fix circular include of asm/lse.h through linux/jump_label.h 2016-11-05 20:59:06 +00:00
memblock.h
memory.h arm64: Add support for CONFIG_DEBUG_VIRTUAL 2017-01-12 15:05:39 +00:00
mmu_context.h arm64: Use __pa_symbol for kernel symbols 2017-01-12 15:05:39 +00:00
mmu.h arm64: introduce mm context flag to keep 32 bit task information 2016-11-07 18:15:21 +00:00
mmzone.h arm64, numa: Add NUMA support for arm64 platforms. 2016-04-15 18:06:09 +01:00
module.h arm64: kaslr: fix breakage with CONFIG_MODVERSIONS=y 2016-10-17 12:42:16 +01:00
neon.h arm64: Support systems without FP/ASIMD 2016-11-16 18:05:10 +00:00
numa.h ACPI/NUMA: Do not map pxm to node when NUMA is turned off 2016-12-15 11:32:32 +01:00
page.h arm64: move {PAGE,CONT}_SHIFT into Kconfig 2016-06-03 10:57:18 +01:00
paravirt.h arm64: introduce CONFIG_PARAVIRT, PARAVIRT_TIME_ACCOUNTING and pv_time_ops 2015-12-21 14:40:54 +00:00
pci.h PCI: Move pci_dma_* helpers to common code 2016-03-07 10:40:02 -06:00
percpu.h arm64: factor out current_stack_pointer 2016-11-11 18:25:43 +00:00
perf_event.h arm64 updates for 4.10: 2016-12-13 16:39:21 -08:00
pgalloc.h arm64: get rid of superfluous __GFP_REPEAT 2016-06-24 17:23:52 -07:00
pgtable-hwdef.h arm64: simplify sysreg manipulation 2016-09-09 11:43:50 +01:00
pgtable-prot.h arm64: Introduce execute-only page access permissions 2016-08-25 18:00:29 +01:00
pgtable-types.h arm64: always use STRICT_MM_TYPECHECKS 2016-05-03 09:58:38 +01:00
pgtable.h arm64: Improve detection of user/non-user mappings in set_pte(_at) 2017-01-31 16:44:07 +00:00
probes.h arm64: Remove reference to asm/opcodes.h 2016-12-05 10:42:34 +00:00
proc-fns.h arm64: kill flush_cache_all() 2015-05-19 15:27:42 +01:00
processor.h arm64: Remove useless UAO IPI and describe how this gets enabled 2017-01-10 12:38:06 +00:00
ptdump.h arm64: dump: Add checking for writable and exectuable pages 2016-11-07 18:15:04 +00:00
ptrace.h arm64: Add uprobe support 2016-11-07 18:15:21 +00:00
seccomp.h arm64: add seccomp support 2014-11-28 10:24:59 +00:00
sections.h arm64: vmlinux.ld: Add mmuoff data sections and move mmuoff text into idmap 2016-08-25 18:00:30 +01:00
shmparam.h arm64: fix COMPAT_SHMLBA definition for large pages 2015-12-02 14:00:10 +00:00
signal32.h arm64: Use get_signal() signal_setup_done() 2014-08-06 12:56:16 +02:00
smp_plat.h arm64: remove dead-code depending on CONFIG_UP_LATE_INIT 2015-07-29 18:32:09 +01:00
smp.h arm64: smp: Prevent raw_smp_processor_id() recursion 2016-12-02 10:50:57 +00:00
sparsemem.h arm64: mm: update max pa bits to 48 2014-08-19 20:23:02 +01:00
spinlock_types.h arm64: include linux/types.h in asm/spinlock_types.h 2015-07-27 11:09:34 +01:00
spinlock.h arm64 updates for 4.9: 2016-10-03 08:58:35 -07:00
stack_pointer.h arm64: factor out current_stack_pointer 2016-11-11 18:25:43 +00:00
stackprotector.h arm64: Add CONFIG_CC_STACKPROTECTOR 2014-07-09 12:23:48 +01:00
stacktrace.h arm64: ftrace: fix a stack tracer's output under function graph tracer 2015-12-21 17:26:02 +00:00
stage2_pgtable-nopmd.h kvm: arm64: Get rid of fake page table levels 2016-04-21 14:58:21 +02:00
stage2_pgtable-nopud.h kvm: arm64: Get rid of fake page table levels 2016-04-21 14:58:21 +02:00
stage2_pgtable.h kvm: arm64: Get rid of fake page table levels 2016-04-21 14:58:21 +02:00
stat.h
string.h arm64: add KASAN support 2015-10-12 17:46:36 +01:00
suspend.h arm64: move sp_el0 and tpidr_el1 into cpu_suspend_ctx 2016-11-11 18:25:44 +00:00
sync_bitops.h
syscall.h arm64: Add audit support 2014-07-10 11:06:00 +01:00
sysreg.h arm64: cpufeature: Expose CPUID registers by emulation 2017-01-12 12:31:09 +00:00
system_misc.h arm64: cleanup unused UDBG_* define 2016-08-31 13:45:46 +01:00
thread_info.h arm64: Introduce uaccess_{disable,enable} functionality based on TTBR0_EL1 2016-11-21 18:48:53 +00:00
timex.h
tlb.h arm64: tlbflush: avoid flushing when fullmm == 1 2015-10-07 11:56:21 +01:00
tlbflush.h arm64: Work around Falkor erratum 1009 2017-02-01 15:41:50 +00:00
topology.h arm64, numa: Add NUMA support for arm64 platforms. 2016-04-15 18:06:09 +01:00
traps.h arm64: Create sections.h 2016-08-25 18:00:29 +01:00
uaccess.h arm64: don't pull uaccess.h into *.S 2016-12-26 13:05:17 -05:00
unistd32.h arm64: unistd32.h: wire up missing syscalls for compat tasks 2016-06-01 18:48:20 +01:00
unistd.h arm64: unistd32.h: wire up missing syscalls for compat tasks 2016-06-01 18:48:20 +01:00
uprobes.h arm64: Add uprobe support 2016-11-07 18:15:21 +00:00
vdso_datapage.h arm64: Add support for CLOCK_MONOTONIC_RAW in clock_gettime() vDSO 2016-07-12 16:06:32 +01:00
vdso.h
virt.h arm64/kvm: use {read,write}_sysreg() 2016-09-09 11:42:27 +01:00
word-at-a-time.h Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00