From 2c3c1048746a4622d8c89a29670120dc8fab93c4 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 20:49:45 +0200 Subject: Adding upstream version 6.1.76. Signed-off-by: Daniel Baumann --- lib/debug_locks.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 lib/debug_locks.c (limited to 'lib/debug_locks.c') diff --git a/lib/debug_locks.c b/lib/debug_locks.c new file mode 100644 index 000000000..a75ee30b7 --- /dev/null +++ b/lib/debug_locks.c @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* + * lib/debug_locks.c + * + * Generic place for common debugging facilities for various locks: + * spinlocks, rwlocks, mutexes and rwsems. + * + * Started by Ingo Molnar: + * + * Copyright (C) 2006 Red Hat, Inc., Ingo Molnar + */ +#include +#include +#include +#include +#include + +/* + * We want to turn all lock-debugging facilities on/off at once, + * via a global flag. The reason is that once a single bug has been + * detected and reported, there might be cascade of followup bugs + * that would just muddy the log. So we report the first one and + * shut up after that. + */ +int debug_locks __read_mostly = 1; +EXPORT_SYMBOL_GPL(debug_locks); + +/* + * The locking-testsuite uses to get a + * 'silent failure': nothing is printed to the console when + * a locking bug is detected. + */ +int debug_locks_silent __read_mostly; +EXPORT_SYMBOL_GPL(debug_locks_silent); + +/* + * Generic 'turn off all lock debugging' function: + */ +int debug_locks_off(void) +{ + if (debug_locks && __debug_locks_off()) { + if (!debug_locks_silent) { + console_verbose(); + return 1; + } + } + return 0; +} +EXPORT_SYMBOL_GPL(debug_locks_off); -- cgit v1.2.3