]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - kernel/power/console.c
[PATCH] x86-64: split remaining fake nodes equally
[linux-2.6-omap-h63xx.git] / kernel / power / console.c
index 7ff375e7c95f3cf24ab52adf62a688849684e05f..89bcf4973ee51cb8cc8028c6a3cf6a2272367b0a 100644 (file)
@@ -9,18 +9,13 @@
 #include <linux/console.h>
 #include "power.h"
 
-static int new_loglevel = 10;
-static int orig_loglevel;
-#ifdef SUSPEND_CONSOLE
+#if defined(CONFIG_VT) && defined(CONFIG_VT_CONSOLE)
+#define SUSPEND_CONSOLE        (MAX_NR_CONSOLES-1)
+
 static int orig_fgconsole, orig_kmsg;
-#endif
 
 int pm_prepare_console(void)
 {
-       orig_loglevel = console_loglevel;
-       console_loglevel = new_loglevel;
-
-#ifdef SUSPEND_CONSOLE
        acquire_console_sem();
 
        orig_fgconsole = fg_console;
@@ -32,7 +27,15 @@ int pm_prepare_console(void)
                return 1;
        }
 
-       set_console(SUSPEND_CONSOLE);
+       if (set_console(SUSPEND_CONSOLE)) {
+               /*
+                * We're unable to switch to the SUSPEND_CONSOLE.
+                * Let the calling function know so it can decide
+                * what to do.
+                */
+               release_console_sem();
+               return 1;
+       }
        release_console_sem();
 
        if (vt_waitactive(SUSPEND_CONSOLE)) {
@@ -41,18 +44,15 @@ int pm_prepare_console(void)
        }
        orig_kmsg = kmsg_redirect;
        kmsg_redirect = SUSPEND_CONSOLE;
-#endif
        return 0;
 }
 
 void pm_restore_console(void)
 {
-       console_loglevel = orig_loglevel;
-#ifdef SUSPEND_CONSOLE
        acquire_console_sem();
        set_console(orig_fgconsole);
        release_console_sem();
        kmsg_redirect = orig_kmsg;
-#endif
        return;
 }
+#endif