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
