[GIT PULL de-alpha] Make core code not need to know about Alpha for v4.15
From: Paul E. McKenney
Date: Mon Oct 23 2017 - 17:04:26 EST
Hello, Ingo,
This series is a first step towards making the core kernel no longer
need to consider DEC Alpha as a special case. This is accomplished
by two sets of patches, followed by a Coccinelle script:
1. Patches 1/19 through 15/19 in the following patches, which
change non-Coccinelle-susceptible instances of ACCESS_ONCE()
to either READ_ONCE() or WRITE_ONCE(), as appropriate. Most of
these patches are courtesy of Mark Rutland.
2. Patches 16/19 through 18/19 in the following patches, which
add smp_read_barrier_depends() to READ_ONCE() and to Alpha's
value-returning _release and _relaxed atomic read-modify-write
operations, while also removing lockless_dereference() in favor
of the modified READ_ONCE().
3. A patch generated by Coccinelle (script in commit log) that
converts ACCESS_ONCE() to either READ_ONCE() or WRITE_ONCE(),
as appropriate. Of course, this patch should not be applied
as-is to mainline, instead, the Coccinelle script should be
re-run in order to account for any changes between now and
the time of merging into mainline.
A later series (most likely targeted to v4.16) will remove instances of
smp_read_barrier_depends() that are made redundant by this series, that
is to say, almost all of them.
These changes are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git rcu/alpha-cocci
for you to fetch changes up to d19fa5187a69bd7685e9c7452ce9e339b1b079fc:
COCCINELLE: treewide: kill off ACCESS_ONCE() (2017-10-21 12:52:09 -0700)
----------------------------------------------------------------
Mark Rutland (14):
dm integrity: Kill off ACCESS_ONCE()
EDAC, altera: Kill off ACCESS_ONCE()
firmware/ivc: Kill off ACCESS_ONCE()
fs: dcache: Kill off ACCESS_ONCE()
fs: ncpfs: Kill off ACCESS_ONCE()
media: dvb_ringbuffer: Kill off ACCESS_ONCE()
net: netlink/netfilter: Kill off ACCESS_ONCE()
net/ipv4/tcp_input.c: Kill off ACCESS_ONCE()
net: average: Kill off ACCESS_ONCE()
samples: mic/mpssd/mpssd.c: Kill off ACCESS_ONCE()
selftests/powerpc: Kill off ACCESS_ONCE()
workqueue: Kill off ACCESS_ONCE()
rcutorture: formal: Prepare for ACCESS_ONCE() removal
COCCINELLE: treewide: kill off ACCESS_ONCE()
Paul E. McKenney (3):
doc: filesystems: Kill off ACCESS_ONCE()
mm: Kill off ACCESS_ONCE()
Merge commit 'c78bcafd0d3b3835f23369aea7ed3686f25750c2'; commit '88f35a0d24b00b80538ae7083cfcab8eb00db3cb' into HEAD
Will Deacon (3):
linux/compiler.h: Split into compiler.h and compiler-types.h
locking/barriers: Kill lockless_dereference
alpha: atomics: Add smp_read_barrier_depends() to release/relaxed atomics
Documentation/filesystems/path-lookup.md | 6 +-
Documentation/memory-barriers.txt | 12 -
.../translations/ko_KR/memory-barriers.txt | 12 -
arch/alpha/include/asm/atomic.h | 13 +
arch/arc/kernel/smp.c | 2 +-
arch/arm/include/asm/ptrace.h | 3 +-
arch/arm/include/asm/spinlock.h | 6 +-
arch/arm/mach-tegra/cpuidle-tegra20.c | 2 +-
arch/arm/vdso/vgettimeofday.c | 2 +-
arch/ia64/include/asm/spinlock.h | 8 +-
arch/mips/include/asm/vdso.h | 2 +-
arch/mips/kernel/pm-cps.c | 2 +-
arch/mn10300/kernel/mn10300-serial.c | 4 +-
arch/parisc/include/asm/atomic.h | 2 +-
arch/powerpc/platforms/powernv/opal-msglog.c | 2 +-
arch/s390/include/asm/spinlock.h | 6 +-
arch/s390/lib/spinlock.c | 16 +-
arch/sparc/include/asm/atomic_32.h | 2 +-
arch/sparc/include/asm/ptrace.h | 1 +
arch/tile/gxio/dma_queue.c | 4 +-
arch/tile/include/gxio/dma_queue.h | 2 +-
arch/tile/kernel/ptrace.c | 2 +-
arch/um/include/shared/init.h | 2 +-
arch/x86/entry/common.c | 2 +-
arch/x86/entry/vdso/vclock_gettime.c | 2 +-
arch/x86/events/core.c | 4 +-
arch/x86/include/asm/mmu_context.h | 4 +-
arch/x86/include/asm/vgtod.h | 2 +-
arch/x86/kernel/espfix_64.c | 6 +-
arch/x86/kernel/ldt.c | 2 +-
arch/x86/kernel/nmi.c | 2 +-
arch/x86/kvm/mmu.c | 4 +-
arch/x86/kvm/page_track.c | 2 +-
arch/x86/xen/p2m.c | 2 +-
arch/xtensa/platforms/xtfpga/lcd.c | 14 +-
block/blk-wbt.c | 2 +-
drivers/base/core.c | 2 +-
drivers/base/power/runtime.c | 4 +-
drivers/char/random.c | 4 +-
drivers/clocksource/bcm2835_timer.c | 2 +-
drivers/crypto/caam/jr.c | 4 +-
drivers/crypto/nx/nx-842-powernv.c | 2 +-
drivers/edac/altera_edac.c | 10 +-
drivers/firewire/ohci.c | 10 +-
drivers/firmware/tegra/ivc.c | 24 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 4 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 4 +-
drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 2 +-
drivers/gpu/drm/radeon/radeon_gem.c | 4 +-
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 2 +-
drivers/infiniband/hw/hfi1/file_ops.c | 2 +-
drivers/infiniband/hw/hfi1/pio.c | 6 +-
drivers/infiniband/hw/hfi1/ruc.c | 2 +-
drivers/infiniband/hw/hfi1/sdma.c | 8 +-
drivers/infiniband/hw/hfi1/sdma.h | 2 +-
drivers/infiniband/hw/hfi1/uc.c | 4 +-
drivers/infiniband/hw/hfi1/ud.c | 4 +-
drivers/infiniband/hw/hfi1/user_sdma.c | 8 +-
drivers/infiniband/hw/qib/qib_ruc.c | 2 +-
drivers/infiniband/hw/qib/qib_uc.c | 4 +-
drivers/infiniband/hw/qib/qib_ud.c | 4 +-
drivers/infiniband/sw/rdmavt/qp.c | 6 +-
drivers/input/misc/regulator-haptic.c | 2 +-
drivers/md/dm-bufio.c | 10 +-
drivers/md/dm-integrity.c | 15 +-
drivers/md/dm-kcopyd.c | 4 +-
drivers/md/dm-mpath.c | 20 +-
drivers/md/dm-stats.c | 36 +--
drivers/md/dm-switch.c | 2 +-
drivers/md/dm-thin.c | 2 +-
drivers/md/dm-verity-target.c | 2 +-
drivers/md/dm.c | 4 +-
drivers/md/md.c | 2 +-
drivers/md/raid5.c | 2 +-
drivers/media/dvb-core/dvb_ringbuffer.c | 8 +-
drivers/misc/mic/scif/scif_rb.c | 8 +-
drivers/misc/mic/scif/scif_rma_list.c | 2 +-
drivers/net/bonding/bond_alb.c | 2 +-
drivers/net/bonding/bond_main.c | 6 +-
drivers/net/ethernet/chelsio/cxgb4/sge.c | 4 +-
drivers/net/ethernet/emulex/benet/be_main.c | 2 +-
drivers/net/ethernet/hisilicon/hip04_eth.c | 4 +-
drivers/net/ethernet/intel/i40e/i40e_debugfs.c | 4 +-
drivers/net/ethernet/intel/i40e/i40e_ethtool.c | 2 +-
drivers/net/ethernet/intel/i40e/i40e_main.c | 4 +-
drivers/net/ethernet/intel/i40e/i40e_ptp.c | 4 +-
drivers/net/ethernet/intel/igb/e1000_regs.h | 2 +-
drivers/net/ethernet/intel/igb/igb_main.c | 2 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_common.h | 4 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 8 +-
drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c | 4 +-
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c | 2 +-
drivers/net/ethernet/intel/ixgbevf/vf.h | 2 +-
drivers/net/ethernet/mellanox/mlx4/en_tx.c | 12 +-
drivers/net/ethernet/neterion/vxge/vxge-main.c | 2 +-
drivers/net/ethernet/sfc/ef10.c | 10 +-
drivers/net/ethernet/sfc/efx.c | 4 +-
drivers/net/ethernet/sfc/falcon/efx.c | 4 +-
drivers/net/ethernet/sfc/falcon/falcon.c | 4 +-
drivers/net/ethernet/sfc/falcon/farch.c | 8 +-
drivers/net/ethernet/sfc/falcon/nic.h | 6 +-
drivers/net/ethernet/sfc/falcon/tx.c | 6 +-
drivers/net/ethernet/sfc/farch.c | 8 +-
drivers/net/ethernet/sfc/nic.h | 6 +-
drivers/net/ethernet/sfc/ptp.c | 10 +-
drivers/net/ethernet/sfc/tx.c | 6 +-
drivers/net/ethernet/sun/niu.c | 4 +-
drivers/net/tap.c | 2 +-
drivers/net/tun.c | 4 +-
drivers/net/wireless/ath/ath5k/desc.c | 8 +-
.../wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 +-
drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 2 +-
drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 4 +-
drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 2 +-
drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 10 +-
drivers/net/wireless/mac80211_hwsim.c | 4 +-
drivers/scsi/qla2xxx/qla_target.c | 2 +-
drivers/target/target_core_user.c | 2 +-
drivers/usb/class/cdc-wdm.c | 2 +-
drivers/usb/core/devio.c | 2 +-
drivers/usb/core/sysfs.c | 4 +-
drivers/usb/gadget/udc/gr_udc.c | 4 +-
drivers/usb/host/ohci-hcd.c | 2 +-
drivers/usb/host/uhci-hcd.h | 4 +-
drivers/vfio/vfio.c | 2 +-
drivers/vhost/scsi.c | 2 +-
fs/aio.c | 2 +-
fs/buffer.c | 3 +-
fs/crypto/keyinfo.c | 2 +-
fs/dcache.c | 22 +-
fs/direct-io.c | 2 +-
fs/exec.c | 2 +-
fs/fcntl.c | 2 +-
fs/fs_pin.c | 4 +-
fs/fuse/dev.c | 2 +-
fs/inode.c | 2 +-
fs/namei.c | 4 +-
fs/namespace.c | 2 +-
fs/ncpfs/dir.c | 9 -
fs/nfs/dir.c | 8 +-
fs/overlayfs/ovl_entry.h | 2 +-
fs/overlayfs/readdir.c | 2 +-
fs/proc/array.c | 2 +-
fs/proc_namespace.c | 2 +-
fs/splice.c | 2 +-
fs/userfaultfd.c | 8 +-
fs/xfs/xfs_log_priv.h | 4 +-
include/linux/average.h | 10 +-
include/linux/bitops.h | 4 +-
include/linux/compiler-clang.h | 2 +-
include/linux/compiler-gcc.h | 2 +-
include/linux/compiler-intel.h | 2 +-
include/linux/compiler-types.h | 274 ++++++++++++++++++++
include/linux/compiler.h | 286 +--------------------
include/linux/dcache.h | 4 +-
include/linux/dynamic_queue_limits.h | 2 +-
include/linux/genetlink.h | 2 +-
include/linux/huge_mm.h | 2 +-
include/linux/if_team.h | 2 +-
include/linux/linkage.h | 2 +-
include/linux/llist.h | 2 +-
include/linux/netfilter/nfnetlink.h | 2 +-
include/linux/pm_runtime.h | 2 +-
include/linux/rculist.h | 4 +-
include/linux/rcupdate.h | 4 +-
include/linux/rtnetlink.h | 2 +-
include/net/ip_vs.h | 6 +-
include/net/netfilter/nf_tables.h | 4 +-
include/uapi/linux/stddef.h | 2 +-
kernel/acct.c | 4 +-
kernel/events/core.c | 10 +-
kernel/events/ring_buffer.c | 2 +-
kernel/exit.c | 2 +-
kernel/seccomp.c | 2 +-
kernel/task_work.c | 2 +-
kernel/trace/ring_buffer.c | 2 +-
kernel/trace/trace.h | 2 +-
kernel/trace/trace_stack.c | 2 +-
kernel/user_namespace.c | 2 +-
kernel/workqueue.c | 4 +-
lib/assoc_array.c | 20 +-
lib/dynamic_queue_limits.c | 2 +-
lib/llist.c | 2 +-
lib/vsprintf.c | 4 +-
mm/huge_memory.c | 2 +-
mm/memory.c | 6 +-
mm/slab.h | 2 +-
net/core/dev.c | 2 +-
net/core/pktgen.c | 2 +-
net/ipv4/inet_fragment.c | 2 +-
net/ipv4/route.c | 2 +-
net/ipv4/tcp_input.c | 6 +-
net/ipv4/tcp_output.c | 2 +-
net/ipv4/udp.c | 4 +-
net/ipv6/ip6_tunnel.c | 8 +-
net/ipv6/udp.c | 4 +-
net/llc/llc_input.c | 4 +-
net/mac80211/sta_info.c | 2 +-
net/netfilter/ipvs/ip_vs_sync.c | 2 +-
net/netfilter/nfnetlink_queue.c | 4 +-
net/netlabel/netlabel_calipso.c | 2 +-
net/wireless/nl80211.c | 2 +-
samples/mic/mpssd/mpssd.c | 6 +-
scripts/headers_install.sh | 2 +-
sound/firewire/amdtp-am824.c | 6 +-
sound/firewire/amdtp-stream.c | 23 +-
sound/firewire/amdtp-stream.h | 2 +-
sound/firewire/digi00x/amdtp-dot.c | 6 +-
sound/firewire/fireface/amdtp-ff.c | 4 +-
sound/firewire/fireface/ff-midi.c | 10 +-
sound/firewire/fireface/ff-transaction.c | 8 +-
sound/firewire/isight.c | 18 +-
sound/firewire/motu/amdtp-motu.c | 4 +-
sound/firewire/oxfw/oxfw-scs1x.c | 12 +-
sound/firewire/tascam/amdtp-tascam.c | 4 +-
sound/firewire/tascam/tascam-transaction.c | 6 +-
sound/soc/xtensa/xtfpga-i2s.c | 6 +-
sound/usb/bcd2000/bcd2000.c | 4 +-
tools/arch/x86/include/asm/atomic.h | 2 +-
tools/include/asm-generic/atomic-gcc.h | 2 +-
tools/perf/util/auxtrace.h | 4 +-
tools/perf/util/evlist.h | 2 +-
tools/perf/util/session.h | 2 +-
tools/testing/selftests/powerpc/dscr/dscr.h | 2 +-
.../selftests/powerpc/dscr/dscr_default_test.c | 2 +-
.../rcutorture/formal/srcu-cbmc/src/barriers.h | 5 +-
virt/kvm/kvm_main.c | 2 +-
227 files changed, 786 insertions(+), 808 deletions(-)
create mode 100644 include/linux/compiler-types.h