Messages in this thread Patch in this message | | | From | John Ogness <> | Subject | [PATCH printk v2 11/11] lockdep: Add atomic write enforcement for lockdep splats | Date | Wed, 20 Sep 2023 01:14:56 +0206 |
| |
Invoke the atomic write enforcement functions for lockdep splats to ensure that the information gets out to the consoles.
It is important to note that if there are any legacy consoles registered, they will be attempting to directly print from the printk-caller context, which may jeopardize the reliability of the atomic consoles. Optimally there should be no legacy consoles registered.
Signed-off-by: John Ogness <john.ogness@linutronix.de> --- kernel/locking/lockdep.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c index e85b5ad3e206..5310a94e3efd 100644 --- a/kernel/locking/lockdep.c +++ b/kernel/locking/lockdep.c @@ -56,6 +56,7 @@ #include <linux/kprobes.h> #include <linux/lockdep.h> #include <linux/context_tracking.h> +#include <linux/console.h> #include <asm/sections.h> @@ -3967,9 +3968,13 @@ static void print_usage_bug(struct task_struct *curr, struct held_lock *this, enum lock_usage_bit prev_bit, enum lock_usage_bit new_bit) { + enum nbcon_prio prev_prio; + if (!debug_locks_off() || debug_locks_silent) return; + prev_prio = nbcon_atomic_enter(NBCON_PRIO_EMERGENCY); + pr_warn("\n"); pr_warn("================================\n"); pr_warn("WARNING: inconsistent lock state\n"); @@ -3998,6 +4003,8 @@ print_usage_bug(struct task_struct *curr, struct held_lock *this, pr_warn("\nstack backtrace:\n"); dump_stack(); + + nbcon_atomic_exit(NBCON_PRIO_EMERGENCY, prev_prio); } /* -- 2.39.2
| |