X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=lib%2Fdump_stack.c;h=287ea178f0fa951a225032a4ebc84030cca5cdcb;hb=7e065e0242fc285cc29c5ea4a80d108262af5148;hp=c5edbedd364dce20f028614c0b7679878e70913d;hpb=6daa0839235df0d8933b7d72aee2b956b72d3c1b;p=people%2Farne_f%2Fkernel.git diff --git a/lib/dump_stack.c b/lib/dump_stack.c index c5edbedd364dc..287ea178f0fa9 100644 --- a/lib/dump_stack.c +++ b/lib/dump_stack.c @@ -46,7 +46,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; }