New upstream version 16.11.4
[deb_dpdk.git] / examples / performance-thread / common / lthread_tls.c
index 43cda4f..e58388b 100644 (file)
@@ -94,7 +94,7 @@ void _lthread_key_pool_init(void)
 
                pool = rte_ring_create(name,
                                        LTHREAD_MAX_KEYS, 0, 0);
-               LTHREAD_ASSERT(pool);
+               RTE_ASSERT(pool);
 
                int i;
 
@@ -199,11 +199,12 @@ void _lthread_tls_destroy(struct lthread *lt)
 void
 *lthread_getspecific(unsigned int k)
 {
+       void *res = NULL;
 
-       if (k > LTHREAD_MAX_KEYS)
-               return NULL;
+       if (k < LTHREAD_MAX_KEYS)
+               res = THIS_LTHREAD->tls->data[k];
 
-       return THIS_LTHREAD->tls->data[k];
+       return res;
 }
 
 /*
@@ -213,7 +214,7 @@ void
  */
 int lthread_setspecific(unsigned int k, const void *data)
 {
-       if (k > LTHREAD_MAX_KEYS)
+       if (k >= LTHREAD_MAX_KEYS)
                return POSIX_ERRNO(EINVAL);
 
        int n = THIS_LTHREAD->tls->nb_keys_inuse;
@@ -240,7 +241,7 @@ void _lthread_tls_alloc(struct lthread *lt)
 
        tls = _lthread_objcache_alloc((THIS_SCHED)->tls_cache);
 
-       LTHREAD_ASSERT(tls != NULL);
+       RTE_ASSERT(tls != NULL);
 
        tls->root_sched = (THIS_SCHED);
        lt->tls = tls;