Merge branch 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
* 'pm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (76 commits) PM / Hibernate: Implement compat_ioctl for /dev/snapshot PM / Freezer: fix return value of freezable_schedule_timeout_killable() PM / shmobile: Allow the A4R domain to be turned off at run time PM / input / touchscreen: Make st1232 use device PM QoS constraints PM / QoS: Introduce dev_pm_qos_add_ancestor_request() PM / shmobile: Remove the stay_on flag from SH7372's PM domains PM / shmobile: Don't include SH7372's INTCS in syscore suspend/resume PM / shmobile: Add support for the sh7372 A4S power domain / sleep mode PM: Drop generic_subsys_pm_ops PM / Sleep: Remove forward-only callbacks from AMBA bus type PM / Sleep: Remove forward-only callbacks from platform bus type PM: Run the driver callback directly if the subsystem one is not there PM / Sleep: Make pm_op() and pm_noirq_op() return callback pointers PM/Devfreq: Add Exynos4-bus device DVFS driver for Exynos4210/4212/4412. PM / Sleep: Merge internal functions in generic_ops.c PM / Sleep: Simplify generic system suspend callbacks PM / Hibernate: Remove deprecated hibernation snapshot ioctls PM / Sleep: Fix freezer failures due to racy usermodehelper_is_disabled() ARM: S3C64XX: Implement basic power domain support PM / shmobile: Use common always on power domain governor ... Fix up trivial conflict in fs/xfs/xfs_buf.c due to removal of unused XBT_FORCE_SLEEP bit
This commit is contained in:
@@ -2456,8 +2456,9 @@ static int hotkey_kthread(void *data)
|
||||
u32 poll_mask, event_mask;
|
||||
unsigned int si, so;
|
||||
unsigned long t;
|
||||
unsigned int change_detector, must_reset;
|
||||
unsigned int change_detector;
|
||||
unsigned int poll_freq;
|
||||
bool was_frozen;
|
||||
|
||||
mutex_lock(&hotkey_thread_mutex);
|
||||
|
||||
@@ -2488,14 +2489,14 @@ static int hotkey_kthread(void *data)
|
||||
t = 100; /* should never happen... */
|
||||
}
|
||||
t = msleep_interruptible(t);
|
||||
if (unlikely(kthread_should_stop()))
|
||||
if (unlikely(kthread_freezable_should_stop(&was_frozen)))
|
||||
break;
|
||||
must_reset = try_to_freeze();
|
||||
if (t > 0 && !must_reset)
|
||||
|
||||
if (t > 0 && !was_frozen)
|
||||
continue;
|
||||
|
||||
mutex_lock(&hotkey_thread_data_mutex);
|
||||
if (must_reset || hotkey_config_change != change_detector) {
|
||||
if (was_frozen || hotkey_config_change != change_detector) {
|
||||
/* forget old state on thaw or config change */
|
||||
si = so;
|
||||
t = 0;
|
||||
@@ -2528,10 +2529,6 @@ exit:
|
||||
static void hotkey_poll_stop_sync(void)
|
||||
{
|
||||
if (tpacpi_hotkey_task) {
|
||||
if (frozen(tpacpi_hotkey_task) ||
|
||||
freezing(tpacpi_hotkey_task))
|
||||
thaw_process(tpacpi_hotkey_task);
|
||||
|
||||
kthread_stop(tpacpi_hotkey_task);
|
||||
tpacpi_hotkey_task = NULL;
|
||||
mutex_lock(&hotkey_thread_mutex);
|
||||
|
Reference in New Issue
Block a user