Linux 3.12-rc4
-----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.14 (GNU/Linux) iQEcBAABAgAGBQJSUc9zAAoJEHm+PkMAQRiG9DMH/AtpuAF6LlMRPjrCeuJQ1pyh T0IUO+CsLKO6qtM5IyweP8V6zaasNjIuW1+B6IwVIl8aOrM+M7CwRiKvpey26ldM I8G2ron7hqSOSQqSQs20jN2yGAqQGpYIbTmpdGLAjQ350NNNvEKthbP5SZR5PAmE UuIx5OGEkaOyZXvCZJXU9AZkCxbihlMSt2zFVxybq2pwnGezRUYgCigE81aeyE0I QLwzzMVdkCxtZEpkdJMpLILAz22jN4RoVDbXRa2XC7dA9I2PEEXI9CcLzqCsx2Ii 8eYS+no2K5N2rrpER7JFUB2B/2X8FaVDE+aJBCkfbtwaYTV9UYLq3a/sKVpo1Cs= =xSFJ -----END PGP SIGNATURE----- Merge tag 'v3.12-rc4' into sched/core Merge Linux v3.12-rc4 to fix a conflict and also to refresh the tree before applying more scheduler patches. Conflicts: arch/avr32/include/asm/Kbuild Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
commit
37bf06375c
893 changed files with 8766 additions and 4841 deletions
|
|
@ -14,6 +14,8 @@
|
|||
|
||||
const char hex_asc[] = "0123456789abcdef";
|
||||
EXPORT_SYMBOL(hex_asc);
|
||||
const char hex_asc_upper[] = "0123456789ABCDEF";
|
||||
EXPORT_SYMBOL(hex_asc_upper);
|
||||
|
||||
/**
|
||||
* hex_to_bin - convert a hex digit to its real value
|
||||
|
|
|
|||
|
|
@ -933,10 +933,7 @@ const struct kobj_ns_type_operations *kobj_ns_ops(struct kobject *kobj)
|
|||
|
||||
bool kobj_ns_current_may_mount(enum kobj_ns_type type)
|
||||
{
|
||||
bool may_mount = false;
|
||||
|
||||
if (type == KOBJ_NS_TYPE_NONE)
|
||||
return true;
|
||||
bool may_mount = true;
|
||||
|
||||
spin_lock(&kobj_ns_type_lock);
|
||||
if ((type > KOBJ_NS_TYPE_NONE) && (type < KOBJ_NS_TYPES) &&
|
||||
|
|
|
|||
|
|
@ -3,6 +3,22 @@
|
|||
|
||||
#ifdef CONFIG_CMPXCHG_LOCKREF
|
||||
|
||||
/*
|
||||
* Allow weakly-ordered memory architectures to provide barrier-less
|
||||
* cmpxchg semantics for lockref updates.
|
||||
*/
|
||||
#ifndef cmpxchg64_relaxed
|
||||
# define cmpxchg64_relaxed cmpxchg64
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Allow architectures to override the default cpu_relax() within CMPXCHG_LOOP.
|
||||
* This is useful for architectures with an expensive cpu_relax().
|
||||
*/
|
||||
#ifndef arch_mutex_cpu_relax
|
||||
# define arch_mutex_cpu_relax() cpu_relax()
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Note that the "cmpxchg()" reloads the "old" value for the
|
||||
* failure case.
|
||||
|
|
@ -14,12 +30,13 @@
|
|||
while (likely(arch_spin_value_unlocked(old.lock.rlock.raw_lock))) { \
|
||||
struct lockref new = old, prev = old; \
|
||||
CODE \
|
||||
old.lock_count = cmpxchg(&lockref->lock_count, \
|
||||
old.lock_count, new.lock_count); \
|
||||
old.lock_count = cmpxchg64_relaxed(&lockref->lock_count, \
|
||||
old.lock_count, \
|
||||
new.lock_count); \
|
||||
if (likely(old.lock_count == prev.lock_count)) { \
|
||||
SUCCESS; \
|
||||
} \
|
||||
cpu_relax(); \
|
||||
arch_mutex_cpu_relax(); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue