diff --git a/src/runtime/lock_spinbit.go b/src/runtime/lock_spinbit.go
index c2a6c76629c3922213fab98783a2a6ac90cd723d..f90698a4c943d4314828331ecd73cffd22bec79d 100644
--- a/src/runtime/lock_spinbit.go
+++ b/src/runtime/lock_spinbit.go
@@ -404,7 +404,7 @@ useStackLock:
 			n++
 			next := node.mWaitList.next.ptr()
 			if next == nil {
-				cycles := endTicks - (head.mWaitList.startTicks+node.mWaitList.startTicks)/2
+				cycles := ((endTicks - head.mWaitList.startTicks) + (endTicks - node.mWaitList.startTicks)) / 2
 				node.mWaitList.startTicks = endTicks
 				head.mWaitList.startTicks = endTicks
 				getg().m.mLockProfile.recordUnlock(cycles * int64(n))