[RFC,2/3] core/lock: improve bust_locks

Message ID 20171022100648.1919-3-npiggin@gmail.com
State New
Headers show
Series
  • add support for quiescing OPAL
Related show

Commit Message

Nicholas Piggin Oct. 22, 2017, 10:06 a.m.
Prevent try_lock from modifying the lock state when bust_locks is set.
unlock will not unlock it in that case, so locks will get taken and
never released.
---
 core/lock.c | 3 +++
 1 file changed, 3 insertions(+)

Patch

diff --git a/core/lock.c b/core/lock.c
index 916a0241..b5e3323f 100644
--- a/core/lock.c
+++ b/core/lock.c
@@ -93,6 +93,9 @@  bool try_lock(struct lock *l)
 {
 	struct cpu_thread *cpu = this_cpu();
 
+	if (bust_locks)
+		return true;
+
 	if (__try_lock(cpu, l)) {
 		if (l->in_con_path)
 			cpu->con_suspend++;