Introduce helper functions used to prevent cpu hotplug (online operation) from running in parallel with suspend or hibernate. Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@xxxxxxxxxxxxxxxxxx> --- include/linux/suspend.h | 21 +++++++++++++++++++-- 1 files changed, 19 insertions(+), 2 deletions(-) diff --git a/include/linux/suspend.h b/include/linux/suspend.h index 6bbcef2..89a5d27 100644 --- a/include/linux/suspend.h +++ b/include/linux/suspend.h @@ -276,7 +276,24 @@ static inline bool system_entering_hibernation(void) { return false; } #define PM_RESTORE_PREPARE 0x0005 /* Going to restore a saved image */ #define PM_POST_RESTORE 0x0006 /* Restore failed */ +extern struct mutex pm_mutex; + #ifdef CONFIG_PM_SLEEP + +/* + * Allow operations like CPU online to exclude suspend and hibernation + */ +static inline int trylock_pm_sleep(void) +{ + return mutex_trylock(&pm_mutex); +} + +static inline void unlock_pm_sleep(void) +{ + mutex_unlock(&pm_mutex); +} + void save_processor_state(void); void restore_processor_state(void); @@ -298,6 +315,8 @@ extern bool pm_get_wakeup_count(unsigned int *count); extern bool pm_save_wakeup_count(unsigned int count); #else /* !CONFIG_PM_SLEEP */ +static inline int trylock_pm_sleep(void) { return 1; } +static inline void unlock_pm_sleep(void) {} static inline int register_pm_notifier(struct notifier_block *nb) { return 0; @@ -313,8 +332,6 @@ static inline int unregister_pm_notifier(struct notifier_block *nb) static inline bool pm_wakeup_pending(void) { return false; } #endif /* !CONFIG_PM_SLEEP */ -extern struct mutex pm_mutex; - #ifndef CONFIG_HIBERNATE_CALLBACKS static inline void lock_system_sleep(void) {} static inline void unlock_system_sleep(void) {} -- To unsubscribe from this list: send the line "unsubscribe linux-doc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html