From 53c85ee96893f297a26dbab2c2365755d38662a9 Mon Sep 17 00:00:00 2001 From: Peter Zijlstra Date: Wed, 30 Nov 2011 15:03:02 +1100 Subject: [PATCH] printk: avoid double lock acquire Commit 4f2a8d3cf5e ("printk: Fix console_sem vs logbuf_lock unlock race") introduced another silly bug where we would want to acquire an already held lock. Avoid this. Reported-by: Andrea Arcangeli Signed-off-by: Peter Zijlstra Cc: Ingo Molnar Signed-off-by: Andrew Morton --- kernel/printk.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/kernel/printk.c b/kernel/printk.c index dfd8f73dcb76..187662f29aaf 100644 --- a/kernel/printk.c +++ b/kernel/printk.c @@ -1292,10 +1292,11 @@ again: raw_spin_lock(&logbuf_lock); if (con_start != log_end) retry = 1; + raw_spin_unlock_irqrestore(&logbuf_lock, flags); + if (retry && console_trylock()) goto again; - raw_spin_unlock_irqrestore(&logbuf_lock, flags); if (wake_klogd) wake_up_klogd(); } -- 2.39.5