powerpc/pseries/hibernation: perform post-suspend fixups later
The pseries hibernate code calls post_mobility_fixup() which is sort of a dumping ground of fixups that need to run after resuming from suspend regardless of whether suspend was a hibernation or a migration. Calling post_mobility_fixup() from pseries_suspend_enable_irqs() runs this code early in resume with devices suspended and only one CPU up, while the much more commonly used migration case runs these fixups in a more typical process context. Call post_mobility_fixup() after the suspend core returns a success status to the hibernate sysfs store method and remove pseries_suspend_enable_irqs(). Signed-off-by: Nathan Lynch <nathanl@linux.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20201207215200.1785968-26-nathanl@linux.ibm.com
This commit is contained in:
parent
b866459489
commit
fa53bcdb74
|
@ -50,21 +50,6 @@ static int pseries_suspend_begin(u64 stream_id)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* pseries_suspend_enable_irqs
|
||||
*
|
||||
* Post suspend configuration updates
|
||||
*
|
||||
**/
|
||||
static void pseries_suspend_enable_irqs(void)
|
||||
{
|
||||
/*
|
||||
* Update configuration which can be modified based on device tree
|
||||
* changes during resume.
|
||||
*/
|
||||
post_mobility_fixup();
|
||||
}
|
||||
|
||||
/**
|
||||
* pseries_suspend_enter - Final phase of hibernation
|
||||
*
|
||||
|
@ -127,8 +112,11 @@ static ssize_t store_hibernate(struct device *dev,
|
|||
if (!rc)
|
||||
rc = pm_suspend(PM_SUSPEND_MEM);
|
||||
|
||||
if (!rc)
|
||||
if (!rc) {
|
||||
rc = count;
|
||||
post_mobility_fixup();
|
||||
}
|
||||
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
@ -214,7 +202,6 @@ static int __init pseries_suspend_init(void)
|
|||
if ((rc = pseries_suspend_sysfs_register(&suspend_dev)))
|
||||
return rc;
|
||||
|
||||
ppc_md.suspend_enable_irqs = pseries_suspend_enable_irqs;
|
||||
suspend_set_ops(&pseries_suspend_ops);
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue