mirror of https://gitee.com/openkylin/linux.git
Revert "Revert "console: implement lockdep support for console_lock""
This reverts commitff0d05bf73
. Now that we have all the locking fixes in place, we can revert the revert. This re-enables lockdep tracking for the console lock,daee779718
. Signed-off-by: Dave Airlie <airlied@redhat.com>
This commit is contained in:
parent
054430e773
commit
5845b81bda
|
@ -87,6 +87,12 @@ static DEFINE_SEMAPHORE(console_sem);
|
||||||
struct console *console_drivers;
|
struct console *console_drivers;
|
||||||
EXPORT_SYMBOL_GPL(console_drivers);
|
EXPORT_SYMBOL_GPL(console_drivers);
|
||||||
|
|
||||||
|
#ifdef CONFIG_LOCKDEP
|
||||||
|
static struct lockdep_map console_lock_dep_map = {
|
||||||
|
.name = "console_lock"
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This is used for debugging the mess that is the VT code by
|
* This is used for debugging the mess that is the VT code by
|
||||||
* keeping track if we have the console semaphore held. It's
|
* keeping track if we have the console semaphore held. It's
|
||||||
|
@ -1918,6 +1924,7 @@ void console_lock(void)
|
||||||
return;
|
return;
|
||||||
console_locked = 1;
|
console_locked = 1;
|
||||||
console_may_schedule = 1;
|
console_may_schedule = 1;
|
||||||
|
mutex_acquire(&console_lock_dep_map, 0, 0, _RET_IP_);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(console_lock);
|
EXPORT_SYMBOL(console_lock);
|
||||||
|
|
||||||
|
@ -1939,6 +1946,7 @@ int console_trylock(void)
|
||||||
}
|
}
|
||||||
console_locked = 1;
|
console_locked = 1;
|
||||||
console_may_schedule = 0;
|
console_may_schedule = 0;
|
||||||
|
mutex_acquire(&console_lock_dep_map, 0, 1, _RET_IP_);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(console_trylock);
|
EXPORT_SYMBOL(console_trylock);
|
||||||
|
@ -2099,6 +2107,7 @@ void console_unlock(void)
|
||||||
local_irq_restore(flags);
|
local_irq_restore(flags);
|
||||||
}
|
}
|
||||||
console_locked = 0;
|
console_locked = 0;
|
||||||
|
mutex_release(&console_lock_dep_map, 1, _RET_IP_);
|
||||||
|
|
||||||
/* Release the exclusive_console once it is used */
|
/* Release the exclusive_console once it is used */
|
||||||
if (unlikely(exclusive_console))
|
if (unlikely(exclusive_console))
|
||||||
|
|
Loading…
Reference in New Issue