[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: Rafael J. Wysocki <rjw@sisk.pl> Acked-by: Pavel Machek <pavel@ucw.cz> Cc: Stefan Seyfried <seife@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
940864ddab
commit
c8eb8b4025
3 changed files with 19 additions and 0 deletions
|
@ -120,9 +120,14 @@ extern void console_stop(struct console *);
|
|||
extern void console_start(struct console *);
|
||||
extern int is_console_locked(void);
|
||||
|
||||
#ifndef CONFIG_DISABLE_CONSOLE_SUSPEND
|
||||
/* Suspend and resume console messages over PM events */
|
||||
extern void suspend_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 */
|
||||
#if 1
|
||||
|
|
|
@ -36,6 +36,17 @@ config PM_DEBUG
|
|||
code. This is helpful when debugging and reporting various PM bugs,
|
||||
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
|
||||
bool "Suspend/resume event tracing"
|
||||
depends on PM && PM_DEBUG && X86_32 && EXPERIMENTAL
|
||||
|
|
|
@ -721,6 +721,7 @@ int __init add_preferred_console(char *name, int idx, char *options)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifndef CONFIG_DISABLE_CONSOLE_SUSPEND
|
||||
/**
|
||||
* suspend_console - suspend the console subsystem
|
||||
*
|
||||
|
@ -728,6 +729,7 @@ int __init add_preferred_console(char *name, int idx, char *options)
|
|||
*/
|
||||
void suspend_console(void)
|
||||
{
|
||||
printk("Suspending console(s)\n");
|
||||
acquire_console_sem();
|
||||
console_suspended = 1;
|
||||
}
|
||||
|
@ -737,6 +739,7 @@ void resume_console(void)
|
|||
console_suspended = 0;
|
||||
release_console_sem();
|
||||
}
|
||||
#endif /* CONFIG_DISABLE_CONSOLE_SUSPEND */
|
||||
|
||||
/**
|
||||
* acquire_console_sem - lock the console system for exclusive use.
|
||||
|
|
Loading…
Reference in a new issue