<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/arch/s390/include/asm/atomic.h, branch linux-3.19.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.19.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.19.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2014-04-18T12:20:42Z</updated>
<entry>
<title>arch,s390: Convert smp_mb__*()</title>
<updated>2014-04-18T12:20:42Z</updated>
<author>
<name>Peter Zijlstra</name>
</author>
<published>2014-03-13T18:00:35Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0e530747c69f1e191f101a925bb4051894e5c7b0'/>
<id>urn:sha1:0e530747c69f1e191f101a925bb4051894e5c7b0</id>
<content type='text'>
As per the existing implementation; implement the new one using
smp_mb().

AFAICT the s390 compare-and-swap does imply a barrier, however there
are some immediate ops that seem to be singly-copy atomic and do not
imply a barrier. One such is the "ni" op (which would be
and-immediate) which is used for the constant clear_bit
implementation. Therefore s390 needs full barriers for the
{before,after} atomic ops.

Signed-off-by: Peter Zijlstra &lt;peterz@infradead.org&gt;
Acked-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Link: http://lkml.kernel.org/n/tip-kme5dz5hcobpnufnnkh1ech2@git.kernel.org
Cc: Chen Gang &lt;gang.chen@asianux.com&gt;
Cc: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Cc: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Cc: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
Cc: Will Deacon &lt;will.deacon@arm.com&gt;
Cc: linux390@de.ibm.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-s390@vger.kernel.org
Signed-off-by: Ingo Molnar &lt;mingo@kernel.org&gt;
</content>
</entry>
<entry>
<title>s390/bitops,atomic: add missing memory barriers</title>
<updated>2014-04-01T07:23:35Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2014-03-20T07:55:00Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0ccc8b7ac86053388e793bad20bd26bd777752eb'/>
<id>urn:sha1:0ccc8b7ac86053388e793bad20bd26bd777752eb</id>
<content type='text'>
When reworking the bitops and atomic ops I missed that those instructions
that got atomic behaviour only perform a "specific-operand-serialization"
instead of a full "serialization".
The compare-and-swap instruction used before performs a full serialization
before and after the instruction is executed, which means it has full
memory barrier semantics.
In order to give the new bitops and atomic ops functions also full memory
barrier semantics add a "bcr 14,0" before and after each of those new
instructions which performs full serialization as well.

This restores memory barrier semantics for bitops and atomic ops functions
which return values, like e.g. atomic_add_return(), but not for functions
which do not return a value, like e.g. atomic_add().
This is consistent to other architectures and what common code requires.

Cc: stable@vger.kernel.org # v3.13+
Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/atomic: use 'unsigned int' instead of 'unsigned long' for atomic_*_mask()</title>
<updated>2013-10-24T15:17:02Z</updated>
<author>
<name>Chen Gang</name>
</author>
<published>2013-10-10T02:31:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=72b7fb5fda25e1213cb9f63bf712161c66877552'/>
<id>urn:sha1:72b7fb5fda25e1213cb9f63bf712161c66877552</id>
<content type='text'>
The type of 'v-&gt;counter' is always 'int', and related inline assembly
code also process 'int', so use 'unsigned int' instead of 'unsigned
long' for the 'mask'.

Signed-off-by: Chen Gang &lt;gang.chen@asianux.com&gt;
Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/atomic: various small cleanups</title>
<updated>2013-10-24T15:16:51Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2013-09-16T09:07:49Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9a70a42835d2be9bd1862d839f2debaaea79ba32'/>
<id>urn:sha1:9a70a42835d2be9bd1862d839f2debaaea79ba32</id>
<content type='text'>
- add a typecheck to the defines to make sure they operate on an atomic_t
- simplify inline assembly constraints
- keep variable names common between functions

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/atomic: optimize atomic_add() for constant values</title>
<updated>2013-10-24T15:16:51Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2013-09-16T08:44:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5692e4d11cf5b51045a41daf295626c7fcbb698a'/>
<id>urn:sha1:5692e4d11cf5b51045a41daf295626c7fcbb698a</id>
<content type='text'>
If the interlocked-access facility 1 is available we can use the asi
and agsi instructions for interlocked updates if the to be added
value is a contanst and small (in the range of -128..127).
asi and agsi do not not return the old or new value, therefore these
instructions can only be used for atomic_(add|sub|inc|dec)[64].

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/atomic: make use of interlocked-access facility 1 instructions</title>
<updated>2013-10-24T15:16:46Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2013-09-11T14:34:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=75287430b4af7c22080d02b8cfc8344c4ecafc21'/>
<id>urn:sha1:75287430b4af7c22080d02b8cfc8344c4ecafc21</id>
<content type='text'>
Same as for bitops: make use of the interlocked-access facility 1
instructions which allow to atomically update storage locations
without a compare-and-swap loop.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/atomic: implement atomic_sub_return() with atomic_add_return()</title>
<updated>2013-10-24T15:16:46Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2013-09-11T12:28:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=86d51bc31fabd3782a99375b6848c5c667e72605'/>
<id>urn:sha1:86d51bc31fabd3782a99375b6848c5c667e72605</id>
<content type='text'>
Get rid of the own atomic_sub_return() implementation. Otherwise we can't
make use of the interlocked-access facility 1 instructions for
atomic_sub_return(), since there is no "load and subtract" instruction
available.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
Signed-off-by: Martin Schwidefsky &lt;schwidefsky@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>s390/comments: unify copyright messages and remove file names</title>
<updated>2012-07-20T09:15:04Z</updated>
<author>
<name>Heiko Carstens</name>
</author>
<published>2012-07-20T09:15:04Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a53c8fab3f87c995c30ac226a03af95361243144'/>
<id>urn:sha1:a53c8fab3f87c995c30ac226a03af95361243144</id>
<content type='text'>
Remove the file name from the comment at top of many files. In most
cases the file name was wrong anyway, so it's rather pointless.

Also unify the IBM copyright statement. We did have a lot of sightly
different statements and wanted to change them one after another
whenever a file gets touched. However that never happened. Instead
people start to take the old/"wrong" statements to use as a template
for new files.
So unify all of them in one go.

Signed-off-by: Heiko Carstens &lt;heiko.carstens@de.ibm.com&gt;
</content>
</entry>
<entry>
<title>Disintegrate asm/system.h for S390</title>
<updated>2012-03-28T17:30:02Z</updated>
<author>
<name>David Howells</name>
</author>
<published>2012-03-28T17:30:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a0616cdebcfd575dcd4c46102d1b52fbb827fc29'/>
<id>urn:sha1:a0616cdebcfd575dcd4c46102d1b52fbb827fc29</id>
<content type='text'>
Disintegrate asm/system.h for S390.

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
cc: linux-s390@vger.kernel.org
</content>
</entry>
<entry>
<title>atomic: cleanup asm-generic atomic*.h inclusion</title>
<updated>2011-07-26T23:49:47Z</updated>
<author>
<name>Arun Sharma</name>
</author>
<published>2011-07-26T23:09:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7847777a45f9f8bfc8617dbf107bde1ecb59caee'/>
<id>urn:sha1:7847777a45f9f8bfc8617dbf107bde1ecb59caee</id>
<content type='text'>
After changing all consumers of atomics to include &lt;linux/atomic.h&gt;, we
ran into some compile time errors due to this dependency chain:

linux/atomic.h
  -&gt; asm/atomic.h
    -&gt; asm-generic/atomic-long.h

where atomic-long.h could use funcs defined later in linux/atomic.h
without a prototype.  This patches moves the code that includes
asm-generic/atomic*.h to linux/atomic.h.

Archs that need &lt;asm-generic/atomic64.h&gt; need to select
CONFIG_GENERIC_ATOMIC64 from now on (some of them used to include it
unconditionally).

Compile tested on i386 and x86_64 with allnoconfig.

Signed-off-by: Arun Sharma &lt;asharma@fb.com&gt;
Cc: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Cc: David Miller &lt;davem@davemloft.net&gt;
Acked-by: Mike Frysinger &lt;vapier@gentoo.org&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
</feed>
