diff options
| author | Johannes Berg <johannes.berg@intel.com> | 2019-02-01 11:05:27 +0100 |
|---|---|---|
| committer | Johannes Berg <johannes.berg@intel.com> | 2019-02-01 11:05:35 +0100 |
| commit | 752cfee90d11e280d727617bf8d6df894141e157 (patch) | |
| tree | c55feff5c93af364fe2212d6b2942abb3748e05c /kernel/futex.c | |
| parent | 5ac4a12df58121f0cf874b518406ec2a8e2d4ac4 (diff) | |
| parent | fa6821cbf1d9724284ef0906c9a01a5fbf13a35c (diff) | |
| download | linux-752cfee90d11e280d727617bf8d6df894141e157.tar.bz2 | |
Merge remote-tracking branch 'net-next/master' into mac80211-next
Merge net-next so that we get the changes from net, which would
otherwise conflict with the NLA_POLICY_NESTED/_ARRAY changes.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'kernel/futex.c')
| -rw-r--r-- | kernel/futex.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/kernel/futex.c b/kernel/futex.c index be3bff2315ff..fdd312da0992 100644 --- a/kernel/futex.c +++ b/kernel/futex.c @@ -1452,11 +1452,7 @@ static void mark_wake_futex(struct wake_q_head *wake_q, struct futex_q *q) if (WARN(q->pi_state || q->rt_waiter, "refusing to wake PI futex\n")) return; - /* - * Queue the task for later wakeup for after we've released - * the hb->lock. wake_q_add() grabs reference to p. - */ - wake_q_add(wake_q, p); + get_task_struct(p); __unqueue_futex(q); /* * The waiting task can free the futex_q as soon as q->lock_ptr = NULL @@ -1466,6 +1462,13 @@ static void mark_wake_futex(struct wake_q_head *wake_q, struct futex_q *q) * plist_del in __unqueue_futex(). */ smp_store_release(&q->lock_ptr, NULL); + + /* + * Queue the task for later wakeup for after we've released + * the hb->lock. wake_q_add() grabs reference to p. + */ + wake_q_add(wake_q, p); + put_task_struct(p); } /* |