We should use "if (snode)" instead of "if (node)" in case of
the struct cds_lfs_node_rcu is not the first field of struct node.

Signed-off-by: Lai Jiangshan <[email protected]>
---
 tests/test_urcu_lfs.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/tests/test_urcu_lfs.c b/tests/test_urcu_lfs.c
index 88bf65d..681b654 100644
--- a/tests/test_urcu_lfs.c
+++ b/tests/test_urcu_lfs.c
@@ -242,13 +242,14 @@ void *thr_dequeuer(void *_count)
 
        for (;;) {
                struct cds_lfs_node_rcu *snode;
-               struct test *node;
 
                rcu_read_lock();
                snode = cds_lfs_pop_rcu(&s);
-               node = caa_container_of(snode, struct test, list);
                rcu_read_unlock();
-               if (node) {
+               if (snode) {
+                       struct test *node;
+
+                       node = caa_container_of(snode, struct test, list);
                        call_rcu(&node->rcu, free_node_cb);
                        URCU_TLS(nr_successful_dequeues)++;
                }
-- 
1.7.7.6


_______________________________________________
lttng-dev mailing list
[email protected]
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

Reply via email to