Commit 22299339 authored by Peter Zijlstra's avatar Peter Zijlstra

futex: Remove pointless mmgrap() + mmdrop()

We always set 'key->private.mm' to 'current->mm', getting an extra
reference on 'current->mm' is quite pointless, because as long as the
task is blocked it isn't going to go away.
Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
parent 3867913c
...@@ -331,17 +331,6 @@ static void compat_exit_robust_list(struct task_struct *curr); ...@@ -331,17 +331,6 @@ static void compat_exit_robust_list(struct task_struct *curr);
static inline void compat_exit_robust_list(struct task_struct *curr) { } static inline void compat_exit_robust_list(struct task_struct *curr) { }
#endif #endif
static inline void futex_get_mm(union futex_key *key)
{
mmgrab(key->private.mm);
/*
* Ensure futex_get_mm() implies a full barrier such that
* get_futex_key() implies a full barrier. This is relied upon
* as smp_mb(); (B), see the ordering comment above.
*/
smp_mb__after_atomic();
}
/* /*
* Reflects a new waiter being added to the waitqueue. * Reflects a new waiter being added to the waitqueue.
*/ */
...@@ -432,7 +421,7 @@ static void get_futex_key_refs(union futex_key *key) ...@@ -432,7 +421,7 @@ static void get_futex_key_refs(union futex_key *key)
smp_mb(); /* explicit smp_mb(); (B) */ smp_mb(); /* explicit smp_mb(); (B) */
break; break;
case FUT_OFF_MMSHARED: case FUT_OFF_MMSHARED:
futex_get_mm(key); /* implies smp_mb(); (B) */ smp_mb(); /* explicit smp_mb(); (B) */
break; break;
default: default:
/* /*
...@@ -465,7 +454,6 @@ static void drop_futex_key_refs(union futex_key *key) ...@@ -465,7 +454,6 @@ static void drop_futex_key_refs(union futex_key *key)
case FUT_OFF_INODE: case FUT_OFF_INODE:
break; break;
case FUT_OFF_MMSHARED: case FUT_OFF_MMSHARED:
mmdrop(key->private.mm);
break; break;
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment