summarylogtreecommitdiffstats
path: root/futex-Consolidate-duplicated-timer-setup-code.patch
diff options
context:
space:
mode:
Diffstat (limited to 'futex-Consolidate-duplicated-timer-setup-code.patch')
-rw-r--r--futex-Consolidate-duplicated-timer-setup-code.patch143
1 files changed, 0 insertions, 143 deletions
diff --git a/futex-Consolidate-duplicated-timer-setup-code.patch b/futex-Consolidate-duplicated-timer-setup-code.patch
deleted file mode 100644
index 473699fdd17b..000000000000
--- a/futex-Consolidate-duplicated-timer-setup-code.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From 5ca584d935c32906d114924dc0e1dbfcbb13fdb2 Mon Sep 17 00:00:00 2001
-From: Waiman Long <longman@redhat.com>
-Date: Tue, 28 May 2019 12:03:45 -0400
-Subject: [PATCH] futex: Consolidate duplicated timer setup code
-
-Add a new futex_setup_timer() helper function to consolidate all the
-hrtimer_sleeper setup code.
-
-Signed-off-by: Waiman Long <longman@redhat.com>
-Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-Cc: Peter Zijlstra <peterz@infradead.org>
-Cc: Darren Hart <dvhart@infradead.org>
-Cc: Davidlohr Bueso <dave@stgolabs.net>
-Link: https://lkml.kernel.org/r/20190528160345.24017-1-longman@redhat.com
----
- kernel/futex.c | 69 ++++++++++++++++++++++++++++----------------------
- 1 file changed, 39 insertions(+), 30 deletions(-)
-
-diff --git a/kernel/futex.c b/kernel/futex.c
-index 2268b97d5439..49bf20a8c512 100644
---- a/kernel/futex.c
-+++ b/kernel/futex.c
-@@ -483,6 +483,37 @@ enum futex_access {
- FUTEX_WRITE
- };
-
-+/**
-+ * futex_setup_timer - set up the sleeping hrtimer.
-+ * @time: ptr to the given timeout value
-+ * @timeout: the hrtimer_sleeper structure to be set up
-+ * @flags: futex flags
-+ * @range_ns: optional range in ns
-+ *
-+ * Return: Initialized hrtimer_sleeper structure or NULL if no timeout
-+ * value given
-+ */
-+static inline struct hrtimer_sleeper *
-+futex_setup_timer(ktime_t *time, struct hrtimer_sleeper *timeout,
-+ int flags, u64 range_ns)
-+{
-+ if (!time)
-+ return NULL;
-+
-+ hrtimer_init_on_stack(&timeout->timer, (flags & FLAGS_CLOCKRT) ?
-+ CLOCK_REALTIME : CLOCK_MONOTONIC,
-+ HRTIMER_MODE_ABS);
-+ hrtimer_init_sleeper(timeout, current);
-+
-+ /*
-+ * If range_ns is 0, calling hrtimer_set_expires_range_ns() is
-+ * effectively the same as calling hrtimer_set_expires().
-+ */
-+ hrtimer_set_expires_range_ns(&timeout->timer, *time, range_ns);
-+
-+ return timeout;
-+}
-+
- /**
- * get_futex_key() - Get parameters which are the keys for a futex
- * @uaddr: virtual address of the futex
-@@ -2692,7 +2723,7 @@ static int futex_wait_setup(u32 __user *uaddr, u32 val, unsigned int flags,
- static int futex_wait(u32 __user *uaddr, unsigned int flags, u32 val,
- ktime_t *abs_time, u32 bitset)
- {
-- struct hrtimer_sleeper timeout, *to = NULL;
-+ struct hrtimer_sleeper timeout, *to;
- struct restart_block *restart;
- struct futex_hash_bucket *hb;
- struct futex_q q = futex_q_init;
-@@ -2702,17 +2733,8 @@ static int futex_wait(u32 __user *uaddr, unsigned int flags, u32 val,
- return -EINVAL;
- q.bitset = bitset;
-
-- if (abs_time) {
-- to = &timeout;
--
-- hrtimer_init_on_stack(&to->timer, (flags & FLAGS_CLOCKRT) ?
-- CLOCK_REALTIME : CLOCK_MONOTONIC,
-- HRTIMER_MODE_ABS);
-- hrtimer_init_sleeper(to, current);
-- hrtimer_set_expires_range_ns(&to->timer, *abs_time,
-- current->timer_slack_ns);
-- }
--
-+ to = futex_setup_timer(abs_time, &timeout, flags,
-+ current->timer_slack_ns);
- retry:
- /*
- * Prepare to wait on uaddr. On success, holds hb lock and increments
-@@ -2792,7 +2814,7 @@ static long futex_wait_restart(struct restart_block *restart)
- static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
- ktime_t *time, int trylock)
- {
-- struct hrtimer_sleeper timeout, *to = NULL;
-+ struct hrtimer_sleeper timeout, *to;
- struct futex_pi_state *pi_state = NULL;
- struct rt_mutex_waiter rt_waiter;
- struct futex_hash_bucket *hb;
-@@ -2805,13 +2827,7 @@ static int futex_lock_pi(u32 __user *uaddr, unsigned int flags,
- if (refill_pi_state_cache())
- return -ENOMEM;
-
-- if (time) {
-- to = &timeout;
-- hrtimer_init_on_stack(&to->timer, CLOCK_REALTIME,
-- HRTIMER_MODE_ABS);
-- hrtimer_init_sleeper(to, current);
-- hrtimer_set_expires(&to->timer, *time);
-- }
-+ to = futex_setup_timer(time, &timeout, FLAGS_CLOCKRT, 0);
-
- retry:
- ret = get_futex_key(uaddr, flags & FLAGS_SHARED, &q.key, FUTEX_WRITE);
-@@ -3208,7 +3224,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
- u32 val, ktime_t *abs_time, u32 bitset,
- u32 __user *uaddr2)
- {
-- struct hrtimer_sleeper timeout, *to = NULL;
-+ struct hrtimer_sleeper timeout, *to;
- struct futex_pi_state *pi_state = NULL;
- struct rt_mutex_waiter rt_waiter;
- struct futex_hash_bucket *hb;
-@@ -3225,15 +3241,8 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
- if (!bitset)
- return -EINVAL;
-
-- if (abs_time) {
-- to = &timeout;
-- hrtimer_init_on_stack(&to->timer, (flags & FLAGS_CLOCKRT) ?
-- CLOCK_REALTIME : CLOCK_MONOTONIC,
-- HRTIMER_MODE_ABS);
-- hrtimer_init_sleeper(to, current);
-- hrtimer_set_expires_range_ns(&to->timer, *abs_time,
-- current->timer_slack_ns);
-- }
-+ to = futex_setup_timer(abs_time, &timeout, flags,
-+ current->timer_slack_ns);
-
- /*
- * The waiter is allocated on our stack, manipulated by the requeue
---
-2.22.0
-