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.
Unified · Split
| @@ -1293,10 +1293,11 @@ again: · 1292 unmodified lines | |||
| 1293 | raw_spin_lock(&logbuf_lock); | 1293 | raw_spin_lock(&logbuf_lock); |
| 1294 | if (con_start != log_end) | 1294 | if (con_start != log_end) |
| 1295 | retry = 1; | 1295 | retry = 1; |
| 1296 | raw_spin_unlock_irqrestore(&logbuf_lock, flags); | ||
| 1297 | |||
| 1296 | if (retry && console_trylock()) | 1298 | if (retry && console_trylock()) |
| 1297 | goto again; | 1299 | goto again; |
| 1298 | 1300 | ||
| 1299 | raw_spin_unlock_irqrestore(&logbuf_lock, flags); | ||
| 1300 | if (wake_klogd) | 1301 | if (wake_klogd) |
| 1301 | wake_up_klogd(); | 1302 | wake_up_klogd(); |
| 1302 | } | 1303 | } |