lkml.org 
[lkml]   [2018]   [Jun]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC PATCH 12/12] PM / hibernate: update the resume offset on SNAPSHOT_SET_SWAP_AREA
    Date
    From: Aleksei Besogonov <cyberax@amazon.com>

    The SNAPSHOT_SET_SWAP_AREA is supposed to be used to set the hibernation
    offset on a running kernel to enable hibernating to a swap file.
    However, it doesn't actually update the swsusp_resume_block variable. As
    a result, the hibernation fails at the last step (after all the data is
    written out) in the validation of the swap signature in
    mark_swapfiles().

    Before this patch, the command line processing was the only place where
    swsusp_resume_block was set.

    Signed-off-by: Aleksei Besogonov <cyberax@amazon.com>
    Signed-off-by: Munehisa Kamata <kamatam@amazon.com>
    Signed-off-by: Anchal Agarwal <anchalag@amazon.com>
    Reviewed-by: Munehisa Kamata <kamatam@amazon.com>
    Reviewed-by: Eduardo Valentin <eduval@amazon.com>
    ---
    kernel/power/user.c | 6 +++++-
    1 file changed, 5 insertions(+), 1 deletion(-)

    diff --git a/kernel/power/user.c b/kernel/power/user.c
    index abd2255..b522a42 100644
    --- a/kernel/power/user.c
    +++ b/kernel/power/user.c
    @@ -379,8 +379,12 @@ static long snapshot_ioctl(struct file *filp, unsigned int cmd,
    if (swdev) {
    offset = swap_area.offset;
    data->swap = swap_type_of(swdev, offset, NULL);
    - if (data->swap < 0)
    + if (data->swap < 0) {
    error = -ENODEV;
    + } else {
    + swsusp_resume_device = swdev;
    + swsusp_resume_block = offset;
    + }
    } else {
    data->swap = -1;
    error = -EINVAL;
    --
    2.7.4
    \
     
     \ /
      Last update: 2018-06-12 22:58    [W:4.184 / U:0.148 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site