aboutsummaryrefslogtreecommitdiffstats
path: root/lib/dump_stack.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-11-11 06:23:37 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2019-11-11 06:23:37 +0100
commitf0cb9b5dfd1a6014349354e63768500a860cad53 (patch)
treeb18478292c622b7cfbc4f49dc52e1f3816ac1b99 /lib/dump_stack.c
parentstaging: vchiq: Have vchiu_queue_init() return 0 on success. (diff)
parentLinux 5.4-rc7 (diff)
downloadlinux-dev-f0cb9b5dfd1a6014349354e63768500a860cad53.tar.xz
linux-dev-f0cb9b5dfd1a6014349354e63768500a860cad53.zip
Merge 5.4-rc7 into staging-next
We want the staging fixes in here, and it resolves some merge issues. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'lib/dump_stack.c')
-rw-r--r--lib/dump_stack.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/dump_stack.c b/lib/dump_stack.c
index 5cff72f18c4a..33ffbf308853 100644
--- a/lib/dump_stack.c
+++ b/lib/dump_stack.c
@@ -106,7 +106,12 @@ retry:
was_locked = 1;
} else {
local_irq_restore(flags);
- cpu_relax();
+ /*
+ * Wait for the lock to release before jumping to
+ * atomic_cmpxchg() in order to mitigate the thundering herd
+ * problem.
+ */
+ do { cpu_relax(); } while (atomic_read(&dump_lock) != -1);
goto retry;
}