diff options
author | Roland McGrath <roland@hack.frob.com> | 2015-05-19 15:04:41 -0700 |
---|---|---|
committer | Roland McGrath <roland@hack.frob.com> | 2015-05-19 15:04:41 -0700 |
commit | 88ed594f5d431d855256edbe7e886c8cf4b575dc (patch) | |
tree | 32b8ea30f6e6aa95290817dc911978738371c5a2 /nptl/sem_post.c | |
parent | 654055e09332a0be9a2f0439dbc052e6a82f448a (diff) | |
download | glibc-88ed594f5d431d855256edbe7e886c8cf4b575dc.zip glibc-88ed594f5d431d855256edbe7e886c8cf4b575dc.tar.gz glibc-88ed594f5d431d855256edbe7e886c8cf4b575dc.tar.bz2 |
BZ#18434: Fix sem_post EOVERFLOW check for [!__HAVE_64B_ATOMICS].
Diffstat (limited to 'nptl/sem_post.c')
-rw-r--r-- | nptl/sem_post.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/nptl/sem_post.c b/nptl/sem_post.c index 6e495ed..b6d30b5 100644 --- a/nptl/sem_post.c +++ b/nptl/sem_post.c @@ -84,14 +84,14 @@ __new_sem_post (sem_t *sem) unsigned int v = atomic_load_relaxed (&isem->value); do { - if ((v << SEM_VALUE_SHIFT) == SEM_VALUE_MAX) + if ((v >> SEM_VALUE_SHIFT) == SEM_VALUE_MAX) { __set_errno (EOVERFLOW); return -1; } } - while (!atomic_compare_exchange_weak_release (&isem->value, - &v, v + (1 << SEM_VALUE_SHIFT))); + while (!atomic_compare_exchange_weak_release + (&isem->value, &v, v + (1 << SEM_VALUE_SHIFT))); /* If there is any potentially blocked waiter, wake one of them. */ if ((v & SEM_NWAITERS_MASK) != 0) |