This is a note to let you know that I've just added the patch titled mei: don't schedule suspend in pm idle to the 3.16-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: mei-don-t-schedule-suspend-in-pm-idle.patch and it can be found in the queue-3.16 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From d5d83f8abea13d0b50ee762276c6c900d1946264 Mon Sep 17 00:00:00 2001 From: Alexander Usyskin <alexander.usyskin@xxxxxxxxx> Date: Thu, 17 Jul 2014 10:53:36 +0300 Subject: mei: don't schedule suspend in pm idle From: Alexander Usyskin <alexander.usyskin@xxxxxxxxx> commit d5d83f8abea13d0b50ee762276c6c900d1946264 upstream. Calling pm_schedule_suspend from the runtime pm idle callback may reschedule existing timer, thus in case of frequent runtime rpm idle call the suspend maybe starved. Instead we call pm_runtime_autosuspend which is checking if the timer is already charged. An example is monitoring device pci config space. Pci config sysfs handlers calls pci_config_pm_runtime_put/get helpers which in turns calls to device idle callback Signed-off-by: Alexander Usyskin <alexander.usyskin@xxxxxxxxx> Signed-off-by: Tomas Winkler <tomas.winkler@xxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- drivers/misc/mei/pci-me.c | 2 +- drivers/misc/mei/pci-txe.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) --- a/drivers/misc/mei/pci-me.c +++ b/drivers/misc/mei/pci-me.c @@ -369,7 +369,7 @@ static int mei_me_pm_runtime_idle(struct if (!dev) return -ENODEV; if (mei_write_is_idle(dev)) - pm_schedule_suspend(device, MEI_ME_RPM_TIMEOUT * 2); + pm_runtime_autosuspend(device); return -EBUSY; } --- a/drivers/misc/mei/pci-txe.c +++ b/drivers/misc/mei/pci-txe.c @@ -306,7 +306,7 @@ static int mei_txe_pm_runtime_idle(struc if (!dev) return -ENODEV; if (mei_write_is_idle(dev)) - pm_schedule_suspend(device, MEI_TXI_RPM_TIMEOUT * 2); + pm_runtime_autosuspend(device); return -EBUSY; } Patches currently in stable-queue which might be from alexander.usyskin@xxxxxxxxx are queue-3.16/mei-fix-return-value-on-disconnect-timeout.patch queue-3.16/mei-start-disconnect-request-timer-consistently.patch queue-3.16/mei-don-t-schedule-suspend-in-pm-idle.patch queue-3.16/mei-reset-client-connection-state-on-timeout.patch -- To unsubscribe from this list: send the line "unsubscribe stable" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html