Paul E. McKenney
952111d7db
arch: Remove spin_unlock_wait() arch-specific definitions
...
There is no agreed-upon definition of spin_unlock_wait()'s semantics,
and it appears that all callers could do just as well with a lock/unlock
pair. This commit therefore removes the underlying arch-specific
arch_spin_unlock_wait() for all architectures providing them.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com >
Cc: <linux-arch@vger.kernel.org >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Alan Stern <stern@rowland.harvard.edu >
Cc: Andrea Parri <parri.andrea@gmail.com >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Acked-by: Will Deacon <will.deacon@arm.com >
Acked-by: Boqun Feng <boqun.feng@gmail.com >
2017-08-17 08:08:59 -07:00
Peter Zijlstra
726328d92a
locking/spinlock, arch: Update and fix spin_unlock_wait() implementations
...
This patch updates/fixes all spin_unlock_wait() implementations.
The update is in semantics; where it previously was only a control
dependency, we now upgrade to a full load-acquire to match the
store-release from the spin_unlock() we waited on. This ensures that
when spin_unlock_wait() returns, we're guaranteed to observe the full
critical section we waited on.
This fixes a number of spin_unlock_wait() users that (not
unreasonably) rely on this.
I also fixed a number of ticket lock versions to only wait on the
current lock holder, instead of for a full unlock, as this is
sufficient.
Furthermore; again for ticket locks; I added an smp_rmb() in between
the initial ticket load and the spin loop testing the current value
because I could not convince myself the address dependency is
sufficient, esp. if the loads are of different sizes.
I'm more than happy to remove this smp_rmb() again if people are
certain the address dependency does indeed work as expected.
Note: PPC32 will be fixed independently
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org >
Cc: Andrew Morton <akpm@linux-foundation.org >
Cc: Linus Torvalds <torvalds@linux-foundation.org >
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com >
Cc: Peter Zijlstra <peterz@infradead.org >
Cc: Thomas Gleixner <tglx@linutronix.de >
Cc: chris@zankel.net
Cc: cmetcalf@mellanox.com
Cc: davem@davemloft.net
Cc: dhowells@redhat.com
Cc: james.hogan@imgtec.com
Cc: jejb@parisc-linux.org
Cc: linux@armlinux.org.uk
Cc: mpe@ellerman.id.au
Cc: ralf@linux-mips.org
Cc: realmz6@gmail.com
Cc: rkuo@codeaurora.org
Cc: rth@twiddle.net
Cc: schwidefsky@de.ibm.com
Cc: tony.luck@intel.com
Cc: vgupta@synopsys.com
Cc: ysato@users.sourceforge.jp
Cc: linux-kernel@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org >
2016-06-14 11:55:15 +02:00
Arun Sharma
60063497a9
atomic: use <linux/atomic.h>
...
This allows us to move duplicated code in <asm/atomic.h>
(atomic_inc_not_zero() for now) to <linux/atomic.h>
Signed-off-by: Arun Sharma <asharma@fb.com >
Reviewed-by: Eric Dumazet <eric.dumazet@gmail.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: David Miller <davem@davemloft.net >
Cc: Eric Dumazet <eric.dumazet@gmail.com >
Acked-by: Mike Frysinger <vapier@gentoo.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2011-07-26 16:49:47 -07:00
Mike Frysinger
969564508d
Blackfin: convert unicode space gremlins
...
Not sure how these guys slipped in, but they're annoying me.
So bring these unicode space gremlins down to earth to normal
ascii spaces.
Signed-off-by: Mike Frysinger <vapier@gentoo.org >
2011-07-23 01:18:23 -04:00
Graf Yang
54d756ed1a
Blackfin: SMP: add missing arch_{read,write}_lock_flags helpers
...
Common code expects these to be defined for SMP ports, so add them.
Signed-off-by: Graf Yang <graf.yang@analog.com >
Signed-off-by: Mike Frysinger <vapier@gentoo.org >
2011-01-10 07:18:14 -05:00
Graf Yang
71a66287d9
Blackfin: SMP: rename the arch_xxx lock funcs to __raw_xxx
...
The external functions are named __raw_xxx, not arch_xxx, so rename the
prototypes to match reality. This fixes some simple build errors in the
bfin_ksyms.c code which exports these helpers to modules.
Signed-off-by: Graf Yang <graf.yang@analog.com >
Signed-off-by: Mike Frysinger <vapier@gentoo.org >
2011-01-10 07:18:11 -05:00
Thomas Gleixner
e5931943d0
locking: Convert raw_rwlock functions to arch_rwlock
...
Name space cleanup for rwlock functions. No functional change.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Acked-by: David S. Miller <davem@davemloft.net >
Acked-by: Ingo Molnar <mingo@elte.hu >
Cc: linux-arch@vger.kernel.org
2009-12-14 23:55:32 +01:00
Thomas Gleixner
fb3a6bbc91
locking: Convert raw_rwlock to arch_rwlock
...
Not strictly necessary for -rt as -rt does not have non sleeping
rwlocks, but it's odd to not have a consistent naming convention.
No functional change.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Acked-by: David S. Miller <davem@davemloft.net >
Acked-by: Ingo Molnar <mingo@elte.hu >
Cc: linux-arch@vger.kernel.org
2009-12-14 23:55:32 +01:00
Thomas Gleixner
0199c4e68d
locking: Convert __raw_spin* functions to arch_spin*
...
Name space cleanup. No functional change.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Acked-by: David S. Miller <davem@davemloft.net >
Acked-by: Ingo Molnar <mingo@elte.hu >
Cc: linux-arch@vger.kernel.org
2009-12-14 23:55:32 +01:00
Thomas Gleixner
445c89514b
locking: Convert raw_spinlock to arch_spinlock
...
The raw_spin* namespace was taken by lockdep for the architecture
specific implementations. raw_spin_* would be the ideal name space for
the spinlocks which are not converted to sleeping locks in preempt-rt.
Linus suggested to convert the raw_ to arch_ locks and cleanup the
name space instead of using an artifical name like core_spin,
atomic_spin or whatever
No functional change.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de >
Acked-by: Peter Zijlstra <peterz@infradead.org >
Acked-by: David S. Miller <davem@davemloft.net >
Acked-by: Ingo Molnar <mingo@elte.hu >
Cc: linux-arch@vger.kernel.org
2009-12-14 23:55:32 +01:00
Robin Getz
96f1050d3d
Blackfin: mass clean up of copyright/licensing info
...
Bill Gatliff & David Brownell pointed out we were missing some
copyrights, and licensing terms in some of the files in
./arch/blackfin, so this fixes things, and cleans them up.
It also removes:
- verbose GPL text(refer to the top level ./COPYING file)
- file names (you are looking at the file)
- bug url (it's in the ./MAINTAINERS file)
- "or later" on GPL-2, when we did not have that right
It also allows some Blackfin-specific assembly files to be under a BSD
like license (for people to use them outside of Linux).
Signed-off-by: Robin Getz <robin.getz@analog.com >
Signed-off-by: Mike Frysinger <vapier@gentoo.org >
2009-10-07 04:36:26 -04:00
Mike Frysinger
3d15063093
Blackfin: convert locking primitives to asm-generic
...
Signed-off-by: Mike Frysinger <vapier@gentoo.org >
2009-06-18 21:41:22 -04:00
Graf Yang
6b3087c64a
Blackfin arch: SMP supporting patchset: Blackfin header files and machine common code
...
Blackfin dual core BF561 processor can support SMP like features.
https://docs.blackfin.uclinux.org/doku.php?id=linux-kernel:smp-like
In this patch, we provide SMP extend to Blackfin header files
and machine common code
Signed-off-by: Graf Yang <graf.yang@analog.com >
Signed-off-by: Bryan Wu <cooloney@kernel.org >
2009-01-07 23:14:39 +08:00
Bryan Wu
639f657145
Blackfin arch: move include/asm-blackfin header files to arch/blackfin
...
Signed-off-by: Bryan Wu <cooloney@kernel.org >
2008-08-27 10:51:02 +08:00