diff options
Diffstat (limited to 'kernel/futex.c')
| -rw-r--r-- | kernel/futex.c | 3 | 
1 files changed, 3 insertions, 0 deletions
| diff --git a/kernel/futex.c b/kernel/futex.c index d3a9d946d0b7..f3a3a071283c 100644 --- a/kernel/futex.c +++ b/kernel/futex.c @@ -343,6 +343,8 @@ static void get_futex_key_refs(union futex_key *key)  	case FUT_OFF_MMSHARED:  		futex_get_mm(key); /* implies MB (B) */  		break; +	default: +		smp_mb(); /* explicit MB (B) */  	}  } @@ -2592,6 +2594,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,  	 * shared futexes. We need to compare the keys:  	 */  	if (match_futex(&q.key, &key2)) { +		queue_unlock(hb);  		ret = -EINVAL;  		goto out_put_keys;  	} |