cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

debug_locks.c (1267B)


      1// SPDX-License-Identifier: GPL-2.0-only
      2/*
      3 * lib/debug_locks.c
      4 *
      5 * Generic place for common debugging facilities for various locks:
      6 * spinlocks, rwlocks, mutexes and rwsems.
      7 *
      8 * Started by Ingo Molnar:
      9 *
     10 *  Copyright (C) 2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com>
     11 */
     12#include <linux/rwsem.h>
     13#include <linux/mutex.h>
     14#include <linux/export.h>
     15#include <linux/spinlock.h>
     16#include <linux/debug_locks.h>
     17
     18/*
     19 * We want to turn all lock-debugging facilities on/off at once,
     20 * via a global flag. The reason is that once a single bug has been
     21 * detected and reported, there might be cascade of followup bugs
     22 * that would just muddy the log. So we report the first one and
     23 * shut up after that.
     24 */
     25int debug_locks __read_mostly = 1;
     26EXPORT_SYMBOL_GPL(debug_locks);
     27
     28/*
     29 * The locking-testsuite uses <debug_locks_silent> to get a
     30 * 'silent failure': nothing is printed to the console when
     31 * a locking bug is detected.
     32 */
     33int debug_locks_silent __read_mostly;
     34EXPORT_SYMBOL_GPL(debug_locks_silent);
     35
     36/*
     37 * Generic 'turn off all lock debugging' function:
     38 */
     39int debug_locks_off(void)
     40{
     41	if (debug_locks && __debug_locks_off()) {
     42		if (!debug_locks_silent) {
     43			console_verbose();
     44			return 1;
     45		}
     46	}
     47	return 0;
     48}
     49EXPORT_SYMBOL_GPL(debug_locks_off);