linux/arch/arm64/include/asm
Nathan Chancellor 0738c8b591 arm64/neon: Disable -Wincompatible-pointer-types when building with Clang
After commit cc9f8349cb ("arm64: crypto: add NEON accelerated XOR
implementation"), Clang builds for arm64 started failing with the
following error message.

arch/arm64/lib/xor-neon.c:58:28: error: incompatible pointer types
assigning to 'const unsigned long *' from 'uint64_t *' (aka 'unsigned
long long *') [-Werror,-Wincompatible-pointer-types]
                v3 = veorq_u64(vld1q_u64(dp1 +  6), vld1q_u64(dp2 + 6));
                                         ^~~~~~~~
/usr/lib/llvm-9/lib/clang/9.0.0/include/arm_neon.h:7538:47: note:
expanded from macro 'vld1q_u64'
  __ret = (uint64x2_t) __builtin_neon_vld1q_v(__p0, 51); \
                                              ^~~~

There has been quite a bit of debate and triage that has gone into
figuring out what the proper fix is, viewable at the link below, which
is still ongoing. Ard suggested disabling this warning with Clang with a
pragma so no neon code will have this type of error. While this is not
at all an ideal solution, this build error is the only thing preventing
KernelCI from having successful arm64 defconfig and allmodconfig builds
on linux-next. Getting continuous integration running is more important
so new warnings/errors or boot failures can be caught and fixed quickly.

Link: https://github.com/ClangBuiltLinux/linux/issues/283
Suggested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
2019-02-18 10:54:47 +00:00
..
xen arm64/xen: fix xen-swiotlb cache flushing 2019-01-23 22:14:56 +01:00
acenv.h
acpi.h arm64: acpi: Prepare for longer MADTs 2018-11-27 18:00:14 +00:00
alternative.h arm64: Avoid flush_icache_range() in alternatives patching code 2018-06-27 18:21:53 +01:00
arch_gicv3.h
arch_timer.h
arm-cci.h
arm_dsu_pmu.h
asm-bug.h
asm-offsets.h
asm-prototypes.h arm64: asm-prototypes: Fix fat-fingered typo in comment 2019-01-10 11:11:46 +00:00
asm-uaccess.h
assembler.h arm64: preempt: Fix big-endian when checking preempt count in assembly 2018-12-11 20:07:03 +00:00
atomic.h atomics/treewide: Make conditional inc/dec ops optional 2018-06-21 14:25:24 +02:00
atomic_ll_sc.h arm64: cmpxchg: Use "K" instead of "L" for ll/sc immediate constraint 2018-12-07 17:28:13 +00:00
atomic_lse.h arm64: Avoid masking "old" for LSE cmpxchg() implementation 2018-12-07 17:28:01 +00:00
barrier.h arm64: Add support for SB barrier and patch in over DSB; ISB sequences 2018-12-06 16:47:04 +00:00
bitops.h locking/atomics/arm64, arm64/bitops: Include <asm-generic/bitops/ext2-atomic-setbit.h> 2018-06-21 12:52:12 +02:00
bitrev.h
boot.h
brk-imm.h kasan, arm64: add brk handler for inline instrumentation 2018-12-28 12:11:44 -08:00
bug.h
cache.h kasan, arm64: remove redundant ARCH_SLAB_MINALIGN define 2019-01-16 12:09:11 +00:00
cacheflush.h arm64: IPI each CPU after invalidating the I-cache for kernel mappings 2018-07-05 17:24:36 +01:00
checksum.h
clocksource.h
cmpxchg.h arm64: Avoid masking "old" for LSE cmpxchg() implementation 2018-12-07 17:28:01 +00:00
compat.h Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2018-10-25 11:14:36 -07:00
cpu.h
cpu_ops.h
cpucaps.h arm64: cpufeature: Reduce number of pointer auth CPU caps from 6 to 4 2018-12-13 16:42:47 +00:00
cpufeature.h arm64: cpufeature: Rework ptr auth hwcaps using multi_entry_cap_matches 2018-12-13 16:42:47 +00:00
cpuidle.h
cputype.h arm64: capabilities: Merge duplicate Cavium erratum entries 2018-12-06 11:47:44 +00:00
current.h
daifflags.h arm64: daifflags: Use irqflags functions for daifflags 2018-10-03 16:08:52 +01:00
dcc.h
debug-monitors.h
device.h arm64/xen: fix xen-swiotlb cache flushing 2019-01-23 22:14:56 +01:00
dma-mapping.h arm64: default to the direct mapping in get_arch_dma_ops 2018-12-19 18:00:12 +01:00
dmi.h
efi.h efi: Deduplicate efi_open_volume() 2018-07-22 14:13:43 +02:00
elf.h arm64: mm: Allow forcing all userspace addresses to 52-bit 2018-12-10 18:42:18 +00:00
esr.h arm64: add pointer authentication register bits 2018-12-13 16:42:45 +00:00
exception.h
exec.h
extable.h
fb.h
fixmap.h
fpsimd.h arm64: move sve_user_{enable,disable} to <asm/fpsimd.h> 2018-07-12 14:40:39 +01:00
fpsimdmacros.h arm64/sve: Write ZCR_EL1 on context switch only if changed 2018-05-17 18:19:53 +01:00
ftrace.h arm64 festive updates for 4.21 2018-12-25 17:41:56 -08:00
futex.h Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
hardirq.h
hugetlb.h hugetlb: introduce generic version of huge_ptep_get 2018-10-26 16:26:34 -07:00
hw_breakpoint.h perf/hw_breakpoint: Remove default hw_breakpoint_arch_parse() 2018-06-26 09:07:58 +02:00
hwcap.h
hypervisor.h
image.h arm64: add image head flag definitions 2018-12-06 14:38:51 +00:00
insn.h arm64/insn: add support for emitting ADR/ADRP instructions 2018-11-27 18:47:33 +00:00
io.h arm64: io: Ensure value passed to __iormb() is held in a 64-bit register 2018-11-29 16:36:18 +00:00
irq.h arm64: Use the new GENERIC_IRQ_MULTI_HANDLER 2018-08-03 12:14:09 +02:00
irq_work.h
irqflags.h
jump_label.h arm64/kernel: jump_label: Switch to relative references 2018-09-27 17:56:47 +02:00
kasan.h kasan: add tag related helper functions 2018-12-28 12:11:43 -08:00
Kbuild arm64: preempt: Provide our own implementation of asm/preempt.h 2018-12-07 12:35:53 +00:00
kernel-pgtable.h arm64/mm: Separate boot-time page tables from swapper_pg_dir 2018-09-25 15:10:54 +01:00
kexec.h arm64: kexec_file: allow for loading Image-format kernel 2018-12-06 14:38:52 +00:00
kgdb.h
kprobes.h arm64/kprobes: Remove jprobe implementation 2018-06-21 12:33:07 +02:00
kvm_arm.h * ARM: selftests improvements, large PUD support for HugeTLB, 2018-12-26 11:46:28 -08:00
kvm_asm.h arm/arm64: KVM: Add ARM_EXCEPTION_IS_TRAP macro 2018-12-19 17:47:53 +00:00
kvm_coproc.h
kvm_emulate.h arm64: KVM: Consistently advance singlestep when emulating instructions 2018-12-18 14:11:37 +00:00
kvm_host.h arm/arm64: KVM: Allow a VCPU to fully reset itself 2019-02-07 11:44:13 +00:00
kvm_hyp.h arm64: KVM: Add synchronization on translation regime change for erratum 1165522 2018-12-10 11:59:07 +00:00
kvm_mmio.h
kvm_mmu.h KVM: arm64: Add support for creating PUD hugepages at stage 2 2018-12-18 15:14:49 +00:00
linkage.h
lse.h
memblock.h
memory.h arm64, mm, efi: Account for GICv3 LPI tables in static memblock reserve table 2019-02-16 15:02:03 +01:00
mmu.h arm64: kpti: Update arm64_kernel_use_ng_mappings() when forced on 2019-01-16 11:55:11 +00:00
mmu_context.h arm64: Kconfig: Re-jig CONFIG options for 52-bit VA 2018-12-10 18:42:18 +00:00
mmzone.h
module.h arm64/module: switch to ADRP/ADD sequences for PLT entries 2018-11-27 19:00:45 +00:00
neon-intrinsics.h arm64/neon: Disable -Wincompatible-pointer-types when building with Clang 2019-02-18 10:54:47 +00:00
neon.h arm64: drop unused kernel_neon_begin_partial() macro 2018-07-31 10:13:50 +01:00
numa.h arm64: numa: separate out updates to percpu nodeid and NUMA node cpumap 2018-07-06 13:18:18 +01:00
page-def.h
page.h arm64: Kconfig: Remove ARCH_HAS_HOLES_MEMORYMODEL 2018-09-21 12:02:45 +01:00
paravirt.h x86/paravirt: Use a single ops structure 2018-09-03 16:50:35 +02:00
pci.h PCI: remove PCI_DMA_BUS_IS_PHYS 2018-05-07 07:15:41 +02:00
percpu.h arm64: percpu: Fix LSE implementation of value-returning pcpu atomics 2018-12-12 14:43:35 +00:00
perf_event.h arm64: perf: Treat EXCLUDE_EL* bit definitions as unsigned 2018-12-13 15:34:44 +00:00
pgalloc.h mm: treewide: remove unused address argument from pte_alloc functions 2019-01-04 13:13:47 -08:00
pgtable-hwdef.h kasan, arm64: enable top byte ignore for the kernel 2018-12-28 12:11:43 -08:00
pgtable-prot.h arm64: kpti: Avoid rewriting early page tables when KASLR is enabled 2019-01-10 17:49:35 +00:00
pgtable-types.h
pgtable.h * ARM: selftests improvements, large PUD support for HugeTLB, 2018-12-26 11:46:28 -08:00
pointer_auth.h arm64: ptr auth: Move per-thread keys from thread_info to thread_struct 2018-12-13 16:42:47 +00:00
preempt.h arm64: preempt: Provide our own implementation of asm/preempt.h 2018-12-07 12:35:53 +00:00
probes.h
proc-fns.h
processor.h arm64: ptr auth: Move per-thread keys from thread_info to thread_struct 2018-12-13 16:42:47 +00:00
ptdump.h
ptrace.h KVM updates for v4.20 2018-10-25 17:57:35 -07:00
sdei.h arm64: Add stack information to on_accessible_stack 2018-07-26 11:36:07 +01:00
seccomp.h
sections.h
shmparam.h
signal32.h
simd.h arm64: neon: Fix function may_use_simd() return error status 2018-07-11 17:02:02 +01:00
smp.h arm64: smp: Fix compilation error 2019-01-03 15:14:32 +00:00
smp_plat.h
sparsemem.h
spinlock.h arm64: locking: Replace ticket lock implementation with qspinlock 2018-07-05 10:05:06 +01:00
spinlock_types.h arm64: locking: Replace ticket lock implementation with qspinlock 2018-07-05 10:05:06 +01:00
stack_pointer.h
stackprotector.h arm64: enable per-task stack canaries 2018-12-12 18:45:31 +00:00
stacktrace.h arm64: Add stack information to on_accessible_stack 2018-07-26 11:36:07 +01:00
stage2_pgtable.h KVM: arm64: Clarify explanation of STAGE2_PGTABLE_LEVELS 2018-12-18 15:14:50 +00:00
stat.h y2038: globally rename compat_time to old_time32 2018-08-27 14:48:48 +02:00
string.h arm64: lib: use C string functions with KASAN enabled 2018-10-26 16:25:18 -07:00
suspend.h
sync_bitops.h
syscall.h arm64: implement syscall wrappers 2018-07-12 14:49:48 +01:00
syscall_wrapper.h arm64: implement syscall wrappers 2018-07-12 14:49:48 +01:00
sysreg.h arm64 festive updates for 4.21 2018-12-25 17:41:56 -08:00
system_misc.h signal/arm64: Push siginfo generation into arm64_notify_die 2018-09-27 21:52:54 +02:00
thread_info.h arm64: ptr auth: Move per-thread keys from thread_info to thread_struct 2018-12-13 16:42:47 +00:00
timex.h
tlb.h arm64: tlb: Avoid synchronous TLBIs when freeing page tables 2018-09-11 16:49:12 +01:00
tlbflush.h arm64 festive updates for 4.21 2018-12-25 17:41:56 -08:00
topology.h sched/topology, arch/arm64: Rebuild the sched_domain hierarchy when the CPU capacity changes 2018-09-10 11:05:47 +02:00
traps.h signal/arm64: Add and use arm64_force_sig_ptrace_errno_trap 2018-09-27 21:55:15 +02:00
uaccess.h Remove 'type' argument from access_ok() function 2019-01-03 18:57:57 -08:00
unistd.h arm64: compat: Hook up io_pgetevents() for 32-bit tasks 2019-01-04 14:18:01 +00:00
unistd32.h arm64: compat: Hook up io_pgetevents() for 32-bit tasks 2019-01-04 14:18:01 +00:00
uprobes.h
vdso.h
vdso_datapage.h
virt.h
vmap_stack.h
word-at-a-time.h
xor.h arm64: crypto: add NEON accelerated XOR implementation 2018-12-06 16:47:06 +00:00