Mukesh Ojha f473e5f467 time: Fix extra sleeptime injection when suspend fails
Currently, there exists a corner case assuming when there is
only one clocksource e.g RTC, and system failed to go to
suspend mode. While resume rtc_resume() injects the sleeptime
as timekeeping_rtc_skipresume() returned 'false' (default value
of sleeptime_injected) due to which we can see mismatch in
timestamps.

This issue can also come in a system where more than one
clocksource are present and very first suspend fails.

Success case:
------------
                                        {sleeptime_injected=false}
rtc_suspend() => timekeeping_suspend() => timekeeping_resume() =>

(sleeptime injected)
 rtc_resume()

Failure case:
------------
         {failure in sleep path} {sleeptime_injected=false}
rtc_suspend()     =>          rtc_resume()

{sleeptime injected again which was not required as the suspend failed}

Fix this by handling the boolean logic properly.

Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Miroslav Lichvar <mlichvar@redhat.com>
Cc: Richard Cochran <richardcochran@gmail.com>
Cc: Prarit Bhargava <prarit@redhat.com>
Cc: Stephen Boyd <sboyd@kernel.org>
Originally-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Mukesh Ojha <mojha@codeaurora.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>
2018-07-19 17:08:51 -07:00
..
2018-06-15 18:10:01 -03:00
2018-06-12 16:19:22 -07:00
2018-06-28 14:00:40 +02:00
2018-06-06 16:04:55 -07:00
\n
2018-06-17 05:06:18 +09:00
2018-03-15 20:34:40 +01:00
2017-05-18 10:30:19 -06:00
2018-04-27 14:34:51 +02:00
2018-06-16 07:36:39 +09:00
2018-01-05 18:43:00 +11:00
2018-06-08 17:21:52 -07:00
2018-06-06 16:34:00 -07:00
2018-05-15 08:10:50 +02:00
2018-06-19 09:56:27 +02:00
2018-06-12 16:19:22 -07:00
2018-06-07 16:56:28 -04:00
2018-06-12 16:19:22 -07:00