Merge branches 'pm-core', 'pm-domains', 'pm-sleep', 'acpi-pm' and 'pm-cpuidle'
Merge changes in the PM core, system-wide PM infrastructure, generic power domains (genpd) framework, ACPI PM infrastructure and cpuidle for 4.19. * pm-core: driver core: Add flag to autoremove device link on supplier unbind driver core: Rename flag AUTOREMOVE to AUTOREMOVE_CONSUMER * pm-domains: PM / Domains: Introduce dev_pm_domain_attach_by_name() PM / Domains: Introduce option to attach a device by name to genpd PM / Domains: dt: Add a power-domain-names property * pm-sleep: PM / reboot: Eliminate race between reboot and suspend PM / hibernate: Mark expected switch fall-through x86/power/hibernate_64: Remove VLA usage PM / hibernate: cast PAGE_SIZE to int when comparing with error code * acpi-pm: ACPI / PM: save NVS memory for ASUS 1025C laptop ACPI / PM: Default to s2idle in all machines supporting LP S0 * pm-cpuidle: ARM: cpuidle: silence error on driver registration failure
This commit is contained in:
@@ -155,16 +155,17 @@ static inline void set_pcppage_migratetype(struct page *page, int migratetype)
|
||||
* The following functions are used by the suspend/hibernate code to temporarily
|
||||
* change gfp_allowed_mask in order to avoid using I/O during memory allocations
|
||||
* while devices are suspended. To avoid races with the suspend/hibernate code,
|
||||
* they should always be called with pm_mutex held (gfp_allowed_mask also should
|
||||
* only be modified with pm_mutex held, unless the suspend/hibernate code is
|
||||
* guaranteed not to run in parallel with that modification).
|
||||
* they should always be called with system_transition_mutex held
|
||||
* (gfp_allowed_mask also should only be modified with system_transition_mutex
|
||||
* held, unless the suspend/hibernate code is guaranteed not to run in parallel
|
||||
* with that modification).
|
||||
*/
|
||||
|
||||
static gfp_t saved_gfp_mask;
|
||||
|
||||
void pm_restore_gfp_mask(void)
|
||||
{
|
||||
WARN_ON(!mutex_is_locked(&pm_mutex));
|
||||
WARN_ON(!mutex_is_locked(&system_transition_mutex));
|
||||
if (saved_gfp_mask) {
|
||||
gfp_allowed_mask = saved_gfp_mask;
|
||||
saved_gfp_mask = 0;
|
||||
@@ -173,7 +174,7 @@ void pm_restore_gfp_mask(void)
|
||||
|
||||
void pm_restrict_gfp_mask(void)
|
||||
{
|
||||
WARN_ON(!mutex_is_locked(&pm_mutex));
|
||||
WARN_ON(!mutex_is_locked(&system_transition_mutex));
|
||||
WARN_ON(saved_gfp_mask);
|
||||
saved_gfp_mask = gfp_allowed_mask;
|
||||
gfp_allowed_mask &= ~(__GFP_IO | __GFP_FS);
|
||||
|
||||
Reference in New Issue
Block a user