[Skiboot] [RFC PATCH 2/3] core/lock: improve bust_locks

Nicholas Piggin npiggin at gmail.com
Sun Oct 22 21:06:47 AEDT 2017


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(+)

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++;
-- 
2.13.3



More information about the Skiboot mailing list