Merge changes related to system sleep, PM domains changes and power management documentation changes for 5.18-rc1: - Fix load_image_and_restore() error path (Ye Bin). - Fix typos in comments in the system wakeup hadling code (Tom Rix). - Clean up non-kernel-doc comments in hibernation code (Jiapeng Chong). - Fix __setup handler error handling in system-wide suspend and hibernation core code (Randy Dunlap). - Add device name to suspend_report_result() (Youngjin Jang). - Make virtual guests honour ACPI S4 hardware signature by default (David Woodhouse). - Block power off of a parent PM domain unless child is in deepest state (Ulf Hansson). - Use dev_err_probe() to simplify error handling for generic PM domains (Ahmad Fatoum). - Fix sleep-in-atomic bug caused by genpd_debug_remove() (Shawn Guo). - Document Intel uncore frequency scaling (Srinivas Pandruvada). * pm-sleep: PM: hibernate: Honour ACPI hardware signature by default for virtual guests PM: sleep: Add device name to suspend_report_result() PM: suspend: fix return value of __setup handler PM: hibernate: fix __setup handler error handling PM: hibernate: Clean up non-kernel-doc comments PM: sleep: wakeup: Fix typos in comments PM: hibernate: fix load_image_and_restore() error path * pm-domains: PM: domains: Fix sleep-in-atomic bug caused by genpd_debug_remove() PM: domains: use dev_err_probe() to simplify error handling PM: domains: Prevent power off for parent unless child is in deepest state * pm-docs: Documentation: admin-guide: pm: Document uncore frequency scaling
Showing the changes to kernel (3 of 16 files). Show all
Unified · Split
| @@ -689,8 +689,10 @@ static int load_image_and_restore(void) · 688 unmodified lines | |||
| 689 | 689 | ||
| 690 | lock_device_hotplug(); | 690 | lock_device_hotplug(); |
| 691 | error = create_basic_memory_bitmaps(); | 691 | error = create_basic_memory_bitmaps(); |
| 692 | if (error) | 692 | if (error) { |
| 693 | swsusp_close(FMODE_READ | FMODE_EXCL); | ||
| 693 | goto Unlock; | 694 | goto Unlock; |
| 695 | } | ||
| 694 | 696 | ||
| 695 | error = swsusp_read(&flags); | 697 | error = swsusp_read(&flags); |
| 696 | swsusp_close(FMODE_READ | FMODE_EXCL); | 698 | swsusp_close(FMODE_READ | FMODE_EXCL); |
| @@ -1328,7 +1330,7 @@ static int __init resumedelay_setup(char *str) · 631 unmodified lines | |||
| 1328 | int rc = kstrtouint(str, 0, &resume_delay); | 1330 | int rc = kstrtouint(str, 0, &resume_delay); |
| 1329 | 1331 | ||
| 1330 | if (rc) | 1332 | if (rc) |
| 1331 | return rc; | 1333 | pr_warn("resumedelay: bad option string '%s'\n", str); |
| 1332 | return 1; | 1334 | return 1; |
| 1333 | } | 1335 | } |
| 1334 | 1336 | ||
| @@ -157,22 +157,22 @@ static int __init setup_test_suspend(char *value) · 156 unmodified lines | |||
| 157 | value++; | 157 | value++; |
| 158 | suspend_type = strsep(&value, ","); | 158 | suspend_type = strsep(&value, ","); |
| 159 | if (!suspend_type) | 159 | if (!suspend_type) |
| 160 | return 0; | 160 | return 1; |
| 161 | 161 | ||
| 162 | repeat = strsep(&value, ","); | 162 | repeat = strsep(&value, ","); |
| 163 | if (repeat) { | 163 | if (repeat) { |
| 164 | if (kstrtou32(repeat, 0, &test_repeat_count_max)) | 164 | if (kstrtou32(repeat, 0, &test_repeat_count_max)) |
| 165 | return 0; | 165 | return 1; |
| 166 | } | 166 | } |
| 167 | 167 | ||
| 168 | for (i = PM_SUSPEND_MIN; i < PM_SUSPEND_MAX; i++) | 168 | for (i = PM_SUSPEND_MIN; i < PM_SUSPEND_MAX; i++) |
| 169 | if (!strcmp(pm_labels[i], suspend_type)) { | 169 | if (!strcmp(pm_labels[i], suspend_type)) { |
| 170 | test_state_label = pm_labels[i]; | 170 | test_state_label = pm_labels[i]; |
| 171 | return 0; | 171 | return 1; |
| 172 | } | 172 | } |
| 173 | 173 | ||
| 174 | printk(warn_bad_state, suspend_type); | 174 | printk(warn_bad_state, suspend_type); |
| 175 | return 0; | 175 | return 1; |
| 176 | } | 176 | } |
| 177 | __setup("test_suspend", setup_test_suspend); | 177 | __setup("test_suspend", setup_test_suspend); |
| 178 | 178 | ||
| @@ -89,7 +89,7 @@ struct swap_map_page_list { · 88 unmodified lines | |||
| 89 | struct swap_map_page_list *next; | 89 | struct swap_map_page_list *next; |
| 90 | }; | 90 | }; |
| 91 | 91 | ||
| 92 | /** | 92 | /* |
| 93 | * The swap_map_handle structure is used for handling swap in | 93 | * The swap_map_handle structure is used for handling swap in |
| 94 | * a file-alike way | 94 | * a file-alike way |
| 95 | */ | 95 | */ |
| @@ -117,7 +117,7 @@ struct swsusp_header { · 21 unmodified lines | |||
| 117 | 117 | ||
| 118 | static struct swsusp_header *swsusp_header; | 118 | static struct swsusp_header *swsusp_header; |
| 119 | 119 | ||
| 120 | /** | 120 | /* |
| 121 | * The following functions are used for tracing the allocated | 121 | * The following functions are used for tracing the allocated |
| 122 | * swap pages, so that they can be freed in case of an error. | 122 | * swap pages, so that they can be freed in case of an error. |
| 123 | */ | 123 | */ |
| @@ -171,7 +171,7 @@ static int swsusp_extents_insert(unsigned long swap_offset) · 47 unmodified lines | |||
| 171 | return 0; | 171 | return 0; |
| 172 | } | 172 | } |
| 173 | 173 | ||
| 174 | /** | 174 | /* |
| 175 | * alloc_swapdev_block - allocate a swap page and register that it has | 175 | * alloc_swapdev_block - allocate a swap page and register that it has |
| 176 | * been allocated, so that it can be freed in case of an error. | 176 | * been allocated, so that it can be freed in case of an error. |
| 177 | */ | 177 | */ |
| @@ -190,7 +190,7 @@ sector_t alloc_swapdev_block(int swap) · 12 unmodified lines | |||
| 190 | return 0; | 190 | return 0; |
| 191 | } | 191 | } |
| 192 | 192 | ||
| 193 | /** | 193 | /* |
| 194 | * free_all_swap_pages - free swap pages allocated for saving image data. | 194 | * free_all_swap_pages - free swap pages allocated for saving image data. |
| 195 | * It also frees the extents used to register which swap entries had been | 195 | * It also frees the extents used to register which swap entries had been |
| 196 | * allocated. | 196 | * allocated. |