lkml.org 
[lkml]   [2008]   [Aug]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] ftrace: disable tracing for hibernation
    Date
    From: Rafael J. Wysocki <rjw@sisk.pl>

    ftrace: disable tracing for hibernation

    In accordance with commit f42ac38c59e0a03d6da0c24a63fb211393f484b0
    ("ftrace: disable tracing for suspend to ram"), disable tracing
    around the suspend code in hibernation code paths.

    Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
    ---
    kernel/power/disk.c | 13 ++++++++++---
    1 file changed, 10 insertions(+), 3 deletions(-)

    Index: linux-2.6/kernel/power/disk.c
    ===================================================================
    --- linux-2.6.orig/kernel/power/disk.c
    +++ linux-2.6/kernel/power/disk.c
    @@ -21,6 +21,7 @@
    #include <linux/console.h>
    #include <linux/cpu.h>
    #include <linux/freezer.h>
    +#include <linux/ftrace.h>

    #include "power.h"

    @@ -255,7 +256,7 @@ static int create_image(int platform_mod

    int hibernation_snapshot(int platform_mode)
    {
    - int error;
    + int error, ftrace_save;

    /* Free memory before shutting down devices. */
    error = swsusp_shrink_memory();
    @@ -267,6 +268,7 @@ int hibernation_snapshot(int platform_mo
    goto Close;

    suspend_console();
    + ftrace_save = __ftrace_enabled_save();
    error = device_suspend(PMSG_FREEZE);
    if (error)
    goto Recover_platform;
    @@ -296,6 +298,7 @@ int hibernation_snapshot(int platform_mo
    Resume_devices:
    device_resume(in_suspend ?
    (error ? PMSG_RECOVER : PMSG_THAW) : PMSG_RESTORE);
    + __ftrace_enabled_restore(ftrace_save);
    resume_console();
    Close:
    platform_end(platform_mode);
    @@ -366,10 +369,11 @@ static int resume_target_kernel(void)

    int hibernation_restore(int platform_mode)
    {
    - int error;
    + int error, ftrace_save;

    pm_prepare_console();
    suspend_console();
    + ftrace_save = __ftrace_enabled_save();
    error = device_suspend(PMSG_QUIESCE);
    if (error)
    goto Finish;
    @@ -384,6 +388,7 @@ int hibernation_restore(int platform_mod
    platform_restore_cleanup(platform_mode);
    device_resume(PMSG_RECOVER);
    Finish:
    + __ftrace_enabled_restore(ftrace_save);
    resume_console();
    pm_restore_console();
    return error;
    @@ -396,7 +401,7 @@ int hibernation_restore(int platform_mod

    int hibernation_platform_enter(void)
    {
    - int error;
    + int error, ftrace_save;

    if (!hibernation_ops)
    return -ENOSYS;
    @@ -411,6 +416,7 @@ int hibernation_platform_enter(void)
    goto Close;

    suspend_console();
    + ftrace_save = __ftrace_enabled_save();
    error = device_suspend(PMSG_HIBERNATE);
    if (error) {
    if (hibernation_ops->recover)
    @@ -445,6 +451,7 @@ int hibernation_platform_enter(void)
    hibernation_ops->finish();
    Resume_devices:
    device_resume(PMSG_RESTORE);
    + __ftrace_enabled_restore(ftrace_save);
    resume_console();
    Close:
    hibernation_ops->end();

    \
     
     \ /
      Last update: 2008-08-28 14:39    [W:0.069 / U:31.684 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site