summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorLuck, Tony <tony.luck@intel.com>2013-09-03 21:49:49 (GMT)
committerLinus Torvalds <torvalds@linux-foundation.org>2013-09-03 22:36:42 (GMT)
commitd472d9d98b463dd7a04f2bcdeafe4261686ce6ab (patch)
tree05972418a7e71d3e8d5a9c8c8d5e1dc22f013c5b /lib
parent2f01ea908bcf838e815c0124b579513dbda3b8c8 (diff)
downloadlinux-fsl-qoriq-d472d9d98b463dd7a04f2bcdeafe4261686ce6ab.tar.xz
lockref: Relax in cmpxchg loop
While we are likley to succeed and break out of this loop, it isn't guaranteed. We should be power and thread friendly if we do have to go around for a second (or third, or more) attempt. Signed-off-by: Tony Luck <tony.luck@intel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/lockref.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/lockref.c b/lib/lockref.c
index 7819c2d..9d76f40 100644
--- a/lib/lockref.c
+++ b/lib/lockref.c
@@ -19,6 +19,7 @@
if (likely(old.lock_count == prev.lock_count)) { \
SUCCESS; \
} \
+ cpu_relax(); \
} \
} while (0)