[lttng-dev] [PATCH 3/4] test: test for the proper pointer

Lai Jiangshan laijs at cn.fujitsu.com
Sat Oct 13 12:08:33 EDT 2012


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

Signed-off-by: Lai Jiangshan <laijs at cn.fujitsu.com>
---
 tests/test_urcu_lfq.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/tests/test_urcu_lfq.c b/tests/test_urcu_lfq.c
index 66ddd41..0fcbf55 100644
--- a/tests/test_urcu_lfq.c
+++ b/tests/test_urcu_lfq.c
@@ -243,14 +243,15 @@ void *thr_dequeuer(void *_count)
 
 	for (;;) {
 		struct cds_lfq_node_rcu *qnode;
-		struct test *node;
 
 		rcu_read_lock();
 		qnode = cds_lfq_dequeue_rcu(&q);
-		node = caa_container_of(qnode, struct test, list);
 		rcu_read_unlock();
 
-		if (node) {
+		if (qnode) {
+			struct test *node;
+
+			node = caa_container_of(qnode, struct test, list);
 			call_rcu(&node->rcu, free_node_cb);
 			URCU_TLS(nr_successful_dequeues)++;
 		}
-- 
1.7.7.6




More information about the lttng-dev mailing list