summaryrefslogtreecommitdiff
path: root/arch/powerpc/lib
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2023-10-23 11:20:06 +0300
committerDave Airlie <airlied@redhat.com>2023-10-23 11:20:06 +0300
commit7cd62eab9babd1fed9c497141650b31168f4f430 (patch)
tree85ef2122ca0d88b2b598f45eb071fcd1f4faa3d2 /arch/powerpc/lib
parent035fdc38c1f6ddce3544d8a489548e6cc4de508a (diff)
parent05d3ef8bba77c1b5f98d941d8b2d4aeab8118ef1 (diff)
downloadlinux-7cd62eab9babd1fed9c497141650b31168f4f430.tar.xz
BackMerge tag 'v6.6-rc7' into drm-next
This is needed to add the msm pr which is based on a higher base. Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'arch/powerpc/lib')
-rw-r--r--arch/powerpc/lib/qspinlock.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/powerpc/lib/qspinlock.c b/arch/powerpc/lib/qspinlock.c
index 253620979d0c..6dd2f46bd3ef 100644
--- a/arch/powerpc/lib/qspinlock.c
+++ b/arch/powerpc/lib/qspinlock.c
@@ -406,6 +406,9 @@ static __always_inline bool yield_to_prev(struct qspinlock *lock, struct qnode *
if ((yield_count & 1) == 0)
goto yield_prev; /* owner vcpu is running */
+ if (get_owner_cpu(READ_ONCE(lock->val)) != yield_cpu)
+ goto yield_prev; /* re-sample lock owner */
+
spin_end();
preempted = true;