linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [RFC][PATCH 00/24] arch: Provide atomic logic ops
@ 2015-07-09 17:28 Peter Zijlstra
  2015-07-09 17:28 ` [RFC][PATCH 01/24] alpha: Provide atomic_{or,xor,and} Peter Zijlstra
                   ` (24 more replies)
  0 siblings, 25 replies; 54+ messages in thread
From: Peter Zijlstra @ 2015-07-09 17:28 UTC (permalink / raw)
  To: linux-kernel, linux-arch
  Cc: rth, vgupta, linux, will.deacon, hskinnemoen, realmz6, dhowells,
	rkuo, tony.luck, geert, james.hogan, ralf, jejb, benh,
	heiko.carstens, davem, cmetcalf, mingo, peterz

Currently there is an incoherent mess of atomic_{set,clear}_mask() and
atomic_or() (but no atomic_{and,nand,xor}()) in the tree.

Those archs that implement atomic_{set,clear}_mask() are not even consistent on
its signature.

Implement atomic_{or,and,xor}() on all archs and deprecate
atomic_{set,clear}_mask().

Notes:
 - FRV got a total rewrite of its atomic implementation,
 - Blackfin could use one, or at least some macro help,
 - TILE still needs to be done.

The series has been compile tested by the build-bot, only TILE fails to build.

---
 arch/alpha/include/asm/atomic.h        |    6 +
 arch/arc/include/asm/atomic.h          |    4 
 arch/arm/include/asm/atomic.h          |    6 +
 arch/arm64/include/asm/atomic.h        |    6 +
 arch/avr32/include/asm/atomic.h        |   12 ++
 arch/blackfin/include/asm/atomic.h     |   16 ++-
 arch/blackfin/kernel/bfin_ksyms.c      |    7 -
 arch/blackfin/mach-bf561/atomic.S      |   30 +++---
 arch/blackfin/mach-common/smp.c        |    2 
 arch/frv/include/asm/atomic.h          |  107 ++++++++++++------------
 arch/frv/include/asm/atomic_defs.h     |  143 +++++++++++++++++++++++++++++++++
 arch/frv/include/asm/bitops.h          |   99 ++--------------------
 arch/frv/kernel/dma.c                  |    6 -
 arch/frv/lib/Makefile                  |    2 
 arch/frv/lib/atomic-lib.c              |    7 +
 arch/frv/lib/atomic-ops.S              |  110 -------------------------
 arch/frv/lib/atomic64-ops.S            |   94 ---------------------
 arch/hexagon/include/asm/atomic.h      |    3 
 arch/ia64/include/asm/atomic.h         |   24 ++++-
 arch/m32r/include/asm/atomic.h         |   44 ----------
 arch/m32r/kernel/smp.c                 |    4 
 arch/m68k/include/asm/atomic.h         |   13 ---
 arch/metag/include/asm/atomic_lnkget.h |   37 --------
 arch/metag/include/asm/atomic_lock1.h  |   23 -----
 arch/mips/include/asm/atomic.h         |    6 +
 arch/mn10300/include/asm/atomic.h      |   70 ----------------
 arch/mn10300/mm/tlb-smp.c              |    2 
 arch/parisc/include/asm/atomic.h       |    6 +
 arch/powerpc/include/asm/atomic.h      |    6 +
 arch/powerpc/kernel/misc_32.S          |   19 ----
 arch/s390/include/asm/atomic.h         |   41 +++++----
 arch/s390/kernel/time.c                |    4 
 arch/s390/kvm/interrupt.c              |   28 +++---
 arch/s390/kvm/kvm-s390.c               |   24 ++---
 arch/sh/include/asm/atomic-grb.h       |   42 ---------
 arch/sh/include/asm/atomic-irq.h       |   21 ----
 arch/sh/include/asm/atomic-llsc.h      |   31 -------
 arch/sparc/include/asm/atomic_32.h     |    3 
 arch/sparc/include/asm/atomic_64.h     |    3 
 arch/sparc/lib/atomic32.c              |   22 ++++-
 arch/sparc/lib/atomic_64.S             |    6 +
 arch/sparc/lib/ksyms.c                 |    3 
 arch/x86/include/asm/atomic.h          |   25 +++--
 arch/x86/include/asm/atomic64_32.h     |   14 +++
 arch/x86/include/asm/atomic64_64.h     |   15 +++
 arch/xtensa/include/asm/atomic.h       |   72 ----------------
 drivers/gpu/drm/i915/i915_drv.c        |    2 
 drivers/gpu/drm/i915/i915_gem.c        |    2 
 drivers/gpu/drm/i915/i915_irq.c        |    4 
 drivers/s390/scsi/zfcp_aux.c           |    2 
 drivers/s390/scsi/zfcp_erp.c           |   62 +++++++-------
 drivers/s390/scsi/zfcp_fc.c            |    8 -
 drivers/s390/scsi/zfcp_fsf.c           |   26 +++---
 drivers/s390/scsi/zfcp_qdio.c          |   14 +--
 include/asm-generic/atomic.h           |   11 +-
 include/asm-generic/atomic64.h         |    3 
 include/linux/atomic.h                 |   30 +++---
 lib/atomic64.c                         |    3 
 58 files changed, 569 insertions(+), 866 deletions(-)


^ permalink raw reply	[flat|nested] 54+ messages in thread

end of thread, other threads:[~2015-07-27 12:17 UTC | newest]

Thread overview: 54+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-09 17:28 [RFC][PATCH 00/24] arch: Provide atomic logic ops Peter Zijlstra
2015-07-09 17:28 ` [RFC][PATCH 01/24] alpha: Provide atomic_{or,xor,and} Peter Zijlstra
2015-07-09 17:28 ` [RFC][PATCH 02/24] arc: " Peter Zijlstra
2015-07-10  4:30   ` Vineet Gupta
2015-07-10  7:05     ` Peter Zijlstra
2015-07-13 12:43       ` Vineet Gupta
2015-07-09 17:28 ` [RFC][PATCH 03/24] arm: " Peter Zijlstra
2015-07-09 18:02   ` Peter Zijlstra
2015-07-10 10:24     ` Russell King - ARM Linux
2015-07-09 17:28 ` [RFC][PATCH 04/24] arm64: " Peter Zijlstra
2015-07-10  8:42   ` Will Deacon
2015-07-10 16:23     ` Peter Zijlstra
2015-07-13  9:29       ` Will Deacon
2015-07-15 16:01   ` Will Deacon
2015-07-15 16:46     ` Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 05/24] avr32: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 06/24] blackfin: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 07/24] hexagon: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 08/24] ia64: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 09/24] m32r: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 10/24] m68k: " Peter Zijlstra
2015-07-10  9:13   ` Geert Uytterhoeven
2015-07-09 17:29 ` [RFC][PATCH 11/24] metag: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 12/24] mips: " Peter Zijlstra
2015-07-09 18:45   ` Ralf Baechle
2015-07-09 17:29 ` [RFC][PATCH 13/24] mn10300: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 14/24] parisc: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 15/24] powerpc: " Peter Zijlstra
2015-07-09 21:49   ` Benjamin Herrenschmidt
2015-07-09 17:29 ` [RFC][PATCH 16/24] sh: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 17/24] sparc: " Peter Zijlstra
2015-07-09 18:05   ` David Miller
2015-07-09 17:29 ` [RFC][PATCH 18/24] xtensa: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 19/24] s390: " Peter Zijlstra
2015-07-10  7:17   ` Heiko Carstens
2015-07-10 10:22     ` Peter Zijlstra
2015-07-10 10:52       ` Heiko Carstens
2015-07-10 11:28       ` Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 20/24] x86: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 21/24] atomic: " Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 22/24] frv: Rewrite atomic implementation Peter Zijlstra
2015-07-09 17:29 ` [RFC][PATCH 23/24] atomic: Collapse all atomic_{set,clear}_mask definitions Peter Zijlstra
2015-07-10  9:10   ` Geert Uytterhoeven
2015-07-10  9:13     ` Vineet Gupta
2015-07-10 10:39     ` Peter Zijlstra
2015-07-10 13:34       ` Chris Metcalf
2015-07-10 13:42         ` Russell King - ARM Linux
2015-07-10 16:27           ` Peter Zijlstra
2015-07-10 17:35             ` Chris Metcalf
2015-07-10 19:45             ` Chris Metcalf
2015-07-09 17:29 ` [RFC][PATCH 24/24] atomic: Replace atomic_{set,clear}_mask() usage Peter Zijlstra
2015-07-09 20:38 ` [PATCH] tile: Provide atomic_{or,xor,and} Chris Metcalf
2015-07-09 20:49   ` Peter Zijlstra
2015-07-27 12:17   ` [tip:locking/arch-atomic] " tip-bot for Chris Metcalf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).