ring: support non-EAL thread
authorCunming Liang <cunming.liang@intel.com>
Tue, 17 Feb 2015 02:08:14 +0000 (10:08 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 24 Feb 2015 19:23:02 +0000 (20:23 +0100)
ring debug stat won't take care non-EAL thread.

Signed-off-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
lib/librte_ring/rte_ring.h

index 7cd5f2d..39bacdd 100644 (file)
@@ -188,10 +188,12 @@ struct rte_ring {
  *   The number to add to the object-oriented statistics.
  */
 #ifdef RTE_LIBRTE_RING_DEBUG
-#define __RING_STAT_ADD(r, name, n) do {               \
-               unsigned __lcore_id = rte_lcore_id();   \
-               r->stats[__lcore_id].name##_objs += n;  \
-               r->stats[__lcore_id].name##_bulk += 1;  \
+#define __RING_STAT_ADD(r, name, n) do {                        \
+               unsigned __lcore_id = rte_lcore_id();           \
+               if (__lcore_id < RTE_MAX_LCORE) {               \
+                       r->stats[__lcore_id].name##_objs += n;  \
+                       r->stats[__lcore_id].name##_bulk += 1;  \
+               }                                               \
        } while(0)
 #else
 #define __RING_STAT_ADD(r, name, n) do {} while(0)