mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-04 08:15:44 +00:00
60815cf2e0
As discussed on LKML http://marc.info/?i=54611D86.4040306%40de.ibm.com ACCESS_ONCE might fail with specific compilers for non-scalar accesses. Here is a set of patches to tackle that problem. The first patch introduce READ_ONCE and ASSIGN_ONCE. If the data structure is larger than the machine word size memcpy is used and a warning is emitted. The next patches fix up several in-tree users of ACCESS_ONCE on non-scalar types. This merge does not yet contain a patch that forces ACCESS_ONCE to work only on scalar types. This is targetted for the next merge window as Linux next already contains new offenders regarding ACCESS_ONCE vs. non-scalar types. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.14 (GNU/Linux) iQIcBAABAgAGBQJUkrVGAAoJEBF7vIC1phx8stkP/2LmN5y6LOseoEW06xa5MX4m cbIKsZNtsGHl7EDcTzzuWs6Sq5/Cj7V3yzeBF7QGbUKOqvFWU3jvpUBCCfjMg37C 77/Vf0ZPrxTXXxeJ4Ykdy2CGvuMtuYY9TWkrRNKmLU0xex7lGblEzCt9z6+mZviw 26/DN8ctjkHRvIUAi+7RfQBBc3oSMYAC1mzxYKBAsAFLV+LyFmsGU/4iofZMAsdt XFyVXlrLn0Bjx/MeceGkOlMDiVx4FnfccfFaD4hhuTLBJXWitkUK/MRa4JBiXWzH agY8942A8/j9wkI2DFp/pqZYqA/sTXLndyOWlhE//ZSti0n0BSJaOx3S27rTLkAc 5VmZEVyIrS3hyOpyyAi0sSoPkDnjeCHmQg9Rqn34/poKLd7JDrW2UkERNCf/T3eh GI2rbhAlZz3v5mIShn8RrxzslWYmOObpMr3HYNUdRk8YUfTf6d6aZ3txHp2nP4mD VBAEzsvP9rcVT2caVhU2dnBzeaZAj3zeDxBtjcb3X2osY9tI7qgLc9Fa/fWKgILk 2evkLcctsae2mlLNGHyaK3Dm/ZmYJv+57MyaQQEZNfZZgeB1y4k0DkxH4w1CFmCi s8XlH5voEHgnyjSQXXgc/PNVlkPAKr78ZyTiAfiKmh8rpe41/W4hGcgao7L9Lgiu SI0uSwKibuZt4dHGxQuG =IQ5o -----END PGP SIGNATURE----- Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/borntraeger/linux Pull ACCESS_ONCE cleanup preparation from Christian Borntraeger: "kernel: Provide READ_ONCE and ASSIGN_ONCE As discussed on LKML http://marc.info/?i=54611D86.4040306%40de.ibm.com ACCESS_ONCE might fail with specific compilers for non-scalar accesses. Here is a set of patches to tackle that problem. The first patch introduce READ_ONCE and ASSIGN_ONCE. If the data structure is larger than the machine word size memcpy is used and a warning is emitted. The next patches fix up several in-tree users of ACCESS_ONCE on non-scalar types. This does not yet contain a patch that forces ACCESS_ONCE to work only on scalar types. This is targetted for the next merge window as Linux next already contains new offenders regarding ACCESS_ONCE vs. non-scalar types" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/borntraeger/linux: s390/kvm: REPLACE barrier fixup with READ_ONCE arm/spinlock: Replace ACCESS_ONCE with READ_ONCE arm64/spinlock: Replace ACCESS_ONCE READ_ONCE mips/gup: Replace ACCESS_ONCE with READ_ONCE x86/gup: Replace ACCESS_ONCE with READ_ONCE x86/spinlock: Replace ACCESS_ONCE with READ_ONCE mm: replace ACCESS_ONCE with READ_ONCE or barriers kernel: Provide READ_ONCE and ASSIGN_ONCE |
||
---|---|---|
.. | ||
xen | ||
alternative-asm.h | ||
alternative.h | ||
arch_timer.h | ||
asm-offsets.h | ||
assembler.h | ||
atomic.h | ||
barrier.h | ||
bitops.h | ||
cache.h | ||
cacheflush.h | ||
cachetype.h | ||
cmpxchg.h | ||
compat.h | ||
compiler.h | ||
cpu_ops.h | ||
cpu.h | ||
cpufeature.h | ||
cpuidle.h | ||
cputable.h | ||
cputype.h | ||
debug-monitors.h | ||
device.h | ||
dma-mapping.h | ||
dmi.h | ||
efi.h | ||
elf.h | ||
esr.h | ||
exception.h | ||
exec.h | ||
fb.h | ||
fixmap.h | ||
fpsimd.h | ||
fpsimdmacros.h | ||
ftrace.h | ||
futex.h | ||
hardirq.h | ||
hugetlb.h | ||
hw_breakpoint.h | ||
hwcap.h | ||
hypervisor.h | ||
insn.h | ||
io.h | ||
irq_work.h | ||
irq.h | ||
irqflags.h | ||
jump_label.h | ||
Kbuild | ||
kgdb.h | ||
kvm_arm.h | ||
kvm_asm.h | ||
kvm_coproc.h | ||
kvm_emulate.h | ||
kvm_host.h | ||
kvm_mmio.h | ||
kvm_mmu.h | ||
kvm_psci.h | ||
linkage.h | ||
memblock.h | ||
memory.h | ||
mmu_context.h | ||
mmu.h | ||
module.h | ||
neon.h | ||
opcodes.h | ||
page.h | ||
pci.h | ||
percpu.h | ||
perf_event.h | ||
pgalloc.h | ||
pgtable-hwdef.h | ||
pgtable-types.h | ||
pgtable.h | ||
pmu.h | ||
proc-fns.h | ||
processor.h | ||
psci.h | ||
ptrace.h | ||
seccomp.h | ||
shmparam.h | ||
signal32.h | ||
smp_plat.h | ||
smp.h | ||
sparsemem.h | ||
spinlock_types.h | ||
spinlock.h | ||
stackprotector.h | ||
stacktrace.h | ||
stat.h | ||
string.h | ||
suspend.h | ||
sync_bitops.h | ||
syscall.h | ||
syscalls.h | ||
sysreg.h | ||
system_misc.h | ||
thread_info.h | ||
timex.h | ||
tlb.h | ||
tlbflush.h | ||
topology.h | ||
traps.h | ||
uaccess.h | ||
ucontext.h | ||
unistd32.h | ||
unistd.h | ||
vdso_datapage.h | ||
vdso.h | ||
virt.h | ||
word-at-a-time.h |