diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/power/hibernate.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c index 4710f1b142fc..5454cc639a8d 100644 --- a/kernel/power/hibernate.c +++ b/kernel/power/hibernate.c | |||
| @@ -1053,7 +1053,7 @@ static ssize_t resume_store(struct kobject *kobj, struct kobj_attribute *attr, | |||
| 1053 | lock_system_sleep(); | 1053 | lock_system_sleep(); |
| 1054 | swsusp_resume_device = res; | 1054 | swsusp_resume_device = res; |
| 1055 | unlock_system_sleep(); | 1055 | unlock_system_sleep(); |
| 1056 | pr_info("Starting manual resume from disk\n"); | 1056 | pm_pr_dbg("Configured resume from disk to %u\n", swsusp_resume_device); |
| 1057 | noresume = 0; | 1057 | noresume = 0; |
| 1058 | software_resume(); | 1058 | software_resume(); |
| 1059 | return n; | 1059 | return n; |
| @@ -1061,6 +1061,29 @@ static ssize_t resume_store(struct kobject *kobj, struct kobj_attribute *attr, | |||
| 1061 | 1061 | ||
| 1062 | power_attr(resume); | 1062 | power_attr(resume); |
| 1063 | 1063 | ||
| 1064 | static ssize_t resume_offset_show(struct kobject *kobj, | ||
| 1065 | struct kobj_attribute *attr, char *buf) | ||
| 1066 | { | ||
| 1067 | return sprintf(buf, "%llu\n", (unsigned long long)swsusp_resume_block); | ||
| 1068 | } | ||
| 1069 | |||
| 1070 | static ssize_t resume_offset_store(struct kobject *kobj, | ||
| 1071 | struct kobj_attribute *attr, const char *buf, | ||
| 1072 | size_t n) | ||
| 1073 | { | ||
| 1074 | unsigned long long offset; | ||
| 1075 | int rc; | ||
| 1076 | |||
| 1077 | rc = kstrtoull(buf, 0, &offset); | ||
| 1078 | if (rc) | ||
| 1079 | return rc; | ||
| 1080 | swsusp_resume_block = offset; | ||
| 1081 | |||
| 1082 | return n; | ||
| 1083 | } | ||
| 1084 | |||
| 1085 | power_attr(resume_offset); | ||
| 1086 | |||
| 1064 | static ssize_t image_size_show(struct kobject *kobj, struct kobj_attribute *attr, | 1087 | static ssize_t image_size_show(struct kobject *kobj, struct kobj_attribute *attr, |
| 1065 | char *buf) | 1088 | char *buf) |
| 1066 | { | 1089 | { |
| @@ -1106,6 +1129,7 @@ power_attr(reserved_size); | |||
| 1106 | 1129 | ||
| 1107 | static struct attribute * g[] = { | 1130 | static struct attribute * g[] = { |
| 1108 | &disk_attr.attr, | 1131 | &disk_attr.attr, |
| 1132 | &resume_offset_attr.attr, | ||
| 1109 | &resume_attr.attr, | 1133 | &resume_attr.attr, |
| 1110 | &image_size_attr.attr, | 1134 | &image_size_attr.attr, |
| 1111 | &reserved_size_attr.attr, | 1135 | &reserved_size_attr.attr, |
