]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - kernel/mutex.c
mutex: Fix/document access-once assumption in mutex_can_spin_on_owner()
[karo-tx-linux.git] / kernel / mutex.c
index ff05f4bd86eb6acf10ff49307e448ddb8b00916a..7ff48c55a98bb69c8fa82eeb1c1d6481499d5cd4 100644 (file)
@@ -209,11 +209,13 @@ int mutex_spin_on_owner(struct mutex *lock, struct task_struct *owner)
  */
 static inline int mutex_can_spin_on_owner(struct mutex *lock)
 {
+       struct task_struct *owner;
        int retval = 1;
 
        rcu_read_lock();
-       if (lock->owner)
-               retval = lock->owner->on_cpu;
+       owner = ACCESS_ONCE(lock->owner);
+       if (owner)
+               retval = owner->on_cpu;
        rcu_read_unlock();
        /*
         * if lock->owner is not set, the mutex owner may have just acquired