Power management updates for 5.17-rc2
- Make the buffer handling in pm_show_wakelocks() more robust by using sysfs_emit_at() in it to generate output (Greg Kroah-Hartman). - Drop register_nosave_region_late() which is not used (Amadeusz Sławiński). -----BEGIN PGP SIGNATURE----- iQJGBAABCAAwFiEE4fcc61cGeeHD/fCwgsRv/nhiVHEFAmHz6CASHHJqd0Byand5 c29ja2kubmV0AAoJEILEb/54YlRxwEMP/2WnqXjyNvhpw8x0qqz7qHU+2SJuqZBT FRyY574tGQlBqsatfJAvWVtC8hFOHAKClKNinxemwXNzHHUv5era4WNTu0xvdykf w6pCgHfHGd+eHB9hWD4Q4lXL3ohv16A3859ldprChN0vygmnoPOBXcvJMO277dNn b1IobLhr3HMNGK3d4eZY/+xN2SP/dOyJmzK+R8reUGwzVa52PNPii0jxF0N2FyWg hKIUKNnryQ56TMJyNbpJM47zOe7IgN7YGjSuI1Vx8P5HfSYCmQ+EVmv7qhN6THX/ s1ONWUwZxn/8cgGX/5XCK9b4cAwHZZ2peC/AWueL4qFmXgHHVNRC2rm5Ywn2eVFd pyyNsZGWLXxpS02g69CR32fiUn3Hh/YKFRDOtg/nibTJ1Gu2xFeGo8xBYqDp26Zl z2squ2zWBLxnT6cg2ie9mjy7KTcIcCecWiEv20n3b3qQ+kd2e0AKvV+LN8IeisFI q1cHnAwzgG9oMayDMDl2LdzpH9UvxIGJyT8ucSFoShK2TlV/ZPGz0HkZHRLOvFPc VAhAP+E9dNr2bd11Eme9Ts02PvKeIJ7tCQ4xa/PfPwQXsg030VldQC+YXKO3CPga 70EsSyk+ryFRG7nhTVqFVSdcnKKiUFHrxWtC7a/ePvPVCjvvkEeqnqam0dRisLhg HFDWrKFJ78i+ =P7NO -----END PGP SIGNATURE----- Merge tag 'pm-5.17-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management fixes from Rafael Wysocki: "These make the buffer handling in pm_show_wakelocks() more robust and drop an unused hibernation-related function. Specifics: - Make the buffer handling in pm_show_wakelocks() more robust by using sysfs_emit_at() in it to generate output (Greg Kroah-Hartman). - Drop register_nosave_region_late() which is not used (Amadeusz Sławiński)" * tag 'pm-5.17-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: PM: hibernate: Remove register_nosave_region_late() PM: wakeup: simplify the output logic of pm_show_wakelocks()
This commit is contained in:
commit
a7b4b0076b
|
@ -430,15 +430,7 @@ struct platform_hibernation_ops {
|
|||
|
||||
#ifdef CONFIG_HIBERNATION
|
||||
/* kernel/power/snapshot.c */
|
||||
extern void __register_nosave_region(unsigned long b, unsigned long e, int km);
|
||||
static inline void __init register_nosave_region(unsigned long b, unsigned long e)
|
||||
{
|
||||
__register_nosave_region(b, e, 0);
|
||||
}
|
||||
static inline void __init register_nosave_region_late(unsigned long b, unsigned long e)
|
||||
{
|
||||
__register_nosave_region(b, e, 1);
|
||||
}
|
||||
extern void register_nosave_region(unsigned long b, unsigned long e);
|
||||
extern int swsusp_page_is_forbidden(struct page *);
|
||||
extern void swsusp_set_page_free(struct page *);
|
||||
extern void swsusp_unset_page_free(struct page *);
|
||||
|
@ -458,7 +450,6 @@ int pfn_is_nosave(unsigned long pfn);
|
|||
int hibernate_quiet_exec(int (*func)(void *data), void *data);
|
||||
#else /* CONFIG_HIBERNATION */
|
||||
static inline void register_nosave_region(unsigned long b, unsigned long e) {}
|
||||
static inline void register_nosave_region_late(unsigned long b, unsigned long e) {}
|
||||
static inline int swsusp_page_is_forbidden(struct page *p) { return 0; }
|
||||
static inline void swsusp_set_page_free(struct page *p) {}
|
||||
static inline void swsusp_unset_page_free(struct page *p) {}
|
||||
|
|
|
@ -978,8 +978,7 @@ static void memory_bm_recycle(struct memory_bitmap *bm)
|
|||
* Register a range of page frames the contents of which should not be saved
|
||||
* during hibernation (to be used in the early initialization code).
|
||||
*/
|
||||
void __init __register_nosave_region(unsigned long start_pfn,
|
||||
unsigned long end_pfn, int use_kmalloc)
|
||||
void __init register_nosave_region(unsigned long start_pfn, unsigned long end_pfn)
|
||||
{
|
||||
struct nosave_region *region;
|
||||
|
||||
|
@ -995,18 +994,12 @@ void __init __register_nosave_region(unsigned long start_pfn,
|
|||
goto Report;
|
||||
}
|
||||
}
|
||||
if (use_kmalloc) {
|
||||
/* During init, this shouldn't fail */
|
||||
region = kmalloc(sizeof(struct nosave_region), GFP_KERNEL);
|
||||
BUG_ON(!region);
|
||||
} else {
|
||||
/* This allocation cannot fail */
|
||||
region = memblock_alloc(sizeof(struct nosave_region),
|
||||
SMP_CACHE_BYTES);
|
||||
if (!region)
|
||||
panic("%s: Failed to allocate %zu bytes\n", __func__,
|
||||
sizeof(struct nosave_region));
|
||||
}
|
||||
/* This allocation cannot fail */
|
||||
region = memblock_alloc(sizeof(struct nosave_region),
|
||||
SMP_CACHE_BYTES);
|
||||
if (!region)
|
||||
panic("%s: Failed to allocate %zu bytes\n", __func__,
|
||||
sizeof(struct nosave_region));
|
||||
region->start_pfn = start_pfn;
|
||||
region->end_pfn = end_pfn;
|
||||
list_add_tail(®ion->list, &nosave_regions);
|
||||
|
|
|
@ -39,23 +39,20 @@ ssize_t pm_show_wakelocks(char *buf, bool show_active)
|
|||
{
|
||||
struct rb_node *node;
|
||||
struct wakelock *wl;
|
||||
char *str = buf;
|
||||
char *end = buf + PAGE_SIZE;
|
||||
int len = 0;
|
||||
|
||||
mutex_lock(&wakelocks_lock);
|
||||
|
||||
for (node = rb_first(&wakelocks_tree); node; node = rb_next(node)) {
|
||||
wl = rb_entry(node, struct wakelock, node);
|
||||
if (wl->ws->active == show_active)
|
||||
str += scnprintf(str, end - str, "%s ", wl->name);
|
||||
len += sysfs_emit_at(buf, len, "%s ", wl->name);
|
||||
}
|
||||
if (str > buf)
|
||||
str--;
|
||||
|
||||
str += scnprintf(str, end - str, "\n");
|
||||
len += sysfs_emit_at(buf, len, "\n");
|
||||
|
||||
mutex_unlock(&wakelocks_lock);
|
||||
return (str - buf);
|
||||
return len;
|
||||
}
|
||||
|
||||
#if CONFIG_PM_WAKELOCKS_LIMIT > 0
|
||||
|
|
Loading…
Reference in New Issue