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

Reply via email to