From 62db400e83102695233497884d16a19c7e34fcd4 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 19 Jun 2024 23:00:54 +0200 Subject: Merging debian version 6.9.2-1~exp1. Signed-off-by: Daniel Baumann --- ...d-false-positive-lockdep-report-for-legac.patch | 86 ---------------------- 1 file changed, 86 deletions(-) delete mode 100644 debian/patches-rt/0048-printk-Avoid-false-positive-lockdep-report-for-legac.patch (limited to 'debian/patches-rt/0048-printk-Avoid-false-positive-lockdep-report-for-legac.patch') diff --git a/debian/patches-rt/0048-printk-Avoid-false-positive-lockdep-report-for-legac.patch b/debian/patches-rt/0048-printk-Avoid-false-positive-lockdep-report-for-legac.patch deleted file mode 100644 index 510b3c0808..0000000000 --- a/debian/patches-rt/0048-printk-Avoid-false-positive-lockdep-report-for-legac.patch +++ /dev/null @@ -1,86 +0,0 @@ -From: John Ogness -Date: Mon, 11 Dec 2023 09:34:16 +0000 -Subject: [PATCH 48/48] printk: Avoid false positive lockdep report for legacy - printing -Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/6.8/older/patches-6.8.2-rt11.tar.xz - -Legacy console printing from printk() caller context may invoke -the console driver from atomic context. This leads to a lockdep -splat because the console driver will acquire a sleeping lock -and the caller may already hold a spinning lock. This is noticed -by lockdep on !PREEMPT_RT configurations because it will lead to -a problem on PREEMPT_RT. - -However, on PREEMPT_RT the printing path from atomic context is -always avoided and the console driver is always invoked from a -dedicated thread. Thus the lockdep splat on !PREEMPT_RT is a -false positive. - -For !PREEMPT_RT override the lock-context before invoking the -console driver to avoid the false positive. - -Do not override the lock-context for PREEMPT_RT in order to -allow lockdep to catch any real locking context issues related -to the write callback usage. - -Signed-off-by: John Ogness -Signed-off-by: Sebastian Andrzej Siewior ---- - kernel/printk/printk.c | 31 ++++++++++++++++++++++++++++++- - 1 file changed, 30 insertions(+), 1 deletion(-) - ---- a/kernel/printk/printk.c -+++ b/kernel/printk/printk.c -@@ -2985,6 +2985,33 @@ bool printk_get_next_message(struct prin - } - - /* -+ * Legacy console printing from printk() caller context does not respect -+ * raw_spinlock/spinlock nesting. For !PREEMPT_RT the lockdep warning is a -+ * false positive. For PREEMPT_RT the false positive condition does not -+ * occur. -+ * -+ * This map is used to establish LD_WAIT_SLEEP context for the console write -+ * callbacks when legacy printing to avoid false positive lockdep complaints, -+ * thus allowing lockdep to continue to function for real issues. -+ */ -+#ifdef CONFIG_PREEMPT_RT -+static inline void printk_legacy_lock_map_acquire_try(void) { } -+static inline void printk_legacy_lock_map_release(void) { } -+#else -+static DEFINE_WAIT_OVERRIDE_MAP(printk_legacy_map, LD_WAIT_SLEEP); -+ -+static inline void printk_legacy_lock_map_acquire_try(void) -+{ -+ lock_map_acquire_try(&printk_legacy_map); -+} -+ -+static inline void printk_legacy_lock_map_release(void) -+{ -+ lock_map_release(&printk_legacy_map); -+} -+#endif /* CONFIG_PREEMPT_RT */ -+ -+/* - * Used as the printk buffers for non-panic, serialized console printing. - * This is for legacy (!CON_NBCON) as well as all boot (CON_BOOT) consoles. - * Its usage requires the console_lock held. -@@ -3039,7 +3066,7 @@ static bool console_emit_next_record(str - /* - * With forced threading this function is either in a thread - * or panic context. So there is no need for concern about -- * printk reentrance or handovers. -+ * printk reentrance, handovers, or lockdep complaints. - */ - - con->write(con, outbuf, pmsg.outbuf_len); -@@ -3061,7 +3088,9 @@ static bool console_emit_next_record(str - /* Do not trace print latency. */ - stop_critical_timings(); - -+ printk_legacy_lock_map_acquire_try(); - con->write(con, outbuf, pmsg.outbuf_len); -+ printk_legacy_lock_map_release(); - - start_critical_timings(); - -- cgit v1.2.3