[linux] 01/01: [rt] Rebase onto 3.2.91

debian-kernel at lists.debian.org debian-kernel at lists.debian.org
Thu Aug 17 20:42:18 UTC 2017


This is an automated email from the git hooks/post-receive script.

benh pushed a commit to branch wheezy-security
in repository linux.

commit e3e03bce4753f5ec8a43613d9e4b650f4ea5855c
Author: Ben Hutchings <ben at decadent.org.uk>
Date:   Thu Aug 17 21:41:57 2017 +0100

    [rt] Rebase onto 3.2.91
---
 .../all/rt/0192-rtmutex-futex-prepare-rt.patch.patch    | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/debian/patches/features/all/rt/0192-rtmutex-futex-prepare-rt.patch.patch b/debian/patches/features/all/rt/0192-rtmutex-futex-prepare-rt.patch.patch
index e647544..6685bb4 100644
--- a/debian/patches/features/all/rt/0192-rtmutex-futex-prepare-rt.patch.patch
+++ b/debian/patches/features/all/rt/0192-rtmutex-futex-prepare-rt.patch.patch
@@ -29,16 +29,16 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  			} else if (ret) {
  				/* -EDEADLK */
  				this->pi_state = NULL;
-@@ -2411,7 +2421,7 @@ static int futex_wait_requeue_pi(u32 __u
+@@ -2410,7 +2420,7 @@ static int futex_wait_requeue_pi(u32 __u
+ {
  	struct hrtimer_sleeper timeout, *to = NULL;
  	struct rt_mutex_waiter rt_waiter;
- 	struct rt_mutex *pi_mutex = NULL;
 -	struct futex_hash_bucket *hb;
 +	struct futex_hash_bucket *hb, *hb2;
  	union futex_key key2 = FUTEX_KEY_INIT;
  	struct futex_q q = futex_q_init;
  	int res, ret;
-@@ -2468,20 +2478,55 @@ static int futex_wait_requeue_pi(u32 __u
+@@ -2467,20 +2477,55 @@ static int futex_wait_requeue_pi(u32 __u
  	/* Queue the futex_q, drop the hb lock, wait for wakeup. */
  	futex_wait_queue_me(hb, &q, to);
  
@@ -105,7 +105,7 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
  
  	/* Check if the requeue code acquired the second futex for us. */
  	if (!q.rt_waiter) {
-@@ -2490,14 +2535,15 @@ static int futex_wait_requeue_pi(u32 __u
+@@ -2489,7 +2534,8 @@ static int futex_wait_requeue_pi(u32 __u
  		 * did a lock-steal - fix up the PI-state in that case.
  		 */
  		if (q.pi_state && (q.pi_state->owner != current)) {
@@ -113,8 +113,9 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 +			spin_lock(&hb2->lock);
 +			BUG_ON(&hb2->lock != q.lock_ptr);
  			ret = fixup_pi_state_owner(uaddr2, &q, current);
- 			/*
- 			 * Drop the reference to the pi state which
+ 			if (ret && rt_mutex_owner(&q.pi_state->pi_mutex) == current)
+ 				rt_mutex_unlock(&q.pi_state->pi_mutex);
+@@ -2498,7 +2544,7 @@ static int futex_wait_requeue_pi(u32 __u
  			 * the requeue_pi() code acquired for us.
  			 */
  			free_pi_state(q.pi_state);
@@ -122,8 +123,8 @@ Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
 +			spin_unlock(&hb2->lock);
  		}
  	} else {
- 		/*
-@@ -2510,7 +2556,8 @@ static int futex_wait_requeue_pi(u32 __u
+ 		struct rt_mutex *pi_mutex;
+@@ -2513,7 +2559,8 @@ static int futex_wait_requeue_pi(u32 __u
  		ret = rt_mutex_finish_proxy_lock(pi_mutex, to, &rt_waiter, 1);
  		debug_rt_mutex_free_waiter(&rt_waiter);
  

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/linux.git



More information about the Kernel-svn-changes mailing list