diff options
| author | Rafael J. Wysocki <rjw@sisk.pl> | 2006-02-01 06:05:21 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-02-01 11:53:14 -0500 |
| commit | f7b8988ff50d99c99746f65f420364e91362c065 (patch) | |
| tree | ca7b0e93ea3991fe24aee2c88fe54a02f92739ea /kernel | |
| parent | a8183ebb45324ef99f98a175623d67cdcec4466f (diff) | |
[PATCH] swsusp: do not change log level during suspend/resume
Prevent the kernel from setting the log level to 10 unconditionally during
suspend/resume which was needed in the past for debugging, but generally is
undesirable.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Acked-by: Pavel Machek <pavel@suse.cz>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/power/console.c | 12 | ||||
| -rw-r--r-- | kernel/power/power.h | 5 |
2 files changed, 6 insertions, 11 deletions
diff --git a/kernel/power/console.c b/kernel/power/console.c index 7ff375e7c95f..579d239d129f 100644 --- a/kernel/power/console.c +++ b/kernel/power/console.c | |||
| @@ -9,18 +9,11 @@ | |||
| 9 | #include <linux/console.h> | 9 | #include <linux/console.h> |
| 10 | #include "power.h" | 10 | #include "power.h" |
| 11 | 11 | ||
| 12 | static int new_loglevel = 10; | ||
| 13 | static int orig_loglevel; | ||
| 14 | #ifdef SUSPEND_CONSOLE | 12 | #ifdef SUSPEND_CONSOLE |
| 15 | static int orig_fgconsole, orig_kmsg; | 13 | static int orig_fgconsole, orig_kmsg; |
| 16 | #endif | ||
| 17 | 14 | ||
| 18 | int pm_prepare_console(void) | 15 | int pm_prepare_console(void) |
| 19 | { | 16 | { |
| 20 | orig_loglevel = console_loglevel; | ||
| 21 | console_loglevel = new_loglevel; | ||
| 22 | |||
| 23 | #ifdef SUSPEND_CONSOLE | ||
| 24 | acquire_console_sem(); | 17 | acquire_console_sem(); |
| 25 | 18 | ||
| 26 | orig_fgconsole = fg_console; | 19 | orig_fgconsole = fg_console; |
| @@ -41,18 +34,15 @@ int pm_prepare_console(void) | |||
| 41 | } | 34 | } |
| 42 | orig_kmsg = kmsg_redirect; | 35 | orig_kmsg = kmsg_redirect; |
| 43 | kmsg_redirect = SUSPEND_CONSOLE; | 36 | kmsg_redirect = SUSPEND_CONSOLE; |
| 44 | #endif | ||
| 45 | return 0; | 37 | return 0; |
| 46 | } | 38 | } |
| 47 | 39 | ||
| 48 | void pm_restore_console(void) | 40 | void pm_restore_console(void) |
| 49 | { | 41 | { |
| 50 | console_loglevel = orig_loglevel; | ||
| 51 | #ifdef SUSPEND_CONSOLE | ||
| 52 | acquire_console_sem(); | 42 | acquire_console_sem(); |
| 53 | set_console(orig_fgconsole); | 43 | set_console(orig_fgconsole); |
| 54 | release_console_sem(); | 44 | release_console_sem(); |
| 55 | kmsg_redirect = orig_kmsg; | 45 | kmsg_redirect = orig_kmsg; |
| 56 | #endif | ||
| 57 | return; | 46 | return; |
| 58 | } | 47 | } |
| 48 | #endif | ||
diff --git a/kernel/power/power.h b/kernel/power/power.h index 61beb5e0e927..d8f0d1a76bae 100644 --- a/kernel/power/power.h +++ b/kernel/power/power.h | |||
| @@ -42,8 +42,13 @@ static struct subsys_attribute _name##_attr = { \ | |||
| 42 | 42 | ||
| 43 | extern struct subsystem power_subsys; | 43 | extern struct subsystem power_subsys; |
| 44 | 44 | ||
| 45 | #ifdef SUSPEND_CONSOLE | ||
| 45 | extern int pm_prepare_console(void); | 46 | extern int pm_prepare_console(void); |
| 46 | extern void pm_restore_console(void); | 47 | extern void pm_restore_console(void); |
| 48 | #else | ||
| 49 | static int pm_prepare_console(void) { return 0; } | ||
| 50 | static void pm_restore_console(void) {} | ||
| 51 | #endif | ||
| 47 | 52 | ||
| 48 | /* References to section boundaries */ | 53 | /* References to section boundaries */ |
| 49 | extern const void __nosave_begin, __nosave_end; | 54 | extern const void __nosave_begin, __nosave_end; |
