public inbox for linux-arch@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/28] arch: Provide atomic logic ops
@ 2015-07-16 17:21 Peter Zijlstra
  2015-07-16 17:21 ` Peter Zijlstra
                   ` (31 more replies)
  0 siblings, 32 replies; 55+ messages in thread
From: Peter Zijlstra @ 2015-07-16 17:21 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, ysato, 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().

The series has been compile tested by the build-bot, no known failures at this time.

I would like to take this through tip; I'll ask Ingo to put it in a separate
branch such that people can pull in that branch if there is conflicting work
elsewhere (Will has some for Argh64).


Changes since lst time:

 - Quite a few build fails fixed, most notable would be that each arch
   now defines CONFIG_ARCH_HAS_ATOMIC_OR for a little while -- we take it
   out again later.

 - FRV has some extra magic that allows the inline assembly to correctly
   work as inline functions.

 - TILE patch contributed by Chris -- Thanks!

 - A little extention to lib/atomic64_test.c that compile tests the new
   primitives.

 - Alpha, fixed ASM due to fallout from actually trying to compile things.

 - H8300, somehow I had overlooked it previously.

 - Added atomic_andnot() to a few archs that have that instruction to test that.

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

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

Thread overview: 55+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-07-16 17:21 [PATCH 00/28] arch: Provide atomic logic ops Peter Zijlstra
2015-07-16 17:21 ` Peter Zijlstra
2015-07-16 17:21 ` [PATCH 01/28] atomic: Prepare generic atomic implementation for " Peter Zijlstra
2015-07-16 17:21   ` Peter Zijlstra
2015-07-16 17:21 ` [PATCH 02/28] alpha: Provide atomic_{or,xor,and} Peter Zijlstra
2015-07-16 17:21   ` Peter Zijlstra
2015-07-16 17:21 ` [PATCH 03/28] arc: " Peter Zijlstra
2015-07-16 17:21 ` [PATCH 04/28] arm: " Peter Zijlstra
2015-07-16 17:21 ` [PATCH 05/28] arm64: " Peter Zijlstra
2015-07-16 17:21   ` Peter Zijlstra
2015-07-16 17:21 ` [PATCH 06/28] avr32: " Peter Zijlstra
2015-07-16 17:21   ` Peter Zijlstra
2015-07-16 17:21 ` [PATCH 07/28] blackfin: " Peter Zijlstra
2015-07-16 17:21   ` Peter Zijlstra
2015-07-16 17:21 ` [PATCH 08/28] hexagon: " Peter Zijlstra
2015-07-16 17:21 ` [PATCH 09/28] ia64: " Peter Zijlstra
2015-07-16 17:21 ` [PATCH 10/28] m32r: " Peter Zijlstra
2015-07-16 17:21   ` Peter Zijlstra
2015-07-16 17:21 ` [PATCH 11/28] m68k: " Peter Zijlstra
2015-07-16 17:21   ` Peter Zijlstra
2015-07-16 17:21 ` [PATCH 12/28] metag: " Peter Zijlstra
2015-07-16 17:21   ` Peter Zijlstra
2015-07-16 17:21 ` [PATCH 13/28] mips: " Peter Zijlstra
2015-07-16 17:21   ` Peter Zijlstra
2015-07-16 17:21 ` [PATCH 14/28] mn10300: " Peter Zijlstra
2015-07-16 17:21   ` Peter Zijlstra
2015-07-16 17:21 ` [PATCH 15/28] parisc: " Peter Zijlstra
2015-07-16 17:21   ` Peter Zijlstra
2015-07-16 17:21 ` [PATCH 16/28] powerpc: " Peter Zijlstra
2015-07-16 17:21   ` Peter Zijlstra
2015-07-16 17:21 ` [PATCH 17/28] sh: " Peter Zijlstra
2015-07-16 17:21 ` [PATCH 18/28] sparc: " Peter Zijlstra
2015-07-16 17:21   ` Peter Zijlstra
2015-07-16 17:21 ` [PATCH 19/28] xtensa: " Peter Zijlstra
2015-07-16 17:21   ` Peter Zijlstra
2015-07-16 17:21 ` [PATCH 20/28] s390: " Peter Zijlstra
2015-07-16 17:21 ` [PATCH 21/28] x86: " Peter Zijlstra
2015-07-16 17:21   ` Peter Zijlstra
2015-07-16 17:21 ` [PATCH 22/28] frv: Rewrite atomic implementation Peter Zijlstra
2015-07-16 17:21   ` Peter Zijlstra
2015-07-16 17:21 ` [PATCH 23/28] h8300: Provide atomic_{or,xor,and} Peter Zijlstra
2015-07-16 17:21   ` Peter Zijlstra
2015-07-16 17:21 ` [PATCH 24/28] tile: " Peter Zijlstra
2015-07-16 17:21 ` [PATCH 25/28] atomic: " Peter Zijlstra
2015-07-16 17:21 ` [PATCH 26/28] atomic: Collapse all atomic_{set,clear}_mask definitions Peter Zijlstra
2015-07-16 17:21   ` Peter Zijlstra
2015-07-16 17:21 ` [PATCH 27/28] atomic: Replace atomic_{set,clear}_mask() usage Peter Zijlstra
2015-07-16 17:21   ` Peter Zijlstra
2015-07-16 17:21 ` [PATCH 28/28] atomic: Add simple atomic_t tests Peter Zijlstra
2015-07-16 17:21   ` Peter Zijlstra
2015-07-17 12:57 ` [PATCH 00/28] arch: Provide atomic logic ops Will Deacon
2015-07-17 12:57   ` Will Deacon
2015-07-21 21:13 ` rkuo
2015-07-27 11:01 ` Will Deacon
2015-07-27 11:01   ` Will Deacon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox