lkml.org 
[lkml]   [2008]   [Jul]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Date
    Subject[PATCH 6/7] pm: Config option to disable handling of console during suspend/resume
    Config option allows userspace to handle console during suspend/resume
    instead of the kernel.

    Signed-off-by: Ben Collins <ben.collins@canonical.com>
    ---
    kernel/power/Kconfig | 15 +++++++++++++++
    kernel/power/console.c | 4 ++++
    2 files changed, 19 insertions(+), 0 deletions(-)

    diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
    index b45da40..6855299 100644
    --- a/kernel/power/Kconfig
    +++ b/kernel/power/Kconfig
    @@ -105,6 +105,21 @@ config SUSPEND_FREEZER

    Turning OFF this setting is NOT recommended! If in doubt, say Y.

    +config PM_DISABLE_CONSOLE
    + bool "Disable Power Management messing with the active console"
    + depends on PM
    + default n
    + ---help---
    + By default, PM will take over the active console (generally, this means
    + switching to the console when suspending from X). This can at times cause
    + problems, especially if userspace suspend scripts try to do things with
    + the console before or after suspending (e.g. calling vbestate).
    +
    + To work around this, enable this option so that PM will not handle the
    + console.
    +
    + If unsure, say N.
    +
    config HIBERNATION
    bool "Hibernation (aka 'suspend to disk')"
    depends on PM && SWAP && ARCH_HIBERNATION_POSSIBLE
    diff --git a/kernel/power/console.c b/kernel/power/console.c
    index b8628be..8b9706f 100644
    --- a/kernel/power/console.c
    +++ b/kernel/power/console.c
    @@ -33,6 +33,7 @@ EXPORT_SYMBOL(pm_set_vt_switch);

    int pm_prepare_console(void)
    {
    +#ifndef CONFIG_PM_DISABLE_CONSOLE
    acquire_console_sem();

    if (disable_vt_switch) {
    @@ -66,11 +67,13 @@ int pm_prepare_console(void)
    }
    orig_kmsg = kmsg_redirect;
    kmsg_redirect = SUSPEND_CONSOLE;
    +#endif
    return 0;
    }

    void pm_restore_console(void)
    {
    +#ifndef CONFIG_PM_DISABLE_CONSOLE
    acquire_console_sem();
    if (disable_vt_switch) {
    release_console_sem();
    @@ -79,5 +82,6 @@ void pm_restore_console(void)
    set_console(orig_fgconsole);
    release_console_sem();
    kmsg_redirect = orig_kmsg;
    +#endif
    }
    #endif
    --
    1.5.4.3


    \
     
     \ /
      Last update: 2008-07-21 06:45    [W:0.021 / U:0.392 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site