---
 lib/librte_timer/rte_timer.c |   14 ++++----------
 lib/librte_timer/rte_timer.h |    3 +++
 2 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/lib/librte_timer/rte_timer.c b/lib/librte_timer/rte_timer.c
index f98e904..ea2f22a 100755
--- a/lib/librte_timer/rte_timer.c
+++ b/lib/librte_timer/rte_timer.c
@@ -58,11 +58,6 @@ LIST_HEAD(rte_timer_list, rte_timer);
 struct priv_timer {
        struct rte_timer pending_head;  /**< dummy timer instance to head up 
list */
        rte_spinlock_t list_lock;       /**< lock to protect list access */
-
-       /** per-core variable that true if a timer was updated on this
-        *  core since last reset of the variable */
-       int updated;
-
        /** track the current depth of the skiplist */
        unsigned curr_skiplist_depth;

@@ -378,7 +373,7 @@ __rte_timer_reset(struct rte_timer *tim, uint64_t expire,
                return -1;

        __TIMER_STAT_ADD(reset, 1);
-       priv_timer[lcore_id].updated = 1;
+       tim->updated = 1;

        /* remove it from list */
        if (prev_status.state == RTE_TIMER_PENDING) {
@@ -443,7 +438,6 @@ int
 rte_timer_stop(struct rte_timer *tim)
 {
        union rte_timer_status prev_status, status;
-       unsigned lcore_id = rte_lcore_id();
        int ret;

        /* wait that the timer is in correct status before update,
@@ -453,7 +447,7 @@ rte_timer_stop(struct rte_timer *tim)
                return -1;

        __TIMER_STAT_ADD(stop, 1);
-       priv_timer[lcore_id].updated = 1;
+       tim->updated = 1;

        /* remove it from list */
        if (prev_status.state == RTE_TIMER_PENDING) {
@@ -541,7 +535,7 @@ void rte_timer_manage(void)

                rte_spinlock_unlock(&priv_timer[lcore_id].list_lock);

-               priv_timer[lcore_id].updated = 0;
+               tim->updated = 0;

                /* execute callback function with list unlocked */
                tim->f(tim, tim->arg);
@@ -550,7 +544,7 @@ void rte_timer_manage(void)

                /* the timer was stopped or reloaded by the callback
                 * function, we have nothing to do here */
-               if (priv_timer[lcore_id].updated == 1)
+               if (tim->updated == 1)
                        continue;

                if (tim->period == 0) {
diff --git a/lib/librte_timer/rte_timer.h b/lib/librte_timer/rte_timer.h
index c5f936b..19f6514 100755
--- a/lib/librte_timer/rte_timer.h
+++ b/lib/librte_timer/rte_timer.h
@@ -129,6 +129,9 @@ struct rte_timer
        uint64_t period;       /**< Period of timer (0 if not periodic). */
        rte_timer_cb_t *f;     /**< Callback function. */
        void *arg;             /**< Argument to callback function. */
+       /** if a timer was updated on this
+        *  core since last reset of the variable */
+       int updated;
 };


-- 
1.7.9.5

Reply via email to