diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 1ec9d1f..505e08f 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -3144,8 +3144,10 @@ static void __sched __schedule(void)
 			 * If a worker went to sleep, notify and ask workqueue
 			 * whether it wants to wake up a task to maintain
 			 * concurrency.
+			 * Only call wake up if prev isn't blocked on a sleeping
+			 * spin lock.
 			 */
-			if (prev->flags & PF_WQ_WORKER) {
+			if (prev->flags & PF_WQ_WORKER && !prev->saved_state) {
 				struct task_struct *to_wakeup;
 
 				to_wakeup = wq_worker_sleeping(prev, cpu);
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
index 99f943b..ea93e56 100644
--- a/kernel/time/timekeeping.c
+++ b/kernel/time/timekeeping.c
@@ -776,7 +776,7 @@ static void timekeeping_resume(void)
 		__timekeeping_inject_sleeptime(tk, &ts);
 	}
 	/* re-base the last cycle value */
-	tk->clock->cycle_last = tk->clock->read(tk->clock);
+	tk->cycle_last = tk->clock->cycle_last = tk->clock->read(tk->clock);
 	tk->ntp_error = 0;
 	timekeeping_suspended = 0;
 	timekeeping_update(tk, false, true);
diff --git a/localversion-rt b/localversion-rt
index 0454789..700c857 100644
--- a/localversion-rt
+++ b/localversion-rt
@@ -1 +1 @@
--rt7
+-rt8
