diff --git a/nptl/ChangeLog b/nptl/ChangeLog index 7f82b2098a..d32046ee65 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,8 @@ +2013-07-02 Andi Kleen + + * pthread_mutexattr_settype.c (__pthread_mutexattr_settype): + Disable elision for PTHREAD_MUTEX_DEFAULT. + 2013-07-02 Andi Kleen Hongjiu Lu diff --git a/nptl/pthread_mutexattr_settype.c b/nptl/pthread_mutexattr_settype.c index 7b476e95bc..a85cdcb389 100644 --- a/nptl/pthread_mutexattr_settype.c +++ b/nptl/pthread_mutexattr_settype.c @@ -30,6 +30,11 @@ __pthread_mutexattr_settype (attr, kind) if (kind < PTHREAD_MUTEX_NORMAL || kind > PTHREAD_MUTEX_ADAPTIVE_NP) return EINVAL; + /* Cannot distinguish between DEFAULT and NORMAL. So any settype + call disables elision for now. */ + if (kind == PTHREAD_MUTEX_DEFAULT) + kind |= PTHREAD_MUTEX_NO_ELISION_NP; + iattr = (struct pthread_mutexattr *) attr; iattr->mutexkind = (iattr->mutexkind & PTHREAD_MUTEXATTR_FLAG_BITS) | kind;