summaryrefslogtreecommitdiffstats
path: root/lib/lockref.c
diff options
context:
space:
mode:
authorBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>2019-06-19 15:18:48 +0200
committerBartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>2019-06-19 15:18:48 +0200
commit2ee692802b8f6c54bd6499addd3d07c2833d84d8 (patch)
tree6aa9a7de774804de0d5a944436a380eb99a6ac68 /lib/lockref.c
parent0f5a5712ad1e3b8472b1c1459681dadad9277067 (diff)
parent1dcff4ae65185e8c0300972f6d8d39d9a9db2bda (diff)
downloadtalos-op-linux-2ee692802b8f6c54bd6499addd3d07c2833d84d8.tar.gz
talos-op-linux-2ee692802b8f6c54bd6499addd3d07c2833d84d8.zip
Merge tag 'topic/remove-fbcon-notifiers-2019-06-14-1' of git://anongit.freedesktop.org/drm/drm-misc into fbdev-for-next
topic/remove-fbcon-notifiers: - remove fbdev notifier usage for fbcon, as prep work to clean up the fbcon locking - assorted locking checks in vt/console code - assorted notifier and cleanups in fbdev and backlight code One trivial merge conflict fixed. Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Diffstat (limited to 'lib/lockref.c')
-rw-r--r--lib/lockref.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/lockref.c b/lib/lockref.c
index 3d468b53d4c9..5b34bbd3eba8 100644
--- a/lib/lockref.c
+++ b/lib/lockref.c
@@ -9,6 +9,7 @@
* failure case.
*/
#define CMPXCHG_LOOP(CODE, SUCCESS) do { \
+ int retry = 100; \
struct lockref old; \
BUILD_BUG_ON(sizeof(old) != 8); \
old.lock_count = READ_ONCE(lockref->lock_count); \
@@ -21,6 +22,8 @@
if (likely(old.lock_count == prev.lock_count)) { \
SUCCESS; \
} \
+ if (!--retry) \
+ break; \
cpu_relax(); \
} \
} while (0)
OpenPOWER on IntegriCloud