lkml.org 
[lkml]   [2011]   [May]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[25/71] PM: Fix warning in pm_restrict_gfp_mask() during SNAPSHOT_S2RAM ioctl
    2.6.38-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Rafael J. Wysocki <rjw@sisk.pl>

    commit 87186475a402391a1ca7d42a675c9b35a18dc348 upstream.

    A warning is printed by pm_restrict_gfp_mask() while the
    SNAPSHOT_S2RAM ioctl is being executed after creating a hibernation
    image, because pm_restrict_gfp_mask() has been called once already
    before the image creation and suspend_devices_and_enter() calls it
    once again. This happens after commit 452aa6999e6703ffbddd7f6ea124d3
    (mm/pm: force GFP_NOIO during suspend/hibernation and resume).

    To avoid this issue, move pm_restrict_gfp_mask() and
    pm_restore_gfp_mask() from suspend_devices_and_enter() to its caller
    in kernel/power/suspend.c.

    Reported-by: Alexandre Felipe Muller de Souza <alexandrefm@mandriva.com.br>
    Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    kernel/power/suspend.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    --- a/kernel/power/suspend.c
    +++ b/kernel/power/suspend.c
    @@ -209,7 +209,6 @@ int suspend_devices_and_enter(suspend_st
    goto Close;
    }
    suspend_console();
    - pm_restrict_gfp_mask();
    suspend_test_start();
    error = dpm_suspend_start(PMSG_SUSPEND);
    if (error) {
    @@ -226,7 +225,6 @@ int suspend_devices_and_enter(suspend_st
    suspend_test_start();
    dpm_resume_end(PMSG_RESUME);
    suspend_test_finish("resume devices");
    - pm_restore_gfp_mask();
    resume_console();
    Close:
    if (suspend_ops->end)
    @@ -287,7 +285,9 @@ int enter_state(suspend_state_t state)
    goto Finish;

    pr_debug("PM: Entering %s sleep\n", pm_states[state]);
    + pm_restrict_gfp_mask();
    error = suspend_devices_and_enter(state);
    + pm_restore_gfp_mask();

    Finish:
    pr_debug("PM: Finishing wakeup.\n");



    \
     
     \ /
      Last update: 2011-05-19 20:23    [W:0.024 / U:0.028 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site