From: Thomas Gleixner <t...@linutronix.de>

commit 29e9ee5d48c35d6cf8afe09bdf03f77125c9ac11 upstream.

free_pi_state() is confusing as it is in fact only freeing/caching the
pi state when the last reference is gone. Rename it to put_pi_state()
which reflects better what it is doing.

Signed-off-by: Thomas Gleixner <t...@linutronix.de>
Cc: Peter Zijlstra <pet...@infradead.org>
Cc: Darren Hart <dar...@dvhart.com>
Cc: Davidlohr Bueso <d...@stgolabs.net>
Cc: bhuvanesh_surach...@mentor.com
Cc: Andy Lowe <andy_l...@mentor.com>
Link: http://lkml.kernel.org/r/20151219200607.259636...@linutronix.de
Signed-off-by: Thomas Gleixner <t...@linutronix.de>
Tested-by: Henrik Austad <haus...@cisco.com>
---
 kernel/futex.c | 17 ++++++++++-------
 1 file changed, 10 insertions(+), 7 deletions(-)

diff --git a/kernel/futex.c b/kernel/futex.c
index 91acb65..09f698a 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -815,9 +815,12 @@ static void get_pi_state(struct futex_pi_state *pi_state)
 }
 
 /*
+ * Drops a reference to the pi_state object and frees or caches it
+ * when the last reference is gone.
+ *
  * Must be called with the hb lock held.
  */
-static void free_pi_state(struct futex_pi_state *pi_state)
+static void put_pi_state(struct futex_pi_state *pi_state)
 {
        if (!pi_state)
                return;
@@ -1959,7 +1962,7 @@ retry_private:
                case 0:
                        break;
                case -EFAULT:
-                       free_pi_state(pi_state);
+                       put_pi_state(pi_state);
                        pi_state = NULL;
                        double_unlock_hb(hb1, hb2);
                        hb_waiters_dec(hb2);
@@ -1976,7 +1979,7 @@ retry_private:
                         *   exit to complete.
                         * - The user space value changed.
                         */
-                       free_pi_state(pi_state);
+                       put_pi_state(pi_state);
                        pi_state = NULL;
                        double_unlock_hb(hb1, hb2);
                        hb_waiters_dec(hb2);
@@ -2049,7 +2052,7 @@ retry_private:
                        } else if (ret) {
                                /* -EDEADLK */
                                this->pi_state = NULL;
-                               free_pi_state(pi_state);
+                               put_pi_state(pi_state);
                                goto out_unlock;
                        }
                }
@@ -2058,7 +2061,7 @@ retry_private:
        }
 
 out_unlock:
-       free_pi_state(pi_state);
+       put_pi_state(pi_state);
        double_unlock_hb(hb1, hb2);
        wake_up_q(&wake_q);
        hb_waiters_dec(hb2);
@@ -2211,7 +2214,7 @@ static void unqueue_me_pi(struct futex_q *q)
        __unqueue_futex(q);
 
        BUG_ON(!q->pi_state);
-       free_pi_state(q->pi_state);
+       put_pi_state(q->pi_state);
        q->pi_state = NULL;
 
        spin_unlock(q->lock_ptr);
@@ -2993,7 +2996,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, 
unsigned int flags,
                         * Drop the reference to the pi state which
                         * the requeue_pi() code acquired for us.
                         */
-                       free_pi_state(q.pi_state);
+                       put_pi_state(q.pi_state);
                        spin_unlock(q.lock_ptr);
                }
        } else {
-- 
2.7.4

Reply via email to