提交 c8eb8b40 编写于 作者: R Rafael J. Wysocki 提交者: Linus Torvalds

[PATCH] PM: make it possible to disable console suspending

Change suspend_console() so that it waits for all consoles to flush the
remaining messages and make it possible to switch the console suspending off
with the help of a Kconfig option.
Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
Acked-by: NPavel Machek <pavel@ucw.cz>
Cc: Stefan Seyfried <seife@suse.de>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 940864dd
...@@ -120,9 +120,14 @@ extern void console_stop(struct console *); ...@@ -120,9 +120,14 @@ extern void console_stop(struct console *);
extern void console_start(struct console *); extern void console_start(struct console *);
extern int is_console_locked(void); extern int is_console_locked(void);
#ifndef CONFIG_DISABLE_CONSOLE_SUSPEND
/* Suspend and resume console messages over PM events */ /* Suspend and resume console messages over PM events */
extern void suspend_console(void); extern void suspend_console(void);
extern void resume_console(void); extern void resume_console(void);
#else
static inline void suspend_console(void) {}
static inline void resume_console(void) {}
#endif /* CONFIG_DISABLE_CONSOLE_SUSPEND */
/* Some debug stub to catch some of the obvious races in the VT code */ /* Some debug stub to catch some of the obvious races in the VT code */
#if 1 #if 1
......
...@@ -36,6 +36,17 @@ config PM_DEBUG ...@@ -36,6 +36,17 @@ config PM_DEBUG
code. This is helpful when debugging and reporting various PM bugs, code. This is helpful when debugging and reporting various PM bugs,
like suspend support. like suspend support.
config DISABLE_CONSOLE_SUSPEND
bool "Keep console(s) enabled during suspend/resume (DANGEROUS)"
depends on PM && PM_DEBUG
default n
---help---
This option turns off the console suspend mechanism that prevents
debug messages from reaching the console during the suspend/resume
operations. This may be helpful when debugging device drivers'
suspend/resume routines, but may itself lead to problems, for example
if netconsole is used.
config PM_TRACE config PM_TRACE
bool "Suspend/resume event tracing" bool "Suspend/resume event tracing"
depends on PM && PM_DEBUG && X86_32 && EXPERIMENTAL depends on PM && PM_DEBUG && X86_32 && EXPERIMENTAL
......
...@@ -721,6 +721,7 @@ int __init add_preferred_console(char *name, int idx, char *options) ...@@ -721,6 +721,7 @@ int __init add_preferred_console(char *name, int idx, char *options)
return 0; return 0;
} }
#ifndef CONFIG_DISABLE_CONSOLE_SUSPEND
/** /**
* suspend_console - suspend the console subsystem * suspend_console - suspend the console subsystem
* *
...@@ -728,6 +729,7 @@ int __init add_preferred_console(char *name, int idx, char *options) ...@@ -728,6 +729,7 @@ int __init add_preferred_console(char *name, int idx, char *options)
*/ */
void suspend_console(void) void suspend_console(void)
{ {
printk("Suspending console(s)\n");
acquire_console_sem(); acquire_console_sem();
console_suspended = 1; console_suspended = 1;
} }
...@@ -737,6 +739,7 @@ void resume_console(void) ...@@ -737,6 +739,7 @@ void resume_console(void)
console_suspended = 0; console_suspended = 0;
release_console_sem(); release_console_sem();
} }
#endif /* CONFIG_DISABLE_CONSOLE_SUSPEND */
/** /**
* acquire_console_sem - lock the console system for exclusive use. * acquire_console_sem - lock the console system for exclusive use.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册